Formation API

Les API sont des mécanismes qui permettent à deux composants logiciels de communiquer entre eux à l'aide d'un ensemble de définitions et de protocoles. Par exemple, le système logiciel du bureau météorologique contient les données météorologiques quotidiennes.

En informatique, une interface de programmation d’application ou interface de programmation applicative, souvent désignée par le terme API pour « Application Programming Interface », est un ensemble normalisé de classes, de méthodes, de fonctions et de constantes qui sert de façade par laquelle un logiciel offre des services à d'autres logiciels.

Objectifs de la formation 

Les APIs sont devenues un atout majeur de la stratégie d’une entreprise. L’ouverture du système d’information aux applications externes et aux partenaires permet de créer des nouvelles utilisations et beaucoup d’innovations.

Cette formation API – SI et développement d’un modèle d’affaires vous permettra de maitriser dans un premier temps les concepts techniques d’une architecture REST qui permet aux développeurs de créer un certain nombre de services logiciels (API Rest) et de les consommer en mode interne ou externe, puis vous comprendrez l’importance stratégique d’une telle ouverture pour les entreprises

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Savoir maîtriser les concepts techniques d’une architecture REST.
  • Comprendre les enjeux techniques, fonctionnels et métier des APIs
  • Maitriser la consommation de votre API et son ouverture aux développeurs
  • Savoir déployer et maintenir une stratégie d’API durable.

À qui s’adresse cette formation ?

Public :

Ce stage s’adresse aux DSI, Architectes, Développeurs, Administrateurs, Product owners, Business analysts.

Prérequis :

Pour que le cours se déroule dans les meilleures conditions possibles, il est recommandé de posséder une culture générale en architecture des systèmes d’information et connaître le protocole applicatif HTTP.

Contenu du cours 

  1. Que sont les APIs, comment le web a évolué au fil du temps

    Rappel du protocole HTTP, fonctionnement du web
    Historique des évolutions technologiques

    Comment fonctionnent les API Rest

    Qu’est-ce qu’une API
    Les APIs existent depuis toujours
    La différence entre architecture SOAP et REST
    Quel type d’API utiliser aujourd’hui ?
    Principes de base d’une API Rest
    Que sont JSON / XML

    Architecturer son API

    Principe KISS
    Principe CRUD
    Verbes et noms
    Choix de casse et de singulier/pluriel
    Nom de domaine de votre API
    Endpoints
    HTTP Response Codes
    Versionnement de l’API
    Réponses partielles
    Granularité
    Query Strings (Filtres, Tris, Pagnination, Recherche)
    Gestion des erreurs

    Concepts avancés

    Vers des APIS plus autonomes
    HATEOS et Hypermedia
    Sémantique : JSON-LD + Schema.org
    Créer des SDK pour son API
    CORS

    Les méthodes d’authentification

    L’importance de HTTPS
    API Key
    Basic Auth
    OAuth v2.0
    App Authorization
    Gestion de Scopes
    GraphQL, l’avenir des APIs ?

    Mise en pratique

    Manipulation de diverses API avec diverses méthodes d’authentification

    Mailchimp API via API Key
    Github API via Basic Auth
    Spotify API via OAuth v2.0
    Gmail API via OAuth v2.0

    S’entrainer et débugguer avec

    PostMan
    API Playgrounds

    Outils et Frameworks

    Swagger, API Blueprint
    Hapi.js, Express et Node.js
    API Platform, Symfony en PHP
    Outils de cache : Redis
    Tests unitaires : Cucumber
    Marketplace d’APIS

    Ouvrir votre SI aux APIS

    Qu’est-ce qu’une API, sans jargon technique cette fois
    APIs et géants du web
    Evolution du nombre d’APIs
    Open API
    API First
    Niveaux d’APIs
    Points de blocages potentiels
    Infrastructure
    Enjeux d’architecture
    Microservices
    Low latence et asynchronisme
    APIs non transactionnelles
    Partir de 0 ou implémenter sur ma couche services ?
    Architectures SOA et WOA
    APIs en Facade
    Impacts organisationnel des équipes et ressources
    Solutions d’API Management
    Modèle économique de votre API
    Build vs Buy
    en Saas ou sur-site
    Futur : APIs autonomes ?
    Dois-je lancer une stratégie d’API ?

    Travaux Pratiques

    Créer une API simple en JS ou PHP via un framework (API Platforme, HAPI.js, Express… au choix)

