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
Que sont les APIs, comment le web a évolué au fil du temps
Rappel du protocole HTTP, fonctionnement du web
Historique des évolutions technologiquesComment 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 / XMLArchitecturer 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 erreursConcepts avancés
Vers des APIS plus autonomes
HATEOS et Hypermedia
Sémantique : JSON-LD + Schema.org
Créer des SDK pour son API
CORSLes 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.0S’entrainer et débugguer avec
PostMan
API PlaygroundsOutils 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’APISOuvrir 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.
Introduction
Tour de table
Présentation du programme de la formationL’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 ManagementGérer l’authentification
Mire de login
Récupérer l’identité de l’utilisateurGé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 APIMettre en place un portail d’API Management
Créer des profils d’utilisateurs et des habilitations
Reporting et statistiques d’usage
Gérer les quotasMettre 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.
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 WebConventions & 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 ReSTRappels sur la Sécurité
Menaces et impacts potentiels
Les 4 principes de la sécurité informatique
Présentation de l’OWASP TOP 10Authentification 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 formationL’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 ManagementGérer l’authentification
Mire de login
Récupérer l’identité de l’utilisateurGé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 APIMettre en place un portail d’API Management
Créer des profils d’utilisateurs et des habilitations
Reporting et statistiques d’usage
Gérer les quotasMettre 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
API Management
Rappels sur la finalité d’une API
Pourquoi a-t-on besoin d’un gestionnaire d’API ?
Les solutions apportées par GraviteeTravaux 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 GraviteeTravaux 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éesPublication 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’APITravaux 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 applicationsTravaux 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écurisationFonctionnalité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 ligneTravaux 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.
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 GraviteeTravaux 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 GraviteeTravaux 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 groupesTravaux 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 GatewayTravaux Pratiques
Configuration du Gravitee chart. (Sharedconfiguration, Mongo, Elasticsearch, Gravitee UI, Gravitee API, Gravitee Gateway)
Observation d’une plateforme en production réelleGestion 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.
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-servicesDé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-RSDévelopper des services « RESTful » avec Spring
Les annotations Spring
Client des services Web avec Spring
Gestion centralisée des ExceptionsSérialisation/Désérialisation
Retour sur le format JSON, les outils
Frameworks disponibles
Focus sur Jackson
ObjectMapper, Annotations, JsonViewSé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.
Introduction à KONG
Présentation croisée et attentes des participants
Déroulement de la sessionManagement d’API, les grands principes
KONG
Présentation du produit
Architecture (administration, exposition)
API de référenceCas pratique
Installation et configuration basique
Les typologies de plugins
Configuration de base de KONG
Les services
Le routage
Clé d’API et gestion de quotasCas pratique
Développer votre premier plugin
Configuration avancée de KONG
Sécuriser vos APIs
OAuth 2.0OpenID Connect
Cas pratique
Sécuriser vos APIs avec KONG
Les plugins spécifiques
Transformations
Monitorer vos APIs
Proxy cachingCas 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
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 »
Découvrir les familles de base de données NoSQL
Key-Value
Document
Graph
Colonne
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 »
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”
Search – Fédération De Données
Présentation de l’offre Elasticsearch
Cas d’application
“Elasticsearch”
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
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
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)
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.
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
- 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
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
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
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
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
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
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
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
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
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
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
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 »
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
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
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
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
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
É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
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
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
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
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
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
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
Introduction et Rappel (Rapide)
Présentation
Pourquoi MongoDB ?
MongoDB en comparaison des bases relationnelles
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
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
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
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
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
Développer avec Redis
Encoding
Clients permettant de développer avec Redis
Utiliser Redis en cache d’un RDBMS classique
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
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.
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.
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.
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.
Supervision
OpsCenter: installation, lancement.
Utilisation de base.
Supervision avec nodetool cfstats, ou export JMX vers des outils de supervision comme Nagios.
Exploitation de Cassandra
Maitriser les notions de sauvegarde.
Import/export au format JSON.
Support Hadoop
Présentation du principe de MapReduce.
Implémentation Hadoop.
Maitriser la mise en oeuvre depuis Cassandra.
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é
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
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
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
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
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
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
Supervision et troubleshooting
Gestion des nœuds d’un cluster
Monitoring avec l’outil nodetool
Configuration et exploitation des logs
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
Stratégies de compaction
SizeTieredCompactionStrategy
LeveledCompactionStrategy
TimeWindowCompactionStrategy
Tuning de la JVM
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