Nos consultants formateurs tous fortement impliqués sur les bases NoSQL, ils suivent activement les nouveautés sur ce sujet afin de mettre à jour nos programmes de cours pratiquement en temps réel.
Ils ont conçu les formations NoSQL, les supports de cours et les travaux pratiques qui accompagnent chaque formation. Ces programmes sont révisés plusieurs fois par an afin de coller à l’actualité très dynamique de ce domaine.!

Objectifs de la formation NoSQL 

Les technologies actuelles permettent de traiter des volumes de données beaucoup plus importants que les systèmes relationnels. Ils s’ouvrent aux données en ligne (Transactional Processing), au Cloud, au traitement en temps réel sur des des systèmes virtualisés.
Par ailleurs, la donnée est devenue un nouveau pan de l’économie : exploration de la donnée, Data Science…
Avec cette formation, vous allez découvrir l’écosystème des nouvelles architectures de la donnée bâties autour des solutions dites “NoSQL” (Not only SQL) afin de comprendre leurs particularités et cas d’usage associés : Couchbase, MongoDB, ElasticSearch, Cassandra…

Concrètement, à l’issue de ce stage vous aurez acquis les compétences et connaissances nécessaires pour:

  • Comprendre les concepts de systèmes distribués et de donnée : cohérence, théorème de CAP…
  • Découvrir l’écosystème de NoSQL et les caractéristiques des solutions du marché (ElasticSearch, Cassandra, MongoDB, Redis, Couchbase…)
  • Connaître les cas d’usage de la donnée
  • Comprendre les plateformes de streaming de la donnée (Storm, Spark…)
  • Observer l’écosystème Hadoop.

À qui s’adresse cette formation ?

Public :

Ce stage s’adresse aux DSI, Directeurs de projets, Chefs de projets, Architectes (Logiciel/Entreprise/Technique) et Développeurs.

Prérequis :

Il est conseillé pour une meilleure appréciation du cours, d’avoir des connaissances certaines en architectures applicatives traditionnelles avec SGBDR.

Contenu du cours NoSQL 

  1. Comprendre les bases de données avant l’arrivée de NoSQL

Forme normale des bases de données relationnelles
Baisse des coûts hardware
Notion de « Transaction »
Quand systèmes distribués et disponibilité dépassent la cohérence (CAP)
Découvrir le NoSQL : “Not only SQL”
Définition de « Réplication »
Définition de « Sharding »

  1. Découvrir les familles de base de données NoSQL

Key-Value
Document
Graph
Colonne

  1. Le monde Hadoop

Découvrir l’offre Colonne avec Cassandra
Présentation générale, architecture et cas pratique
Séries temporelles, objets connectés
Frameworks de traitement distribué et Lambda architecture

Cas d’application

« Cassandra et Spark streaming »

  1. Focus sur l’offre clé-valeur et document avec Couchbase et MongoDB

Présentation générale, architecture et cas d’utilisation

Cas d’application 

“Couchbase et MongoDB”

  1. Search – Fédération De Données

Présentation de l’offre Elasticsearch

Cas d’application 

“Elasticsearch”

  1. Bilan et perspectives 

Feedback des participants
Recommandations et élaboration du plan d’action individuel
Conclusion
Questions / Réponses

Objectifs de la formation Base de données noSQL 

 

Le langage SQL et les concepts de matrice (ligne, colonne) et de relation entre les données ont monopolisé la façon de représenter les données et de les manipuler pendant des décennies. Mais les sources de données, les formats, et les volumes ont évolué (Informations émises par les applications et les sites WeB, Objets Connectés, Journaux, etc.).
Aussi il a bien fallu penser de nouvelles architectures et de nouveaux outils ou langages d’extraction et de stockage pour les données non structurées. Il s’agit d’une rupture conceptuelle suffisamment forte par rapport au SQL (et donc aux architectures sous-jacentes) pour que l’on souhaite la définir en montrant qu’il existe une autre voie “Not Only SQL” . La nuance est importante car il ne s’agit pas d’abandonner le SQL pour tous les projets et cette formation précisera clairement les champs d’application du NoSQL.
Les bases de données NoSQL renvoient donc à des concepts et des outils spécifiques que ce soit au niveau des architectures, de l’exploitation, du stockage, de l’extraction des données, et bien sûr du développement.