Objectifs de la formation 

Cette formation Sécuriser et Manager son API présente la vision d’OCTO Technology et vise à partager le savoir-faire acquis ces dernières années en réalisant plusieurs APIs pour nos clients. Son objectif est de vous permettre de sécuriser et de manager une API dans le cadre de travaux pratiques.



À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Savoir sécuriser et manager une API.
  • Sécuriser une API : API_KEY, OAuth2, OpenID Connect.
  • Mettre en œuvre un portail développeur

Manager une API : console d’administration, statistiques d’usage, quotas, etc.

À qui s’adresse cette formation ?

Public :

Cette formation s’adresse aux Développeurs, Architectes web et Chefs de projets web.

Prérequis :

Pour suivre cette formation dans de bonnes conditions, il est fortement conseillé d’avoir des connaissances de base du Web (HTTP, HTML, URI) et d’un langage de développement. 

Contenu du cours 

  1. 1.     

    Introduction

    Tour de table
    Présentation du programme de la formation

    L’essentiel sur la sécurisation et le management d’API

    API : enjeux et définition
    Sécurité :
    – Types de ressources « publiques et privées
    – Les principes : Throttling, DOS, Authentication, Authorization, Accouting
    – Mécanismes de sécurisation : API_KEY, OAuth2, OpenID Connect
    Portail développeur :
    – Exemples des Géants du Web
    – Les fonctionnalités essentielles : enrolment, documentation, interface Try-it, support (FAQ, Forum), etc.
    Console de supervision :
    – Les fonctionnalités : habilitation des développeurs et de leurs applications, statistiques d’usage, quotas/throttling, reporting
    Panorama des solutions d’API Management du marché

    Sécuriser ses ressources avec une App_key et OAuth2

    Sécuriser ses ressources publiques par une App_Key avec une solution d’API Management
    Sécuriser ses ressources privées par OAuth2 avec une solution d’API Management

    Gérer l’authentification

    Mire de login
    Récupérer l’identité de l’utilisateur

    Gérer les habilitations

    Gérer les habilitations de l’utilisateur connecté via les scopes OAuth2

    2.     

    : Sécuriser et manager une API

    Mettre en place un portail développeur

    Mettre en place la documentation publique de son API
    Interfaces Try-it
    Enrôlement des consommateurs de son API

    Mettre en place un portail d’API Management

    Créer des profils d’utilisateurs et des habilitations
    Reporting et statistiques d’usage
    Gérer les quotas

    Mettre en œuvre d’OpenID Connect

    Bilan et clôture de la formation

Objectifs de la formation 

REST (Representational State Transfer) est un style d’architecture SOA simplifiée afin de mettre en oeuvre et de consommer des services web en bénéficiant de tous les avantages d’Internet : scalabilité, caching, etc.

Cette formation Conception, Architecture et Sécurité des APIs ReST apprend aux architectes / designers / développeurs à bien concevoir et implémenter leurs APIs ReST afin d’obtenir la meilleure flexibilité, scalibility, performance et sécurité.

 

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Savoir concevoir, architecturiser et sécuriser des APIs et ReST.
  • Découvrir les bonnes pratiques d’architecture et de design d’APIs ReSTful.
  • Découvrir les menaces auxquelles s’exposent vos API.
  • Découvrir les vulnérabilités les plus fréquentes.
  • Savoir repérer les points faibles d’une API.
  • Savoir corriger les vulnérabilités et développer de façon sécurisée.

À qui s’adresse cette formation ?

Public :

Cette formation n’est pas uniquement dédiée aux développeurs Java mais à tous ceux qui ont déjà développés ou qui souhaitent développer des APIs ReST dans les règles de l’art.

Prérequis :

Avant de suivre cette formation REST APIs, il vous faut avoir certaines connaissances en développement Web : JavaScript / HTTP / HTML.

Contenu du cours 

  1. 1.

    Introduction aux APIs ReST

    L’écosystème moderne
    Roy Thomas FIELDING : Papa du ReST
    Richardson’s maturity model or Web Service Maturity Heuristic
    H.A.T.E.O.A.S., Resource Linking & Semantic Web

    Conventions & Bonnes Pratiques

    Pragmatisme, idéologie et ReSTafarians
    Les conventions
    Les différentes approches de versioning
    Tips, tricks et bonnes pratiques de conception et de développement
    Les “standards” ou presqueTravaux PratiquesDéfinition et conception d’une API ReST.

    La Boîte à Outils

    Conception d’API ReST avec OpenAPI & Swagger
    Debug et testing avec Postman
    Sandbox
    JSON Generator
    JSON ServerTravaux PratiquesSpécification d’une API ReST avec Swagger
    Testing d’une API ReST avec Postman
    BONUS : Implémentation d’une API ReST

    Rappels sur la Sécurité

    Menaces et impacts potentiels
    Les 4 principes de la sécurité informatique
    Présentation de l’OWASP TOP 10

    Authentification et Autorisation

    Sécurité de l’authentification
    Cookies are evil
    CORS (Cross-Origin Resource Sharing)
    CSRF (Cross-Site Request Forgery)
    Anti-farming et rate-limiting (ou throttling)
    Autorisation et gestion des permissions
    Les différents niveaux de granularité des mécanismes de gestion de permissions
    Role-Based Access Control vs. Resource-Based Access Control
    OAuth2
    OpenID ConnectTravaux PratiquesRecherche et exploitation de vulnérabilités d’authentification et d’autorisation avec Websheep.

    Autres vulnérabilités

    Canonicalization, Escaping et Sanitization
    Injection
    Data or Cache Poisoning
    ReDoSTravaux PratiquesRecherche et exploitation de vulnérabilités avec Websheep.

    J.W.T.

    Rappels sur la cryptographie
    J.O.S.E.
    J.W.T. : Fonctionnement, risques associés et bonnes pratiques
    Vulnérabilités J.W.T.Travaux PratiquesRecherche et exploitation de vulnérabilités avec Websheep.

    API Management

    Intérêts et fonctionnalités des solutions d’API ManagementBonus : Prise en main de la solution d’API management Kong

    Introduction

    Tour de table
    Présentation du programme de la formation

    L’essentiel sur la sécurisation et le management d’API

    API : enjeux et définition
    Sécurité :
    – Types de ressources « publiques et privées
    – Les principes : Throttling, DOS, Authentication, Authorization, Accouting
    – Mécanismes de sécurisation : API_KEY, OAuth2, OpenID Connect
    Portail développeur :
    – Exemples des Géants du Web
    – Les fonctionnalités essentielles : enrolment, documentation, interface Try-it, support (FAQ, Forum), etc.
    Console de supervision :
    – Les fonctionnalités : habilitation des développeurs et de leurs applications, statistiques d’usage, quotas/throttling, reporting
    Panorama des solutions d’API Management du marché

    Sécuriser ses ressources avec une App_key et OAuth2

    Sécuriser ses ressources publiques par une App_Key avec une solution d’API Management
    Sécuriser ses ressources privées par OAuth2 avec une solution d’API Management

    Gérer l’authentification

    Mire de login
    Récupérer l’identité de l’utilisateur

    Gérer les habilitations

    Gérer les habilitations de l’utilisateur connecté via les scopes OAuth2

    2.     

    : Sécuriser et manager une API

    Mettre en place un portail développeur

    Mettre en place la documentation publique de son API
    Interfaces Try-it
    Enrôlement des consommateurs de son API

    Mettre en place un portail d’API Management

    Créer des profils d’utilisateurs et des habilitations
    Reporting et statistiques d’usage
    Gérer les quotas

    Mettre en œuvre d’OpenID Connect

    Bilan et clôture de la formation

Objectifs de la formation 

Gravitee est un gestionnaire d’API qui permet de les administrer, de les superviser mais aussi de servir de passerelle pour les appeler de façon sécurisée depuis divers programmes.

Cette formation Gravitee aborde la partie publication sur Gravitee. Sur la base d’un environnement Gravitee déjà installé et paramétré (mais « vide »), vous apprendrez à publier des API selon différents scénarios.

 

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Maîtriser le concept d’API Management
  • Prendre en main Gravitee.io
  • Gérer le cycle de vie des API avec Gravitee
  • Enrichir le comportement des API

À qui s’adresse cette formation ?

Public :

Ce cours Gravitee s’adresse aux Architectes logiciel, Développeurs et Chef de projets.

Prérequis :

Pour suivre cette formation Gravitee, il est recommandé d’avoir des connaissances sur les protocoles http et sur les services web (Rest vs. SOAP).