Cette formation vous propose dans un premier temps de bien comprendre en quoi les concepts et les savoir-faire sont différents par rapport au monde des SGBDR classiques puis de mettre en œuvre les solutions NoSQL Open Source les plus utilisées aujourd’hui comme MongoDB, Cassandra, Couchbase et le puissant outil ElasticSearch qui permet l’indexation et la recherche de données.
La formation est résolument orientée vers la pratique afin de ne pas rester uniquement conceptuelle  

À qui s’adresse cette formation ?

Public :

Cette formation cible les directions informatiques et fonctionnelles, les responsables informatiques, chefs de projet, architectes, développeurs…

Prérequis :

Pour suivre ce cours NoSQL Mise en oeuvre, il faut avoir des connaissances de base des architectures techniques et du management SI.
ainsi que des connaissances en bases de données.

Contenu du cours Base de données noSQL 

  1. Des SGBD relationnels au NoSQL…

Rappels synthétiques sur la philosophique des SGBDR
Gérer les relations entre les données avec de la redondance
En quoi certains formats ne sont pas adaptés aux SGBDR ?
Qu’entend-on par données structurées et données non-structurées ?
Exemples de « nouvelles » sources de données (logs, IoT, sites Web, etc.)
Évolutions technologiques et avènement du NoSQL
Champs d’application des bases NoSQL et des SGBDR

  1. Différentes familles NoSQL

Pourquoi cette classification ?
Les bases de données clé/valeur
Comment gérer l’intégrité des données ?
Les bases de données orientées document
Exemples de traitements sur des formats JSON ou XML
Comment stocker des documents binaires ?
Les bases orientées colonne distribuées pour le Big Data opérationnel :
Hadoop, HBase, Cassandra…
Modéliser un réseau avec les bases de données orientées graphe (Facebook, Twitter, etc.)
L’écosystème Hadoop (différences avec les SGBDR, liens avec le NoSQL)

Ateliers :

Manipulation des données dans un contexte Big Data avec l’outil HBase de Hadoop
Observation du format des données manipulées sur des bases en production (Cassandra, Redis, MongoDB)

  1. Comment choisir une base NoSQL ?

Synthèse des principaux acteurs Open Source (MongoDB, Cassandra, Redis, CouchBase…)
Les choix matériels
Comment aborder la migration ?
Les impacts sur le développement client. Comment développer efficacement avec des bases NoSQL ?
Quels outils de supervision et comment les choisir ?
Quelle est la complexité administrative et la courbe d’apprentissage ?
Cas d’utilisation dans des entreprises existantes
Et les performances ? Quelques benchmarks ?
Qu’est-ce que NewSQL ?

Ateliers :

Création interactive d’une matrice de synthèse comparant les différents acteurs, leur contexte propice d’utilisation, leurs points forts et leurs faiblesses en fonction de différents paramètres comme les fonctionnalités, la recherche, le stockage, la souplesse dans la scalabilité, les performances, la courbe d’apprentissage, etc.

  1. Rechercher les données (Elasticsearch)

Liens entre Elasticsearch et les bases NoSQL
Intégration des données dans Elasticsearch
Configuration d‘index
Analyse et extraction de texte
Différents modes de recherche (structurée, full-texte, proximité, etc.)

Ateliers :

Création d’index, Mise en place d’analyseurs
Utilisation de l’API de recherche

  1. Mise en œuvre d’une base NoSQL avec MongoDB

Installation de MongoDB
Création de documents et manipulations (shell)
Importation de données des SGBDR au format JSON
Indexer les données
Suivre les données et les index dans le temps
Réplication des données
Partitionner les données
Fonctionnement du moteur de stockage des données
Administrer et superviser au quotidien

Ateliers :