Contenu du cours 

  1. 1

    API Management

    Rappels sur la finalité d’une API
    Pourquoi a-t-on besoin d’un gestionnaire d’API ?
    Les solutions apportées par Gravitee

    Travaux Pratiques

    Présentation et mise en œuvre des différents web services à publier
    Planification du modèle commercial de la base documentaire (exhaustivité – granularité – temporalité)

    Architecture Gravitee.io

    Vue générale de l’architecture Gravitee
    Les composants de Gravitee
    Rôle du Gateway
    Contenu et comportement du manager
    L’interface utilisateur Portal
    Le management-API de Gravitee

    Travaux Pratiques

    Formalisation des plans d’API

    Gestion de la sécurité

    Principes d’une API privée
    Les rôles (primary owner, owner, user) et permissions associées

    1.  

    Publication d’API

    Enregistrement d’une API existante
    Création du plan (trafic généré par les requêtes)
    Publication du plan (visibilité)
    Déploiement de l’API
    Démarrage de l’API

    Travaux Pratiques

    Publication des API de l’application documentaire et des plans associés

    Consommation d’API

    Utilisation de Portal
    Compte utilisateur
    Gérer les souscriptions
    Analyses des API
    Gérer les applications

    Travaux Pratiques

    Mise en œuvre d’une application de confiance (API Key) utilisant les APIs exposées
    Mise en œuvre d’un serveur de jetons pour améliorer la sécurisation

    Fonctionnalités avancées de publication d’API

    Gérer et configurer vos API
    Configurer le CORS (Cross-Origin Resource Sharing)
    Publier de la documentation
    API rating (avis sur les API)
    Les stratégies
    Quelques commandes en ligne

    Travaux Pratiques

    Mise en œuvre des politiques CORS et test de différents scénarios de détournement
    Publication de documentation et gestion des avis

Objectifs de la formation 

Cette formation Gravitee Administration aborde l’administration de l’API Management de Gravitee. Elle englobe les composants Gateway et Manager.

 

 À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Comprendre les objectifs fonctionnels couverts par Gravitee.io API Management
  • Installer et configurer Gravitee.io API Management
  • Administrer des comptes principaux
  • Être en capacité de faire évoluer la plateforme

À qui s’adresse cette formation ?

Public :

Ce cours Gravitee Administration s’adresse aux architectes technique, ingénieurs système et administrateurs de plateforme.

Prérequis :

Pour suivre cette formaion Gravitee Administration dans de bonnes conditions, il est nécessaire d’avoir des connaissances en administration d’un système Linux, de savoir évoluer sur une station de travail avec VirtualBox et de connaître le vocabulaire de Kubernetes

Contenu du cours 

  1. 1.

    Gravitee.io API Management

    Rappels (brefs) sur la finalité d’une API
    Pourquoi a-t-on besoin d’un gestionnaire d’API ?
    Les solutions apportées par Gravitee

    Travaux Pratiques

    Quizz sur les champs fonctionnels et conceptuels de Gravitee (quels sont les services proposés, quels sont ceux qui ne le sont pas)
    Exemple de surveillance globale proposée par Gravitee (carte de santé des API, statuts, disponibilité, temps de réponse, etc.)

    Architecture Gravitee.io

    Vue générale de l’architecture Gravitee
    Les composants de Gravitee Rôle du Gateway
    Contenu et comportement du manager
    L’interface utilisateur Portal
    Le management-API de Gravitee

    Travaux Pratiques

    Formalisation des échanges entre les API publishers et les API consumers (http, Reverse Proxy, Portal, Gateway, alerter, repository, instances, contenu du datastore, …)

    Installation Linux

    Ajout du dépôt
    Les composants (API Gateway, Management API, Portal)
    Installation de API Gateway et Manager (JDK, MongoDB, Elastic Search)
    Installation de Portal (interface utilisateur)
    Tests depuis différents navigateurs
    Rôles et permissions
    Utilisateurs et groupes

    Travaux Pratiques

    Installation des différents composants selon le format souhaité par les participants (zip, tar.gz, packages) et tests d’accès aux services

    Installation Kubernetes

    Rappels écosystème Kubernetes
    Le gestionnaire de packages Helm
    Vue d’ensemble sur « Gravitee.io API Management Helm Chart »

    Travaux Pratiques

    Création d’une archive chart

    Administration du socle

    Zoom sur la configuration du Gravitee Chart
    Configuration de la database (Mongodb-replicaset, logs, …)
    Configuration des connexions MongoDB et des réplicats
    Configuration d’elasticsearch
    Configuration de Gravitee UI
    Configuration de Gravitee API (niveau de logs, exposition, etc.)
    Configuration de Gravitee Gateway

    Travaux Pratiques

    Configuration du Gravitee chart. (Sharedconfiguration, Mongo, Elasticsearch, Gravitee UI, Gravitee API, Gravitee Gateway)
    Observation d’une plateforme en production réelle

    Gestion de la scalabilité

    Travaux Pratiques

    Mise en cluster de la solution précédente (montée en charge, ajout de nœud automatique,  supervision)