Installation de MongoDB
Premiers pas avec le shell
Création de bases et de collections
Intégration de données au format JSON
Stockage de journaux de supervision de réseau (Nagios)
Requêtage
Mise en place d’index et observation du déroulement des requêtes
Mise en œuvre de la réplication de données
Mise en œuvre du partitionnement de données

 

Objectifs de la formation Neo4J pour Développeur 

Neo4J est une base NoSQL permettant de gérer des données fortement liées les unes aux autres sous forme de graphe. Cette approche permet d’obtenir de bien meilleures performances lors d’un parcours de graphe qu’avec une base de données relationnelle et des jointures.

Cette formation est axée sur le développement avec Neo4J et non sur l’administration.
Cependant il est nécessaire de comprendre les concepts et le fonctionnement général de Neo4J afin d’être préparé à l’apprentissage de la programmation qui présente des différences nettes par rapport au  SQL traditionnel de par le format de stockage des données dans cette base NoSQL.

Concrètement, à l’issue de la formation Neo4J pour Développeur, vous serez capable de :

  • Comprendre les spécificités d’une base NoSQL par rapport à un SGBDR
  • Savoir installer Neo4J et utiliser les outils du développeur
  • Comprendre la structure des données et le vocabulaire associé dans Neo4J
  • Savoir manipuler des données sous forme de graphe
  • Améliorer les performances avec les index
  • Accéder aux données de Neo4J depuis des programmes tiers (C#, Java, JavaScript, Python)
  • Accéder aux données de Neo4J via l’API HTTP

À qui s’adresse cette formation ?

Public :

Cette formation s’adresse aux Développeurs Java, Python ou JavaScript..

Prérequis :

Afin de profiter de cette formation, il est nécessaire que les participants aient des connaissances des principes des bases de données ainsi que des langages de programmation Java, Python ou JavaScript.

Contenu du cours Neo4J pour Développeur 

  1. Introduction à Neo4J

La domination historique des bases de données relationnelles
L’apparition des bases NoSQL. Les différents types de bases NoSQL
Présentation de Neo4J, son positionnement, ses avantages
Exemples d’utilisation de Neo4J

  1. Installation de Neo4J

Plateformes supportées et configuration requise
Installation sous Linux, lancement du serveur
Installation sous Windows, création d’un service, lancement
Configuration, shell et interface web

Travaux Pratiques : 

Installer Neo4J sur son poste de développement

  1. La structure des données sous Neo4J

Les nœuds : propriétés et labels
Les relations : propriétés, types et sens
Les propriétés : types et tableaux
Chemins et parcours de données
Schéma. Index et contraintes

Travaux Pratiques : 

Exploration du schéma de la base d’exemple

  1. Le langage Cypher

Présentation
La syntaxe : expressions, variables, paramètres, opérateurs, motifs, tableaux…
Les clauses : lectures, écritures, unions, projections…
Les fonctions : mathématiques, agrégations, scalaires, liées aux tableaux et chaînes…
Les index : création, utilisation, suppression, ajout de contraintes
Optimisation de requêtes et plans d’exécution
Importation de données

Travaux Pratiques : 

Importation de la base d’exemple et exécution de requêtes via l’interface web

  1. Accéder à Neo4J depuis vos propres programmes

Les drivers fournis par Neo4J
Aperçu des drivers C#, Java, JavaScript, Python
Focus sur le driver Java, JavaScript ou Python
– Connexion au serveur et authentification
– Requêtes en lecture et écriture
– Transactions
Aperçu de l’embarquement de Neo4J au sein d’un programme Java

Travaux Pratiques : 

Exécution de requêtes via le driver Java, JavaScript ou Python

  1. L’API HTTP

Racine et authentification
Flux JSON
Service transactionnel
Manipulation directe de nœuds
Manipulation directe de relations
Service historique (transactionnel et non transactionnel)
Recensement des propriétés, labels et types de relations utilisés dans la base
Gestion de l’indexation et des contraintes

Travaux Pratiques : 

Exécution de requêtes via l’API HTTP grâce à l’outil Curl

Objectifs de la formation MongoDB développeur 

MongoDB est une base NoSQL permettant de gérer un gros volume d’informations (« humongous » = énorme), structurée ou non, avec des performances qui en ont fait un standard reconnu du marché.
Toutes les fonctionnalités attendues d’une base de données sont présentes (langage complet de requêtes, index, réplication, cluster, API diverses, etc.).

Cette formation MongoDB est axée sur le développement MongoDB et non l’administration (réf. BMDB). Cependant il est nécessaire de comprendre les concepts et le fonctionnement général de MongoDB afin d’être préparé à l’apprentissage de la programmation qui présente des différences nettes par rapport au SQL traditionnel de par le format de stockage des données dans une base NoSQL.

Concrètement à l’issue de la formation MongoDB Développement vous serez capable de :

  • Comprendre les spécificités d’une base NoSQL par rapport à un SGBDR
  • Savoir installer MongoDB et utiliser les outils du développeur
  • Comprendre la structure des données et le vocabulaire associé dans MongoDB
  • Savoir manipuler les données au format JSON ou BSON
  • Savoir modéliser les données dans une base NoSQL
  • Améliorer les performances avec les index
  • Comprendre les concepts avancés de stockage (réplication, sharding, GridFS)
  • Accéder aux données de MongoDB depuis des programmes tiers (PHP, NodeJs, Ruby, Python, etc.)
  • Mettre en œuvre un cycle complet en Java de manipulation des données
  • Savoir optimiser vos requêtes grâce aux solutions proposées par MongoDB (index, sharding, logs, monitoring, etc.).

À qui s’adresse cette formation ?

Public :

Cette formation s’adresse aux développeurs PHP ou Python.

Prérequis :

Afin de profiter pleinement de cette formation il est nécessaire que les participants aient des connaissances des principes des bases de données, de la ligne de commande ainsi que des connaissances du langage Java (pour la partie Java seulement).

Contenu du cours MongoDB développeur 

  1. Philosophie de MongoDB

La domination historique des bases de données relationnelles
L’apparition des bases NoSQL. Les différents types de bases NoSQL
Présentation de MongoDB, son positionnement, ses avantages
Exemples d’utilisation de MongoDB

  1. Installation

Plateformes supportées
Installation sous Linux, lancement du serveur
Installation sous Windows, configuration, création d’un service, lancement
Présentation des outils MongoDB et de l’invite de commande (shell)

Travaux Pratiques : 

Installer MongoDB sur son poste de développement, test de connexion

  1. La structure des données sous MongoDB

La structure : base de données, collections, documents, espace de noms…
Les formats JSON et BSON. Types de données élémentaires et spécial
La modélisation de données. Les différents scénarios de schéma

Travaux Pratiques :

Première exploration du shell
Modélisation d’un cas pratique de données

  1. La manipulation de données via le shell MongoDB

Insertion d’un ou plusieurs documents
Récupérer des documents, filtres de recherches (find(), findOne(), $where, $in, $not, $gt, $lt, $ne, etc.) Projections. Tris. Curseurs
Mettre à jour ou remplacer un ou plusieurs documents ($set, $inc, tableau…)
Supprimer un ou plusieurs documents
La validation de documents

Travaux Pratiques :

Manipulation de données via le shell
Mise en place de règles de validation

  1. Le stockage de fichiers lourds avec GridFS

Présentation : Quand l’utiliser ?
Collections et préfixes
L’utilitaire « mongofiles »

Travaux Pratiques :

Stockage de fichier via l’utilitaire « mongofiles »

  1. Accéder à MongoDB depuis vos propres programmes (API)

Les drivers fournis par MongoDB
Aperçu des drivers PHP, NodeJS, Ruby, Python
Focus sur le driver Java :
      – Connexion aux bases (isolées, ReplicaSet, clusters de shard)
      – Authentification
      – Sélection de la base et de la collection
      – Insertion, récupération, mise à jour et suppression de documents
      – Écritures par lot
      – GridFS

Travaux Pratiques :

Connexion, manipulation des documents, création d’index, GridFS depuis un programme Java

  1. Performance des requêtes MongoDB

Fonctionnement d’une transaction dans MongoDB (atomicité, verrous)
Les écritures par lot
L’indexation des données (types, propriétés d’index)
Couverture de requête et intersection d’index
Stratégies d’indexation et explication de requêtes
La préférence de lecture et la confirmation des écritures dans un ReplicaSet
Le sharding
Le profiling des requêtes lentes
Les outils de monitoring
Retrouver les infos pertinentes dans les logs

Travaux Pratiques :

Observation du comportement de la base lors des manipulations précédentes (exécution de requêtes lentes, diagnostic, tuning)
Mise en place d’index. Analyse du déroulement des requêtes et optimisation

 

Travaux Pratiques

Les travaux pratiques représentent plus de 50% du temps de formation.
La machine virtuelle sur laquelle vous allez mettre en œuvre les différents exercices vous est offerte avec son media de stockage afin que vous puissiez prolonger vos tests de développement sur un jeu de données et un environnement qui vous seront devenus familiers.

 

Objectifs de la formation Administration MongoDB 

MongoDB est une solution Open Source de gestion de bases de données NoSQL orientée document, capable de s’installer sur de simples serveurs comme dans un contexte d’architecture complexe répartie.
Les objets manipulés par une base MongoDB changent de nature (collections, documents, information au format JSON, etc.) et bien sûr les traitements associés également.

Concrètement, à l’issue de cette formation d’Administration MongoDB vous serez capable de :

  • Comprendre les spécificités de l’administration et le vocabulaire d’une base MongoDB
  • Installer MongoDB
  • Comprendre la structure des données dans une base MongoDB
  • Manipuler les données de la base (CRUD)
  • Interfacer MongoDB avec des programmes tiers (Javascript, Python, etc.)
  • Savoir dialoguer avec Mongo en ligne de commande et via des scripts
  • Bien comprendre le mécanisme d’indexation des données
  • Mettre en œuvre la réplication de données
  • Mettre en œuvre le partitionnement des données sur plusieurs serveurs (sharding)
  • Superviser le bon fonctionnement de MongoDB
  • Effectuer des sauvegardes et des restaurations
  • Sécuriser l’accès aux données de MongoDB.

À qui s’adresse cette formation ?

Public :

Ce cours s’adresse aux chefs de projet, gestionnaires de bases de données.

Prérequis :

Pour suivre ce cours dans de bonnes conditions, il vous faut connaître les principes des bases de données, l’administration en ligne de commande et, si possible, avoir des bases du langage JavaScript.

Contenu du cours Administration MongoDB 

  1. Introduction à MongoDB

La domination historique des bases de données relationnelles
L’apparition des bases NoSQL. Les différents types de bases NoSQL
Présentation de MongoDB, son positionnement, ses avantages
La structure de données au sein de MongoDB : base de données, collections, documents…
Les formats JSON et BSON. Types de données élémentaires et spéciaux
Exemples d’utilisation de MongoDB

  1. Installation de MongoDB

Plateformes supportées
Installations sous les différentes distributions de Linux, lancement
Installation sous Windows, configuration, création de services, lancement
Présentation des outils MongoDB

Travaux Pratiques : 

Installation de MongoDB, lancement du serveur, test de connexion

  1. L’invite de commande (shell) Mongo

Présentation et lancement
Premières commandes et pages d’aide
Script d’initialisation et configuration de l’invite de commande
Bases de données, collections, documents, namespaces : gestion et règles de nommage
Les instructions CRUD : insertion, lecture, mise à jour, suppression

Travaux Pratiques : 

Créer et manipuler des documents via le shell

  1. Écrire des scripts et des programmes pour MongoDB

Scripts JavaScript externes : différences avec le shell et lancement
Stocker des fonctions JavaScript sur le serveur et appeler celles-ci
Utiliser les drivers pour manipuler les données depuis des programmes externes

Travaux Pratiques : 

Manipuler des données via des scripts et via le driver Python

  1. L’indexation des données

Principes. Types et propriétés d’index
Couverture de requête et intersection d’index
Stratégies d’indexation et explication de requêtes

Travaux Pratiques : 

Mise en place d’index. Observation du déroulement des requêtes

  1. La réplication de données

Présentation et intérêt
Nœuds maître et secondaires. Réplication des données et bascule automatique en cas d’incident
Nœuds secondaires : priorité, nœuds cachés et différés
Procédure de mise en place de la réplication

Travaux Pratiques : 

Mise en œuvre de la réplication de données

  1. Le partitionnement de données (sharding)

Présentation et intérêt
Le sharding avec MongoDB
Répartition automatique ou manuelle des données
Procédure de mise en place du sharding
Le cas GridFS : stockage de fichiers lourds

Travaux Pratiques : 

Mise en œuvre du partitionnement de données

  1. Les moteurs de stockage des données

Le moteur WiredTiger : concurrence, journalisation, compression, usage mémoire…
Le moteur MMAPv1 : journalisation, usage disque, usage mémoire…
Le moteur In-Memory : concurrence, usage mémoire, stratégie de déploiement…
Les moteurs de stockage tiers : RocksDB…

Travaux Pratiques : 

Paramétrage du moteur de stockage par serveur et par collection. Visualisation des impacts

  1. Sécuriser son installation de MongoDB

Cheklist de sécurité
L’authentification et les différents mécanismes utilisables
Utilisateurs, rôles et privilèges
Authentification entre nœuds
Les fonctionnalités entreprise : cryptage, audit

Travaux Pratiques : 

Mise en œuvre de l’authentification sur un cluster de shard

  1. Administrer et superviser MongoDB

Importer / exporter des données (mongoexport, mongoimport)
Sauvegarder / restaurer : les différentes stratégies (mongodump, mongorestore, snapshot filesystem)
Superviser l’exécution et intégrer des outils de supervision externes (ex : Nagios)
Les outils graphiques d’administration
Gérer la journalisation

Travaux Pratiques : 

Importer / exporter des données. Dump de données, Superviser une base

Travaux Pratiques

De nombreux travaux pratiques à chaque étape facilitent l’assimimilation des notions enseignées.

Objectifs de la formation MongoDB Optimisation 

Reconnue comme l’une des bases « NoSQL » les plus utilisées aujourd’hui, MongoDB permet de stocker de grands volumes de données et de les interroger de manière à la fois simple et efficace. Accessible par le plus grand nombre, il n’est pas nécessaire de maîtriser un langage supplémentaire comme c’est le cas avec les bases de données relationnelles. Il existe en effet un grand nombre de pilotes offrant une API simple et intuitive.
Cette formation est organisée sur deux axes : d’une part savoir détecter les causes de sous performance et y remédier, d’autre part faire face à une montée en charge par répartition de charge.

A l’issue de cette formation MongoDB, vous aurez les compétences et connaissances pour savoir mettre en place une architecture performante avec MongoDB

À qui s’adresse cette formation ?

Public :

Cette formation MongoDB s’adresse aux administrateurs de base de données.

Prérequis :

Pour réussir cette formation MongoDB, il est demandé de Maîtriser l’administration de MongoDB, en particulier le shell mongo et la réplication.

Contenu du cours MongoDB Optimisation 

  1. Introduction et Rappel (Rapide)

Présentation
Pourquoi MongoDB ?
MongoDB en comparaison des bases relationnelles

  1. Optimisation de MongoDB

Les outils mongotop et mongostat
Statistiques et profilage : les collections spécialisées
Bonnes pratiques : paramétrages disque, système de fichiers, mémoire, swap

  1. Indexation dans MongoDB

Principes et structures génériques des index
Les différents types d’index et leur restrictions d’utilisation : simple, composite, multi-clés, unique,creux
Règles d’indexation
Fonctionnement de l’optimiseur
La commande explain et les hint

  1. Sharding (MongoDB)

Performance et haute disponibilité : sharding et réplication
Architecture : noeud de configuration, noeud mongod, noeud mongos
Concepts et implémentation : auto-sharding, replica set, sharding key, chunks
Installation d’un cluster à partir d’une architecture existante
Choisir la clé de sharding
Contrôler la répartition des données
Supervision d’un cluster
Administration : ajouter un shard, déplacer manuellement les données
Problèmes courants et bonnes pratiques

Travaux Pratiques

Les chapitres «Indexation» et «Sharding» se concluent chacun par des travaux pratiques utilisant le savoir acquis lors du chapitre «Optimisation».

Objectifs de la formation Redis 

Bénéficiez des avantages d’une base de données mémoire pour booster la performance de vos applications hautement transactionnelles. Cette formation vous permettra d’appréhender les contraintes techniques de l’utilisation d’une base de données non relationnelle, et de mettre en œuvre sur une première application les principes de Redis. Cette formation Redis vous donnera les connaissances et l’expérimentation pratique pour mettre en oeuvre Redis et l’exploiter au quotidien.

À qui s’adresse cette formation ?

Public :

Ce cours s’adresse principalement aux développeurs.

Prérequis :

Bonnes connaissances en programmation.

Contenu du cours Redis 

  1. Introduction à Redis

Redis, cache en mémoire
Positionnement vis à vis des autres moteurs NoSql
Quand utiliser Redis, quand ne pas l’utiliser
Les grandes références de Redis

  1. Fonctionnalités de Redis

Protocole de communication
Format des données
Commandes essentielles
Network latency et groupement de commandes
Gestion des transactionns et opérations atomiques
Server-side scripting
Organisation des données
Problématique du requétage complexe

  1. Développer avec Redis

Encoding
Clients permettant de développer avec Redis
Utiliser Redis en cache d’un RDBMS classique

  1. Administrer Redis

Persistance des bases sur disque
Réplication des bases
Monitoring de Redis
Sauvegarde / restauration
Gestion de l’authentification

Description de la formation Cassandra 

Cassandra est une base de données distribuée NoSQL connue pour ses capacités à savoir gérer sans défaillance de très grosses quantités de données structurées. Cette formation vous donnera toutes les connaissances nécessaires et l’expérimentation pratique pour mettre en œuvre et administrer Apache Cassandra au quotidien.

Cette formation vous apporte les bases pour mettre en œuvre et administrer Apache Cassandra au quotidien.

Objectifs 

Objectifs Opérationnels:

Administrer Apache Cassandra au quotidien.

Objectifs Pédagogiques:

  • Maitriser les fonctionnalités principales de Cassandra
  • Savoir installer et configurer Cassandra
  • Connaitre la notion de grappe au sein de la base de données

À qui s’adresse cette formation ?

Public :

Cette formation s’adresse aux Chefs de projet, gestionnaires de bases de données, et administrateurs qui souhaitent utiliser Apache Cassandra.

Prérequis :

Connaissances générales sur les bases de données.

Contenu du cours Cassandra 

  1. Cassandra les fonctionnalités principales

Présentation de l’historique et des fonctionnalités de Cassandra.
Introduction à la licence.
Etude du format des données et “key-value”.
Traitement de volumes importants et haute disponibilité.
Présentation d’un système réparti de base de données.

  1. Installation et configuration de Cassandra

Rappel sur les prérequis.
Présentation des plate-formes supportées.
Etude du fichier de configuration: conf/cassandra.yaml .
Répertoire de travail, de stockage des données, gestion de la mémoire.
Démarrage d’un noeud et test de l’interface cliente cqlsh.

  1. Le CQL

Maitriser les commandes de base: connexion au système de base de données, création de colonnes, insertion, modification recherche.
Le CQL: Cassandra Query Language.
Exécution de scripts.
Comment écrire des requêtes?
Etude des différentes approches.

  1. Gestion de la grappe

Initiation au principe de base.
Préparation du premier noeud : adresse d’écoute.
Configuration de nouveaux noeuds.
Notion de bootstrapping et de token.
Paramètres listen_address et rpc_address.
Réplication : topologie du réseau et EndpointSnitch.
Stratégie de réplication.
Ajout de noeuds, suppression.
Cassandra dans un cloud.
Mise en oeuvre avec OpenStack.

  1. Supervision

OpsCenter: installation, lancement.
Utilisation de base.
Supervision avec nodetool cfstats, ou export JMX vers des outils de supervision comme Nagios.

  1. Exploitation de Cassandra

Maitriser les notions de sauvegarde.
Import/export au format JSON.

  1. Support Hadoop

Présentation du principe de MapReduce.
Implémentation Hadoop.
Maitriser la mise en oeuvre depuis Cassandra.

  1. Support Spark

Description rapide de l’architecture spark.
Mise en oeuvre depuis Cassandra.
Execution de travaux Spark s’appuyant sur une grappe Cassandra.

Travaux Pratiques

De nombreux travaux partiques sont proposés tout au long de la formation

Description de la formation Cassandra avancé 

Cassandra est une base de données distribuée NoSQL connue pour ses capacités à savoir gérer sans défaillance de très grosses quantités de données structurées.

Cette formation explore les fonctionnalités avancées de Cassandra pour vous permettre d’en approfondir votre niveau de maîtrise : mise en place d’un cluster, communication multi-DC, tuning des performances, sécurisation…

Objectifs 

Objectifs Opérationnels :

Maîtriser les aspects avancés de la base de données NoSQL Cassandra.

Objectifs Pédagogiques:

  • Savoir mettre en place un cluster Cassandra
  • Connaître le cycle de vie d’une lecture/écriture sur Cassandra
  • Maîtriser les notions de backup, de restauration et de mouvement des données
  • Savoir comment superviser et dépanner Cassandra
  • Connaître l’aspect sécurité de Cassandra

À qui s’adresse cette formation ?

Public :

Ce cours Cassandra avancé s’adresse aux chefs de projet, gestionnaires de bases de données et administrateurs qui souhaitent maîtriser les aspects avancés d’Apache Cassandra.

Prérequis :

Pour suivre cette formation Cassandra avancé dans de bonnes conditions, il est conseillé d’avoir suivi la formation Cassandra (réf.OCAS) ou d’en posséder les connaissances équivalentes.

Contenu du cours Cassandra avancé 

  1. Rappel de l’architecture Cassandra

Cluster / Node / Datacenter / Rack
Réplication / Protocole Gossip
Snitches
Noeuds Seeds
Memtables, SSTables et CommitLogs
Niveau de consistance
Hinted Handoff

  1. Query by Design

Data-Driven versus Query-Driver
Liens entre tables et intégrité référentielle
Duplication de données
Étapes de conception d’un keyspace

  1. Mise en place d’un cluster Cassandra

Choix de mémoire, CPU
Contraintes réseau
Choix du stockage
Configuration du cluster (Datacenter, Rack et autres)
Gestion du cycle de vie du cluster

  1. Cycle de vie d’une lecture/écriture sur Cassandra

Mémoire Off-Heap / JVM-Heap et disque
Comprendre le flush, memtable et commitLog
Chemin d’écriture des données
Chemin de lecture des données
Le Read-repair, Merkel Tree et Anti-Entropy

  1. Communication multi-DC sur Cassandra

Raisons de choix d’une architecture multi-DC
Communication synchrone vs asynchrone entre DCs
Gestion de la défaillance d’un DC
Utilisation des Racks au lieu de Datacenter

  1. Backup, restauration et mouvement des données

Backup incrémental et full
Restauration des données à partir d’un Snapshot
Restauration de données avec sstableLoader
Import/Export des données en masse

  1. Supervision et troubleshooting

Gestion des nœuds d’un cluster
Monitoring avec l’outil nodetool
Configuration et exploitation des logs

  1. Tuning des performances de Cassandra

Utilisation de Tracing pour analyser les performances
Tracer les lectures et les écritures
Tuning des Bloom Filtres
Cache de données
Paramètres globaux de gestion de cache
Tests de montée en charge avec cassandra-stress

  1. Stratégies de compaction

SizeTieredCompactionStrategy
LeveledCompactionStrategy
TimeWindowCompactionStrategy
Tuning de la JVM

  1. Sécurisation de Cassandra

Configuration Authentification
Gestion des rôles
Cryptage de la communication dans Cassandra avec SSL
Activation du cryptage inter-nœuds
Activation du chiffrement client