Objectifs de la formation 

REST (Representational State Transfer) est un style d’architecture SOA simplifiée afin de mettre en oeuvre et de consommer des services web en bénéficiant de tous les avantages d’Internet : scalabilité, caching, etc.

Cette formation vous permettra de comprendre REST et de développer en Java, via la spécification Java EE 6 JAX-RS, des solutions dites « RESTful ».

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Comprendre l’architecture classique d’un service Restful
  • Distinguer les différences entre les 2 frameworks JAX-RS et Spring
  • Utiliser la librairie Jackson
  • Sécuriser une application RestFul

À qui s’adresse cette formation ?

Public :

Cette formation cible principalement les architectes, les chefs de projets, les développeurs et les ingénieurs.

Prérequis :

Pour suivre cette formation dans les meilleures conditions possible vous devez connaitre les pratiques de Jakarta EE / Java EE et posséder certaines connaissances des principes de SOA.

Contenu du cours 

  1. 1.

    Introduction à REST

    Avantages des architures orientées services
    REST vs SOAP
    Le protocoles HTTP
    Principes d’une architecture « RESTful »
    Architecture en couche d’un service, architecture micro-services

    Développer des services « RESTful » avec JAX-RS

    Apports de l’API
    Annotations
    Déploiement de services
    Clients des services Web JAX-RS
    Services web plus complexes avec JAX-RS

    Développer des services « RESTful » avec Spring

    Les annotations Spring
    Client des services Web avec Spring
    Gestion centralisée des Exceptions

    Sérialisation/Désérialisation

    Retour sur le format JSON, les outils
    Frameworks disponibles
    Focus sur Jackson
    ObjectMapper, Annotations, JsonView

    Sécurité

    Filtres CORS
    Authentification Stateful
    Authentification Stateless (oAuth2, JWT)

    Scalabilité

    Cache
    Accès concurrents

Objectifs de la formation 

Cette formation KONG vous propose de traiter la thématique de l’API Management à travers l’exemple de KONG, de l’installation initiale jusqu’au développement de plugins sur-mesure.

 

 

 A l’issue de cette formation, vous aurez acquis les connaissances et compétences nécessaires pour :

  • Découvrir l’API Management avec KONG
  • Exposer ses APIs dans KONG
  • Sécuriser ses APIs dans KONG
  • Savoir mettre en œuvre les différents cas d’usage : console d’administration, statistiques d’usage, quotas, etc.
  • Développer un plugin dans KONG
  • Mettre en place KONG pour sécuriser et manager une API selon les bonnes pratiques d’architecture

À qui s’adresse cette formation ?

Public :

Cette formation KONG cible principalement les développeurs, les architectes, les technicals leaders et les Ops.

Prérequis :

Pour suivre ce cours KONG, il est nécessaire d’avoir une connaissance de base du web (HTTP, HTML, URL) et d’au moins un langage de programmation

Contenu du cours 

  1. 1.

    Introduction à KONG

    Présentation croisée et attentes des participants
    Déroulement de la session

    Management d’API, les grands principes

    KONG

    Présentation du produit
    Architecture (administration, exposition)
    API de référence

    Cas pratique

    Installation et configuration basique

    Les typologies de plugins

    Configuration de base de KONG

    Les services
    Le routage
    Clé d’API et gestion de quotas

    Cas pratique

    Développer votre premier plugin

    1.  

    Configuration avancée de KONG

    Sécuriser vos APIs
    OAuth 2.0

    OpenID Connect

    Cas pratique

    Sécuriser vos APIs avec KONG

    Les plugins spécifiques
    Transformations
    Monitorer vos APIs
    Proxy caching

    Cas pratique

    Remonter les logs dans un ELK

    Clôture de la session de formation

    Retour d’expérience
    Questions/Réponses
    Évaluation de la session

Objectifs de la formation 

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