{"id":12845,"date":"2022-07-02T13:23:12","date_gmt":"2022-07-02T13:23:12","guid":{"rendered":"http:\/\/705consulting.com\/?page_id=12845"},"modified":"2023-02-21T00:48:38","modified_gmt":"2023-02-21T00:48:38","slug":"formation-api","status":"publish","type":"page","link":"https:\/\/705consulting.com\/index.php\/formation-api\/","title":{"rendered":"Formation API"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12845\" class=\"elementor elementor-12845\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f419774 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f419774\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b7ddcf4\" data-id=\"b7ddcf4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-258fa8e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"258fa8e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-1f15051\" data-id=\"1f15051\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-45b9f54 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"45b9f54\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a3cff03\" data-id=\"a3cff03\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f3991e2 elementor-widget elementor-widget-witr_section_t_widget\" data-id=\"f3991e2\" data-element_type=\"widget\" data-widget_type=\"witr_section_t_widget.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<!-- text widget center -->\n\t\t\t\t\t<div class=\"witr_text_widget\">\n\t\t\t\t\t\t<div class=\"witr_text_widget_inner\">\n\t\t\t\t\t\t\t<!-- text widget top -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- text widget middle -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<!-- text widget bottom -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- content -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p><p>Les API sont des m\u00e9canismes qui permettent \u00e0 deux composants logiciels de communiquer entre eux \u00e0 l'aide d'un ensemble de d\u00e9finitions et de protocoles. Par exemple,\u00a0<b>le syst\u00e8me logiciel du bureau m\u00e9t\u00e9orologique contient les donn\u00e9es m\u00e9t\u00e9orologiques quotidiennes<\/b>.<\/p><p>En\u00a0informatique, une\u00a0<b>interface de programmation d\u2019application<\/b><sup id=\"cite_ref-1\" class=\"reference\"><\/sup>\u00a0ou\u00a0<b>interface de programmation applicative<\/b><sup id=\"cite_ref-2\" class=\"reference\"><\/sup>, souvent d\u00e9sign\u00e9e par le terme\u00a0<b>API<\/b>\u00a0pour \u00ab\u00a0<i><span class=\"lang-en\" lang=\"en\">Application Programming Interface<\/span><\/i>\u00a0\u00bb, est un ensemble normalis\u00e9 de\u00a0classes, de\u00a0m\u00e9thodes, de\u00a0fonctions\u00a0et de\u00a0constantes\u00a0qui sert de\u00a0fa\u00e7ade\u00a0par laquelle un\u00a0logiciel\u00a0offre des services \u00e0 d'autres logiciels.<\/p><\/p>\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!--- repeater content --->\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-476bc18 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"476bc18\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-224c9a9\" data-id=\"224c9a9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-335bcc4 elementor-widget elementor-widget-toggle\" data-id=\"335bcc4\" data-element_type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.7.8 - 02-10-2022 *\/\n.elementor-toggle{text-align:left}.elementor-toggle .elementor-tab-title{font-weight:700;line-height:1;margin:0;padding:15px;border-bottom:1px solid #d4d4d4;cursor:pointer;outline:none}.elementor-toggle .elementor-tab-title .elementor-toggle-icon{display:inline-block;width:1em}.elementor-toggle .elementor-tab-title .elementor-toggle-icon svg{-webkit-margin-start:-5px;margin-inline-start:-5px;width:1em;height:1em}.elementor-toggle .elementor-tab-title .elementor-toggle-icon.elementor-toggle-icon-right{float:right;text-align:right}.elementor-toggle .elementor-tab-title .elementor-toggle-icon.elementor-toggle-icon-left{float:left;text-align:left}.elementor-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-closed{display:block}.elementor-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-opened{display:none}.elementor-toggle .elementor-tab-title.elementor-active{border-bottom:none}.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-closed{display:none}.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-opened{display:block}.elementor-toggle .elementor-tab-content{padding:15px;border-bottom:1px solid #d4d4d4;display:none}@media (max-width:767px){.elementor-toggle .elementor-tab-title{padding:12px}.elementor-toggle .elementor-tab-content{padding:12px 10px}}.e-container>.elementor-widget-toggle{width:var(--container-widget-width,100%)}<\/style>\t\t<div class=\"elementor-toggle\" role=\"tablist\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5381\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"tab\" aria-controls=\"elementor-tab-content-5381\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION API: OUVRIR SON SI ET DEVELOPPER SON MODELE D\u2019AFFAIRES <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5381\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5381\"><h2>Objectifs de la formation\u00a0<\/h2><p>Les APIs sont devenues un atout majeur de la strat\u00e9gie d&#8217;une entreprise. L&#8217;ouverture du syst\u00e8me d&#8217;information aux applications externes et aux partenaires permet de cr\u00e9er des nouvelles utilisations et beaucoup d\u2019innovations.<br \/><br \/>Cette\u00a0<strong>formation API &#8211; SI et d\u00e9veloppement d&#8217;un mod\u00e8le d&#8217;affaires<\/strong>\u00a0vous permettra de maitriser dans un premier temps les concepts techniques d\u2019une architecture REST qui permet aux d\u00e9veloppeurs de cr\u00e9er un certain nombre de services logiciels (API Rest) et de les consommer en mode interne ou externe, puis vous comprendrez l\u2019importance strat\u00e9gique d\u2019une telle ouverture pour les entreprises<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Savoir ma\u00eetriser les concepts techniques d&#8217;une architecture REST.<\/li><\/ul><ul><li>Comprendre les enjeux techniques, fonctionnels et m\u00e9tier des APIs<\/li><li>Maitriser la consommation de votre API et son ouverture aux d\u00e9veloppeurs<\/li><li>Savoir d\u00e9ployer et maintenir une strat\u00e9gie d\u2019API durable.<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce stage s&#8217;adresse aux DSI, Architectes, D\u00e9veloppeurs, Administrateurs, Product owners, Business analysts.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour que le cours se d\u00e9roule dans les meilleures conditions possibles, il est recommand\u00e9 de poss\u00e9der une culture g\u00e9n\u00e9rale en architecture des syst\u00e8mes d&#8217;information et conna\u00eetre le protocole applicatif HTTP.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>Que sont les APIs, comment le web a \u00e9volu\u00e9 au fil du temps<\/h3><p>Rappel du protocole HTTP, fonctionnement du web<br \/>Historique des \u00e9volutions technologiques<\/p><h3>Comment fonctionnent les API Rest<\/h3><p>Qu&#8217;est-ce qu&#8217;une API<br \/>Les APIs existent depuis toujours<br \/>La diff\u00e9rence entre architecture SOAP et REST<br \/>Quel type d&#8217;API utiliser aujourd&#8217;hui ?<br \/>Principes de base d&#8217;une API Rest<br \/>Que sont JSON \/ XML<\/p><h3>Architecturer son API<\/h3><p>Principe KISS<br \/>Principe CRUD<br \/>Verbes et noms<br \/>Choix de casse et de singulier\/pluriel<br \/>Nom de domaine de votre API<br \/>Endpoints<br \/>HTTP Response Codes<br \/>Versionnement de l&#8217;API<br \/>R\u00e9ponses partielles<br \/>Granularit\u00e9<br \/>Query Strings (Filtres, Tris, Pagnination, Recherche)<br \/>Gestion des erreurs<\/p><h3>Concepts avanc\u00e9s<\/h3><p>Vers des APIS plus autonomes<br \/>HATEOS et Hypermedia<br \/>S\u00e9mantique : JSON-LD + Schema.org<br \/>Cr\u00e9er des SDK pour son API<br \/>CORS<\/p><h3>Les m\u00e9thodes d&#8217;authentification<\/h3><p>L&#8217;importance de HTTPS<br \/>API Key<br \/>Basic Auth<br \/>OAuth v2.0<br \/>App Authorization<br \/>Gestion de Scopes<br \/>GraphQL, l&#8217;avenir des APIs ?<\/p><h3>Mise en pratique<\/h3><p><strong>Manipulation de diverses API avec diverses m\u00e9thodes d&#8217;authentification<\/strong><\/p><p>Mailchimp API via API Key<br \/>Github API via Basic Auth<br \/>Spotify API via OAuth v2.0<br \/>Gmail API via OAuth v2.0<\/p><p><strong>S&#8217;entrainer et d\u00e9bugguer avec<\/strong><\/p><p>PostMan<br \/>API Playgrounds<\/p><h3>Outils et Frameworks<\/h3><p>Swagger, API Blueprint<br \/>Hapi.js, Express et Node.js<br \/>API Platform, Symfony en PHP<br \/>Outils de cache : Redis<br \/>Tests unitaires : Cucumber<br \/>Marketplace d&#8217;APIS<\/p><h3>Ouvrir votre SI aux APIS<\/h3><p>Qu&#8217;est-ce qu&#8217;une API, sans jargon technique cette fois<br \/>APIs et g\u00e9ants du web<br \/>Evolution du nombre d&#8217;APIs<br \/>Open API<br \/>API First<br \/>Niveaux d&#8217;APIs<br \/>Points de blocages potentiels<br \/>Infrastructure<br \/>Enjeux d&#8217;architecture<br \/>Microservices<br \/>Low latence et asynchronisme<br \/>APIs non transactionnelles<br \/>Partir de 0 ou impl\u00e9menter sur ma couche services ?<br \/>Architectures SOA et WOA<br \/>APIs en Facade<br \/>Impacts organisationnel des \u00e9quipes et ressources<br \/>Solutions d&#8217;API Management<br \/>Mod\u00e8le \u00e9conomique de votre API<br \/>Build vs Buy<br \/>en Saas ou sur-site<br \/>Futur : APIs autonomes ?<br \/>Dois-je lancer une strat\u00e9gie d&#8217;API ?<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Cr\u00e9er une API simple en JS ou PHP via un framework (API Platforme, HAPI.js, Express&#8230; au choix)<\/em><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5382\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"tab\" aria-controls=\"elementor-tab-content-5382\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION SECURISER ET MANAGER SON API<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5382\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5382\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette\u00a0<strong>formation S\u00e9curiser et Manager son AP<\/strong>I pr\u00e9sente la vision d\u2019OCTO Technology et vise \u00e0 partager le savoir-faire acquis ces derni\u00e8res ann\u00e9es en r\u00e9alisant plusieurs APIs pour nos clients. Son objectif est de vous permettre de s\u00e9curiser et de manager une API dans le cadre de travaux pratiques.<\/p><p><br \/><br \/><\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Savoir s\u00e9curiser et manager une API.<\/li><\/ul><ul><li>S\u00e9curiser une API : API_KEY, OAuth2, OpenID Connect.<\/li><li>Mettre en \u0153uvre un portail d\u00e9veloppeur<\/li><\/ul><p>Manager une API : console d\u2019administration, statistiques d\u2019usage, quotas, etc.<\/p><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation s&#8217;adresse aux D\u00e9veloppeurs, Architectes web et Chefs de projets web.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre cette formation dans de bonnes conditions, il est fortement conseill\u00e9 d&#8217;avoir des connaissances de base du Web (HTTP, HTML, URI) et d\u2019un langage de d\u00e9veloppement.\u00a0<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.\u00a0\u00a0\u00a0 \u00a0<\/h3><p><strong>Introduction<\/strong><\/p><p>Tour de table<br \/>Pr\u00e9sentation du programme de la formation<\/p><p><strong>L&#8217;essentiel sur la s\u00e9curisation et le management d&#8217;API<\/strong><\/p><p>API : enjeux et d\u00e9finition<br \/>S\u00e9curit\u00e9 :<br \/>&#8211; Types de ressources \u00ab publiques et priv\u00e9es<br \/>&#8211; Les principes : Throttling, DOS, Authentication, Authorization, Accouting<br \/>&#8211; M\u00e9canismes de s\u00e9curisation : API_KEY, OAuth2, OpenID Connect<br \/>Portail d\u00e9veloppeur :<br \/>&#8211; Exemples des G\u00e9ants du Web<br \/>&#8211; Les fonctionnalit\u00e9s essentielles : enrolment, documentation, interface Try-it, support (FAQ, Forum), etc.<br \/>Console de supervision :<br \/>&#8211; Les fonctionnalit\u00e9s : habilitation des d\u00e9veloppeurs et de leurs applications, statistiques d&#8217;usage, quotas\/throttling, reporting<br \/>Panorama des solutions d&#8217;API Management du march\u00e9<\/p><p><strong>S\u00e9curiser ses ressources avec une App_key et OAuth2<\/strong><\/p><p>S\u00e9curiser ses ressources publiques par une App_Key avec une solution d&#8217;API Management<br \/>S\u00e9curiser ses ressources priv\u00e9es par OAuth2 avec une solution d&#8217;API Management<\/p><p><strong>G\u00e9rer l\u2019authentification<\/strong><\/p><p>Mire de login<br \/>R\u00e9cup\u00e9rer l&#8217;identit\u00e9 de l&#8217;utilisateur<\/p><p><strong>G\u00e9rer les habilitations<\/strong><\/p><p>G\u00e9rer les habilitations de l\u2019utilisateur connect\u00e9 via les scopes OAuth2<\/p><h3>2.\u00a0\u00a0\u00a0 \u00a0<\/h3><h3>: S\u00e9curiser et manager une API<\/h3><p><strong>Mettre en place un portail d\u00e9veloppeur<\/strong><\/p><p>Mettre en place la documentation publique de son API<br \/>Interfaces Try-it<br \/>Enr\u00f4lement des consommateurs de son API<\/p><p><strong>Mettre en place un portail d&#8217;API Management<\/strong><\/p><p>Cr\u00e9er des profils d\u2019utilisateurs et des habilitations<br \/>Reporting et statistiques d\u2019usage<br \/>G\u00e9rer les quotas<\/p><p><strong>Mettre en \u0153uvre d\u2019OpenID Connect<\/strong><\/p><p><strong>Bilan et cl\u00f4ture de la formation<\/strong><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5383\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"tab\" aria-controls=\"elementor-tab-content-5383\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION CONCEPTION, ARCHITECTURE ET SECURITE DES APIs REST<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5383\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5383\"><h2>Objectifs de la formation\u00a0<\/h2><p>REST (Representational State Transfer) est un style d&#8217;architecture SOA simplifi\u00e9e afin de mettre en oeuvre et de consommer des services web en b\u00e9n\u00e9ficiant de tous les avantages d&#8217;Internet : scalabilit\u00e9, caching, etc.<\/p><p>Cette\u00a0<strong>formation Conception, Architecture et S\u00e9curit\u00e9 des APIs ReST<\/strong><strong>\u00a0<\/strong>apprend aux architectes \/ designers \/ d\u00e9veloppeurs \u00e0 bien concevoir et impl\u00e9menter leurs APIs ReST afin d&#8217;obtenir la meilleure flexibilit\u00e9, scalibility, performance et s\u00e9curit\u00e9.<\/p><p>\u00a0<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Savoir concevoir, architecturiser et s\u00e9curiser des APIs et ReST.<\/li><\/ul><ul><li>D\u00e9couvrir les bonnes pratiques d\u2019architecture et de design d\u2019APIs ReSTful.<\/li><li>D\u00e9couvrir les menaces auxquelles s\u2019exposent vos API.<\/li><li>D\u00e9couvrir les vuln\u00e9rabilit\u00e9s les plus fr\u00e9quentes.<\/li><li>Savoir rep\u00e9rer les points faibles d\u2019une API.<\/li><li>Savoir corriger les vuln\u00e9rabilit\u00e9s et d\u00e9velopper de fa\u00e7on s\u00e9curis\u00e9e.<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation n&#8217;est pas uniquement d\u00e9di\u00e9e aux d\u00e9veloppeurs Java mais \u00e0 tous ceux qui ont d\u00e9j\u00e0 d\u00e9velopp\u00e9s ou qui souhaitent d\u00e9velopper des APIs ReST dans les r\u00e8gles de l&#8217;art.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Avant de suivre cette formation REST APIs, il vous faut avoir certaines connaissances en d\u00e9veloppement Web : JavaScript \/ HTTP \/ HTML.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Introduction aux APIs ReST<\/h3><p>L\u2019\u00e9cosyst\u00e8me moderne<br \/>Roy Thomas FIELDING : Papa du ReST<br \/>Richardson\u2019s maturity model or Web Service Maturity Heuristic<br \/>H.A.T.E.O.A.S., Resource Linking &amp; Semantic Web<\/p><h3>Conventions &amp; Bonnes Pratiques<\/h3><p>Pragmatisme, id\u00e9ologie et ReSTafarians<br \/>Les conventions<br \/>Les diff\u00e9rentes approches de versioning<br \/>Tips, tricks et bonnes pratiques de conception et de d\u00e9veloppement<br \/>Les \u201cstandards\u201d ou presque<strong><em>Travaux Pratiques<\/em><\/strong><em>D\u00e9finition et conception d\u2019une API ReST.<\/em><\/p><h3>La Bo\u00eete \u00e0 Outils<\/h3><p>Conception d\u2019API ReST avec OpenAPI &amp; Swagger<br \/>Debug et testing avec Postman<br \/>Sandbox<br \/>JSON Generator<br \/>JSON Server<strong><em>Travaux Pratiques<\/em><\/strong><em>Sp\u00e9cification d\u2019une API ReST avec Swagger<\/em><em><br \/>Testing d\u2019une API ReST avec Postman<br \/>BONUS : Impl\u00e9mentation d\u2019une API ReST<\/em><\/p><h3>Rappels sur la S\u00e9curit\u00e9<\/h3><p>Menaces et impacts potentiels<br \/>Les 4 principes de la s\u00e9curit\u00e9 informatique<br \/>Pr\u00e9sentation de l\u2019OWASP TOP 10<\/p><h3>Authentification et Autorisation<\/h3><p>S\u00e9curit\u00e9 de l\u2019authentification<br \/>Cookies are evil<br \/>CORS (Cross-Origin Resource Sharing)<br \/>CSRF (Cross-Site Request Forgery)<br \/>Anti-farming et rate-limiting (ou throttling)<br \/>Autorisation et gestion des permissions<br \/>Les diff\u00e9rents niveaux de granularit\u00e9 des m\u00e9canismes de gestion de permissions<br \/>Role-Based Access Control vs. Resource-Based Access Control<br \/>OAuth2<br \/>OpenID Connect<strong><em>Travaux Pratiques<\/em><\/strong><em>Recherche et exploitation de vuln\u00e9rabilit\u00e9s d\u2019authentification et d\u2019autorisation avec Websheep.<\/em><\/p><h3>Autres vuln\u00e9rabilit\u00e9s<\/h3><p>Canonicalization, Escaping et Sanitization<br \/>Injection<br \/>Data or Cache Poisoning<br \/>ReDoS<strong><em>Travaux Pratiques<\/em><\/strong><em>Recherche et exploitation de vuln\u00e9rabilit\u00e9s avec Websheep.<\/em><\/p><h3>J.W.T.<\/h3><p>Rappels sur la cryptographie<br \/>J.O.S.E.<br \/>J.W.T. : Fonctionnement, risques associ\u00e9s et bonnes pratiques<br \/>Vuln\u00e9rabilit\u00e9s J.W.T.<strong><em>Travaux Pratiques<\/em><\/strong><em>Recherche et exploitation de vuln\u00e9rabilit\u00e9s avec Websheep.<\/em><\/p><h3>API Management<\/h3><p>Int\u00e9r\u00eats et fonctionnalit\u00e9s des solutions d\u2019API Management<strong><em>Bonus : Prise en main de la solution d\u2019API management Kong<\/em><\/strong><\/p><p><strong>Introduction<\/strong><\/p><p>Tour de table<br \/>Pr\u00e9sentation du programme de la formation<\/p><p><strong>L&#8217;essentiel sur la s\u00e9curisation et le management d&#8217;API<\/strong><\/p><p>API : enjeux et d\u00e9finition<br \/>S\u00e9curit\u00e9 :<br \/>&#8211; Types de ressources \u00ab publiques et priv\u00e9es<br \/>&#8211; Les principes : Throttling, DOS, Authentication, Authorization, Accouting<br \/>&#8211; M\u00e9canismes de s\u00e9curisation : API_KEY, OAuth2, OpenID Connect<br \/>Portail d\u00e9veloppeur :<br \/>&#8211; Exemples des G\u00e9ants du Web<br \/>&#8211; Les fonctionnalit\u00e9s essentielles : enrolment, documentation, interface Try-it, support (FAQ, Forum), etc.<br \/>Console de supervision :<br \/>&#8211; Les fonctionnalit\u00e9s : habilitation des d\u00e9veloppeurs et de leurs applications, statistiques d&#8217;usage, quotas\/throttling, reporting<br \/>Panorama des solutions d&#8217;API Management du march\u00e9<\/p><p><strong>S\u00e9curiser ses ressources avec une App_key et OAuth2<\/strong><\/p><p>S\u00e9curiser ses ressources publiques par une App_Key avec une solution d&#8217;API Management<br \/>S\u00e9curiser ses ressources priv\u00e9es par OAuth2 avec une solution d&#8217;API Management<\/p><p><strong>G\u00e9rer l\u2019authentification<\/strong><\/p><p>Mire de login<br \/>R\u00e9cup\u00e9rer l&#8217;identit\u00e9 de l&#8217;utilisateur<\/p><p><strong>G\u00e9rer les habilitations<\/strong><\/p><p>G\u00e9rer les habilitations de l\u2019utilisateur connect\u00e9 via les scopes OAuth2<\/p><h3>2.\u00a0\u00a0\u00a0 \u00a0<\/h3><h3>: S\u00e9curiser et manager une API<\/h3><p><strong>Mettre en place un portail d\u00e9veloppeur<\/strong><\/p><p>Mettre en place la documentation publique de son API<br \/>Interfaces Try-it<br \/>Enr\u00f4lement des consommateurs de son API<\/p><p><strong>Mettre en place un portail d&#8217;API Management<\/strong><\/p><p>Cr\u00e9er des profils d\u2019utilisateurs et des habilitations<br \/>Reporting et statistiques d\u2019usage<br \/>G\u00e9rer les quotas<\/p><p><strong>Mettre en \u0153uvre d\u2019OpenID Connect<\/strong><\/p><p><strong>Bilan et cl\u00f4ture de la formation<\/strong><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5384\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"tab\" aria-controls=\"elementor-tab-content-5384\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION GRAVITEE: PUBLIER SON API AVEC GRAVITEE <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5384\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5384\"><h2>Objectifs de la formation\u00a0<\/h2><p><strong>Gravitee<\/strong>\u00a0est un gestionnaire d\u2019API qui permet de les administrer, de les superviser mais aussi de servir de passerelle pour les appeler de fa\u00e7on s\u00e9curis\u00e9e depuis divers programmes.<\/p><p>Cette\u00a0<strong>formation Gravitee<\/strong>\u00a0aborde la partie publication sur Gravitee. Sur la base d\u2019un environnement Gravitee d\u00e9j\u00e0 install\u00e9 et param\u00e9tr\u00e9 (mais \u00ab vide \u00bb), vous apprendrez \u00e0 publier des API selon diff\u00e9rents sc\u00e9narios.<\/p><p>\u00a0<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Ma\u00eetriser le concept d\u2019API Management<\/li><li>Prendre en main Gravitee.io<\/li><li>G\u00e9rer le cycle de vie des API avec Gravitee<\/li><li>Enrichir le comportement des API<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours Gravitee s&#8217;adresse aux Architectes logiciel, D\u00e9veloppeurs et Chef de projets.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre cette formation Gravitee, il est recommand\u00e9 d&#8217;avoir des connaissances sur les protocoles http et sur les services web (Rest vs. SOAP).<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1<\/h3><h3>API Management<\/h3><p>Rappels sur la finalit\u00e9 d\u2019une API<br \/>Pourquoi a-t-on besoin d\u2019un gestionnaire d\u2019API ?<br \/>Les solutions apport\u00e9es par Gravitee<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Pr\u00e9sentation et mise en \u0153uvre des diff\u00e9rents web services \u00e0 publier<\/em><em><br \/>Planification du mod\u00e8le commercial de la base documentaire (exhaustivit\u00e9 \u2013 granularit\u00e9 \u2013 temporalit\u00e9)<\/em><\/p><h3>Architecture Gravitee.io<\/h3><p>Vue g\u00e9n\u00e9rale de l\u2019architecture Gravitee<br \/>Les composants de Gravitee<br \/>R\u00f4le du Gateway<br \/>Contenu et comportement du manager<br \/>L\u2019interface utilisateur Portal<br \/>Le management-API de Gravitee<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Formalisation des plans d\u2019API<\/em><\/p><h3>Gestion de la s\u00e9curit\u00e9<\/h3><p>Principes d\u2019une API priv\u00e9e<br \/>Les r\u00f4les (primary owner, owner, user) et permissions associ\u00e9es<\/p><ol><li>\u00a0<\/li><\/ol><h3>Publication d\u2019API<\/h3><p>Enregistrement d\u2019une API existante<br \/>Cr\u00e9ation du plan (trafic g\u00e9n\u00e9r\u00e9 par les requ\u00eates)<br \/>Publication du plan (visibilit\u00e9)<br \/>D\u00e9ploiement de l\u2019API<br \/>D\u00e9marrage de l\u2019API<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Publication des API de l\u2019application documentaire et des plans associ\u00e9s<\/em><\/p><h3>Consommation d\u2019API<\/h3><p>Utilisation de Portal<br \/>Compte utilisateur<br \/>G\u00e9rer les souscriptions<br \/>Analyses des API<br \/>G\u00e9rer les applications<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Mise en \u0153uvre d\u2019une application de confiance (API Key) utilisant les APIs expos\u00e9es<\/em><em><br \/>Mise en \u0153uvre d\u2019un serveur de jetons pour am\u00e9liorer la s\u00e9curisation<\/em><\/p><h3>Fonctionnalit\u00e9s avanc\u00e9es de publication d\u2019API<\/h3><p>G\u00e9rer et configurer vos API<br \/>Configurer le CORS (Cross-Origin Resource Sharing)<br \/>Publier de la documentation<br \/>API rating (avis sur les API)<br \/>Les strat\u00e9gies<br \/>Quelques commandes en ligne<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Mise en \u0153uvre des politiques CORS et test de diff\u00e9rents sc\u00e9narios de d\u00e9tournement<\/em><em><br \/>Publication de documentation et gestion des avis<\/em><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5385\" class=\"elementor-tab-title\" data-tab=\"5\" role=\"tab\" aria-controls=\"elementor-tab-content-5385\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION GRAVITEE: ADMINISTRER L\u2019API MANAGEMENT DE GRAVITEE <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5385\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5385\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette\u00a0<strong>formation Gravitee Administration<\/strong>\u00a0aborde l&#8217;administration de l&#8217;API Management de Gravitee. Elle englobe les composants Gateway et Manager.<\/p><p>\u00a0<\/p><p>\u00a0\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Comprendre les objectifs fonctionnels couverts par Gravitee.io API Management<\/li><li>Installer et configurer Gravitee.io API Management<\/li><li>Administrer des comptes principaux<\/li><li>\u00catre en capacit\u00e9 de faire \u00e9voluer la plateforme<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours Gravitee Administration s&#8217;adresse aux architectes technique, ing\u00e9nieurs syst\u00e8me et administrateurs de plateforme.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre cette formaion Gravitee Administration dans de bonnes conditions, il est n\u00e9cessaire d&#8217;avoir des connaissances en administration d&#8217;un syst\u00e8me Linux, de savoir \u00e9voluer sur une station de travail avec VirtualBox et de conna\u00eetre le vocabulaire de Kubernetes<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Gravitee.io API Management<\/h3><p>Rappels (brefs) sur la finalit\u00e9 d\u2019une API<br \/>Pourquoi a-t-on besoin d\u2019un gestionnaire d\u2019API ?<br \/>Les solutions apport\u00e9es par Gravitee<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Quizz sur les champs fonctionnels et conceptuels de Gravitee (quels sont les services propos\u00e9s, quels sont ceux qui ne le sont pas)<\/em><em><br \/>Exemple de surveillance globale propos\u00e9e par Gravitee (carte de sant\u00e9 des API, statuts, disponibilit\u00e9, temps de r\u00e9ponse, etc.)<\/em><\/p><h3>Architecture Gravitee.io<\/h3><p>Vue g\u00e9n\u00e9rale de l\u2019architecture Gravitee<br \/>Les composants de Gravitee R\u00f4le du Gateway<br \/>Contenu et comportement du manager<br \/>L\u2019interface utilisateur Portal<br \/>Le management-API de Gravitee<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Formalisation des \u00e9changes entre les API publishers et les API consumers (http, Reverse Proxy, Portal, Gateway, alerter, repository, instances, contenu du datastore, \u2026)<\/em><\/p><h3>Installation Linux<\/h3><p>Ajout du d\u00e9p\u00f4t<br \/>Les composants (API Gateway, Management API, Portal)<br \/>Installation de API Gateway et Manager (JDK, MongoDB, Elastic Search)<br \/>Installation de Portal (interface utilisateur)<br \/>Tests depuis diff\u00e9rents navigateurs<br \/>R\u00f4les et permissions<br \/>Utilisateurs et groupes<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Installation des diff\u00e9rents composants selon le format souhait\u00e9 par les participants (zip, tar.gz, packages) et tests d\u2019acc\u00e8s aux services<\/em><\/p><h3>Installation Kubernetes<\/h3><p>Rappels \u00e9cosyst\u00e8me Kubernetes<br \/>Le gestionnaire de packages Helm<br \/>Vue d\u2019ensemble sur \u00ab Gravitee.io API Management Helm Chart \u00bb<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Cr\u00e9ation d\u2019une archive chart<\/em><\/p><h3>Administration du socle<\/h3><p>Zoom sur la configuration du Gravitee Chart<br \/>Configuration de la database (Mongodb-replicaset, logs, \u2026)<br \/>Configuration des connexions MongoDB et des r\u00e9plicats<br \/>Configuration d\u2019elasticsearch<br \/>Configuration de Gravitee UI<br \/>Configuration de Gravitee API (niveau de logs, exposition, etc.)<br \/>Configuration de Gravitee Gateway<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Configuration du Gravitee chart. (Sharedconfiguration, Mongo, Elasticsearch, Gravitee UI, Gravitee API, Gravitee Gateway)<\/em><em><br \/>Observation d\u2019une plateforme en production r\u00e9elle<\/em><\/p><h3>Gestion de la scalabilit\u00e9<\/h3><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Mise en cluster de la solution pr\u00e9c\u00e9dente (mont\u00e9e en charge, ajout de n\u0153ud automatique,\u00a0 supervision)<\/em><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5386\" class=\"elementor-tab-title\" data-tab=\"6\" role=\"tab\" aria-controls=\"elementor-tab-content-5386\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION DEVELOPER UN API RESTFULL EN JAVA <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5386\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"6\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5386\"><h2>Objectifs de la formation\u00a0<\/h2><p>REST (Representational State Transfer) est un style d&#8217;architecture SOA simplifi\u00e9e afin de mettre en oeuvre et de consommer des services web en b\u00e9n\u00e9ficiant de tous les avantages d&#8217;Internet : scalabilit\u00e9, caching, etc.<\/p><p>Cette formation vous permettra de comprendre REST et de d\u00e9velopper en Java, via la sp\u00e9cification Java EE 6 JAX-RS, des solutions dites \u00ab RESTful \u00bb.<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Comprendre l&#8217;architecture classique d&#8217;un service Restful<\/li><li>Distinguer les diff\u00e9rences entre les 2 frameworks JAX-RS et Spring<\/li><li>Utiliser la librairie Jackson<\/li><li>S\u00e9curiser une application RestFul<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation cible principalement les architectes, les chefs de projets, les d\u00e9veloppeurs et les ing\u00e9nieurs.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre cette formation dans les meilleures conditions possible vous devez connaitre les pratiques de Jakarta EE \/ Java EE et poss\u00e9der certaines connaissances des principes de SOA.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Introduction \u00e0 REST<\/h3><p>Avantages des architures orient\u00e9es services<br \/>REST vs SOAP<br \/>Le protocoles HTTP<br \/>Principes d\u2019une architecture \u00ab RESTful \u00bb<br \/>Architecture en couche d&#8217;un service, architecture micro-services<\/p><h3>D\u00e9velopper des services \u00ab RESTful \u00bb avec JAX-RS<\/h3><p>Apports de l&#8217;API<br \/>Annotations<br \/>D\u00e9ploiement de services<br \/>Clients des services Web JAX-RS<br \/>Services web plus complexes avec JAX-RS<\/p><h3>D\u00e9velopper des services \u00ab RESTful \u00bb avec Spring<\/h3><p>Les annotations Spring<br \/>Client des services Web avec Spring<br \/>Gestion centralis\u00e9e des Exceptions<\/p><h3>S\u00e9rialisation\/D\u00e9s\u00e9rialisation<\/h3><p>Retour sur le format JSON, les outils<br \/>Frameworks disponibles<br \/>Focus sur Jackson<br \/>ObjectMapper, Annotations, JsonView<\/p><h3>S\u00e9curit\u00e9<\/h3><p>Filtres CORS<br \/>Authentification Stateful<br \/>Authentification Stateless (oAuth2, JWT)<\/p><h3>Scalabilit\u00e9<\/h3><p>Cache<br \/>Acc\u00e8s concurrents<\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5387\" class=\"elementor-tab-title\" data-tab=\"7\" role=\"tab\" aria-controls=\"elementor-tab-content-5387\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION KONG: MANAGER, SUPERVISER ET SECURISER API AVEC KONG <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5387\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"7\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5387\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette\u00a0<strong>formation KONG<\/strong>\u00a0vous propose de traiter la th\u00e9matique de l&#8217;API Management \u00e0 travers l&#8217;exemple de KONG, de l&#8217;installation initiale jusqu&#8217;au d\u00e9veloppement de plugins sur-mesure.<\/p><p>\u00a0<\/p><p>\u00a0<\/p><p>\u00a0A l&#8217;issue de cette\u00a0<strong>formation<\/strong>, vous aurez acquis les connaissances et comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>D\u00e9couvrir l\u2019API Management avec KONG<\/li><li>Exposer ses APIs dans KONG<\/li><li>S\u00e9curiser ses APIs dans KONG<\/li><li>Savoir mettre en \u0153uvre les diff\u00e9rents cas d\u2019usage : console d\u2019administration, statistiques d\u2019usage, quotas, etc.<\/li><li>D\u00e9velopper un plugin dans KONG<\/li><li>Mettre en place KONG pour s\u00e9curiser et manager une API selon les bonnes pratiques d&#8217;architecture<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation KONG cible principalement les d\u00e9veloppeurs, les architectes, les technicals leaders et les Ops.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre ce cours KONG, il est n\u00e9cessaire d&#8217;avoir une connaissance de base du web (HTTP, HTML, URL) et d\u2019au moins un langage de programmation<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><p><strong>Introduction \u00e0 KONG<\/strong><\/p><p>Pr\u00e9sentation crois\u00e9e et attentes des participants<br \/>D\u00e9roulement de la session<\/p><p><strong>Management d&#8217;API, les grands principes<\/strong><\/p><p><strong>KONG<\/strong><\/p><p>Pr\u00e9sentation du produit<br \/>Architecture (administration, exposition)<br \/>API de r\u00e9f\u00e9rence<\/p><p><strong><em>Cas pratique<\/em><\/strong><\/p><p><em>Installation et configuration basique<\/em><\/p><p>Les typologies de plugins<\/p><p><strong>Configuration de base de KONG<\/strong><\/p><p>Les services<br \/>Le routage<br \/>Cl\u00e9 d\u2019API et gestion de quotas<\/p><p><strong><em>Cas pratique<\/em><\/strong><\/p><p><em>D\u00e9velopper votre premier plugin<\/em><\/p><ol><li>\u00a0<\/li><\/ol><p><strong>Configuration avanc\u00e9e de KONG<\/strong><\/p><p>S\u00e9curiser vos APIs<br \/>OAuth 2.0<\/p><p><strong>OpenID Connect<\/strong><\/p><p><strong><em>Cas pratique<\/em><\/strong><\/p><p><em>S\u00e9curiser vos APIs avec KONG<\/em><\/p><p>Les plugins sp\u00e9cifiques<br \/>Transformations<br \/>Monitorer vos APIs<br \/>Proxy caching<\/p><p><strong><em>Cas pratique<\/em><\/strong><\/p><p><em>Remonter les logs dans un ELK<\/em><\/p><p><strong>Cl\u00f4ture de la session de formation<\/strong><\/p><p>Retour d\u2019exp\u00e9rience<br \/>Questions\/R\u00e9ponses<br \/>\u00c9valuation de la session<\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a143fb5 elementor-widget elementor-widget-accordion\" data-id=\"a143fb5\" data-element_type=\"widget\" data-widget_type=\"accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.7.8 - 02-10-2022 *\/\n.elementor-accordion{text-align:left}.elementor-accordion .elementor-accordion-item{border:1px solid #d4d4d4}.elementor-accordion .elementor-accordion-item+.elementor-accordion-item{border-top:none}.elementor-accordion .elementor-tab-title{margin:0;padding:15px 20px;font-weight:700;line-height:1;cursor:pointer;outline:none}.elementor-accordion .elementor-tab-title .elementor-accordion-icon{display:inline-block;width:1.5em}.elementor-accordion .elementor-tab-title .elementor-accordion-icon svg{width:1em;height:1em}.elementor-accordion .elementor-tab-title .elementor-accordion-icon.elementor-accordion-icon-right{float:right;text-align:right}.elementor-accordion .elementor-tab-title .elementor-accordion-icon.elementor-accordion-icon-left{float:left;text-align:left}.elementor-accordion .elementor-tab-title .elementor-accordion-icon .elementor-accordion-icon-closed{display:block}.elementor-accordion .elementor-tab-title .elementor-accordion-icon .elementor-accordion-icon-opened,.elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-closed{display:none}.elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-opened{display:block}.elementor-accordion .elementor-tab-content{display:none;padding:15px 20px;border-top:1px solid #d4d4d4}@media (max-width:767px){.elementor-accordion .elementor-tab-title{padding:12px 15px}.elementor-accordion .elementor-tab-title .elementor-accordion-icon{width:1.2em}.elementor-accordion .elementor-tab-content{padding:7px 15px}}.e-container>.elementor-widget-accordion{width:var(--container-widget-width,100%)}<\/style>\t\t<div class=\"elementor-accordion\" role=\"tablist\">\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1691\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"tab\" aria-controls=\"elementor-tab-content-1691\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-plus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" href=\"\">FORMATION NoSQL: DECOUVERTE DES SOLUTIONS & ARCHITECTURE DE LA DONNEE<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1691\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1691\"><h2>Objectifs de la formation\u00a0<\/h2><p>Les technologies actuelles permettent de traiter des volumes de donn\u00e9es beaucoup plus importants que les syst\u00e8mes relationnels. Ils s&#8217;ouvrent aux donn\u00e9es en ligne (Transactional Processing), au Cloud, au traitement en temps r\u00e9el sur des des syst\u00e8mes virtualis\u00e9s.<br \/>Par ailleurs, la donn\u00e9e est devenue un nouveau pan de l&#8217;\u00e9conomie : exploration de la donn\u00e9e, Data Science&#8230;<br \/>Avec cette formation, vous allez d\u00e9couvrir l\u2019\u00e9cosyst\u00e8me des nouvelles architectures de la donn\u00e9e b\u00e2ties autour des solutions dites &#8220;NoSQL&#8221; (Not only SQL)\u00a0afin de comprendre leurs particularit\u00e9s et cas d\u2019usage associ\u00e9s : Couchbase, MongoDB, ElasticSearch, Cassandra&#8230;<\/p><p>Concr\u00e8tement, \u00e0 l&#8217;issue de ce stage vous aurez acquis les comp\u00e9tences et connaissances n\u00e9cessaires pour:<\/p><ul><li>Comprendre les concepts de syst\u00e8mes distribu\u00e9s et de donn\u00e9e : coh\u00e9rence, th\u00e9or\u00e8me de CAP&#8230;<\/li><li>D\u00e9couvrir l\u2019\u00e9cosyst\u00e8me de NoSQL et les caract\u00e9ristiques des solutions du march\u00e9 (ElasticSearch, Cassandra, MongoDB, Redis, Couchbase&#8230;)<\/li><li>Conna\u00eetre les cas d\u2019usage de la donn\u00e9e<\/li><li>Comprendre les plateformes de streaming de la donn\u00e9e (Storm, Spark&#8230;)<\/li><li>Observer l\u2019\u00e9cosyst\u00e8me Hadoop.<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce stage s&#8217;adresse aux DSI, Directeurs de projets, Chefs de projets, Architectes (Logiciel\/Entreprise\/Technique) et D\u00e9veloppeurs.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Il est conseill\u00e9 pour une meilleure appr\u00e9ciation du cours, d&#8217;avoir des connaissances certaines en architectures applicatives traditionnelles avec SGBDR.<\/p><h2>Contenu du cours NoSQL\u00a0<\/h2><ol><li><h4>Comprendre les bases de donn\u00e9es avant l&#8217;arriv\u00e9e de NoSQL<\/h4><\/li><\/ol><p>Forme normale des bases de donn\u00e9es relationnelles<br \/>Baisse des co\u00fbts hardware<br \/>Notion de \u00ab Transaction \u00bb<br \/>Quand syst\u00e8mes distribu\u00e9s et disponibilit\u00e9 d\u00e9passent la coh\u00e9rence (CAP)<br \/>D\u00e9couvrir le NoSQL : \u201cNot only SQL&#8221;<br \/>D\u00e9finition de \u00ab R\u00e9plication \u00bb<br \/>D\u00e9finition de \u00ab Sharding \u00bb<\/p><ol><li><h4>D\u00e9couvrir les familles de base de donn\u00e9es NoSQL<\/h4><\/li><\/ol><p>Key-Value<br \/>Document<br \/>Graph<br \/>Colonne<\/p><ol><li><h4>Le monde Hadoop<\/h4><\/li><\/ol><p>D\u00e9couvrir l\u2019offre Colonne avec Cassandra<br \/>Pr\u00e9sentation g\u00e9n\u00e9rale, architecture et cas pratique<br \/>S\u00e9ries temporelles, objets connect\u00e9s<br \/>Frameworks de traitement distribu\u00e9 et Lambda architecture<\/p><p><strong><em>Cas d\u2019application<\/em><\/strong><\/p><p><em>\u00ab Cassandra et Spark streaming \u00bb<\/em><\/p><ol><li><h4>Focus sur l\u2019offre cl\u00e9-valeur et document avec Couchbase et MongoDB<\/h4><\/li><\/ol><p>Pr\u00e9sentation g\u00e9n\u00e9rale, architecture et cas d\u2019utilisation<\/p><p><strong><em>Cas d\u2019application\u00a0<\/em><\/strong><\/p><p><em>&#8220;Couchbase et MongoDB&#8221;<\/em><\/p><ol><li><h4>Search &#8211; F\u00e9d\u00e9ration De Donn\u00e9es<\/h4><\/li><\/ol><p>Pr\u00e9sentation de l\u2019offre Elasticsearch<\/p><p><strong><em>Cas d\u2019application\u00a0<\/em><\/strong><\/p><p><em>&#8220;Elasticsearch&#8221;<\/em><\/p><ol><li><h4>Bilan et perspectives\u00a0<\/h4><\/li><\/ol><p>Feedback des participants<br \/>Recommandations et \u00e9laboration du plan d\u2019action individuel<br \/>Conclusion<br \/>Questions \/ R\u00e9ponses<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1692\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"tab\" aria-controls=\"elementor-tab-content-1692\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-plus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" href=\"\">FORMATION BASES DE DONNEES NoSQL MISE EN OEUVRE: <\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1692\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1692\"><h2 style=\"padding-left: 120px;\">Objectifs de la formation Base de donn\u00e9es noSQL\u00a0<\/h2><p>\u00a0<\/p><p>Le langage SQL et les concepts de matrice (ligne, colonne) et de relation entre les donn\u00e9es ont monopolis\u00e9 la fa\u00e7on de repr\u00e9senter les donn\u00e9es et de les manipuler pendant des d\u00e9cennies. Mais les sources de donn\u00e9es, les formats, et les volumes ont \u00e9volu\u00e9 (Informations \u00e9mises par les applications et les sites WeB, Objets Connect\u00e9s, Journaux, etc.).<br \/>Aussi il a bien fallu penser de nouvelles architectures et de nouveaux outils ou langages d\u2019extraction et de stockage pour les donn\u00e9es non structur\u00e9es. Il s\u2019agit d\u2019une rupture conceptuelle suffisamment forte par rapport au SQL (et donc aux architectures sous-jacentes) pour que l\u2019on souhaite la d\u00e9finir en montrant qu\u2019il existe une autre voie &#8220;Not Only SQL&#8221; . La nuance est importante car il ne s\u2019agit pas d\u2019abandonner le SQL pour tous les projets et cette formation pr\u00e9cisera clairement les champs d\u2019application du NoSQL.<br \/>Les bases de donn\u00e9es NoSQL renvoient donc \u00e0 des concepts et des outils sp\u00e9cifiques que ce soit au niveau des architectures, de l\u2019exploitation, du stockage, de l\u2019extraction des donn\u00e9es, et bien s\u00fbr du d\u00e9veloppement.<\/p><p>Cette formation vous propose dans un premier temps de bien comprendre en quoi les concepts et les savoir-faire sont diff\u00e9rents par rapport au monde des SGBDR classiques puis de mettre en \u0153uvre les solutions NoSQL Open Source les plus utilis\u00e9es aujourd\u2019hui comme MongoDB, Cassandra, Couchbase et le puissant outil ElasticSearch qui permet l\u2019indexation et la recherche de donn\u00e9es.<br \/>La formation est r\u00e9solument orient\u00e9e vers la pratique afin de ne pas rester uniquement conceptuelle\u00a0\u00a0<\/p><h2><strong>\u00c0 qui s&#8217;adresse cette formation ?<\/strong><\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation cible les directions informatiques et fonctionnelles, les responsables informatiques, chefs de projet, architectes, d\u00e9veloppeurs&#8230;<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre ce cours NoSQL Mise en oeuvre, il faut avoir des connaissances de base des architectures techniques et du management SI.<br \/>ainsi que des connaissances en bases de donn\u00e9es.<\/p><h2><strong>Contenu du cours Base de donn\u00e9es noSQL\u00a0<\/strong><\/h2><ol><li><h4>Des SGBD relationnels au NoSQL\u2026<\/h4><\/li><\/ol><p>Rappels synth\u00e9tiques sur la philosophique des SGBDR<br \/>G\u00e9rer les relations entre les donn\u00e9es avec de la redondance<br \/>En quoi certains formats ne sont pas adapt\u00e9s aux SGBDR ?<br \/>Qu\u2019entend-on par donn\u00e9es structur\u00e9es et donn\u00e9es non-structur\u00e9es ?<br \/>Exemples de \u00ab nouvelles \u00bb sources de donn\u00e9es (logs, IoT, sites Web, etc.)<br \/>\u00c9volutions technologiques et av\u00e8nement du NoSQL<br \/>Champs d\u2019application des bases NoSQL et des SGBDR<\/p><ol><li><h4>Diff\u00e9rentes familles NoSQL<\/h4><\/li><\/ol><p>Pourquoi cette classification ?<br \/>Les bases de donn\u00e9es cl\u00e9\/valeur<br \/>Comment g\u00e9rer l\u2019int\u00e9grit\u00e9 des donn\u00e9es ?<br \/>Les bases de donn\u00e9es orient\u00e9es document<br \/>Exemples de traitements sur des formats JSON ou XML<br \/>Comment stocker des documents binaires ?<br \/>Les bases orient\u00e9es colonne distribu\u00e9es pour le Big Data op\u00e9rationnel :<br \/>Hadoop, HBase, Cassandra\u2026<br \/>Mod\u00e9liser un r\u00e9seau avec les bases de donn\u00e9es orient\u00e9es graphe (Facebook, Twitter, etc.)<br \/>L&#8217;\u00e9cosyst\u00e8me Hadoop (diff\u00e9rences avec les SGBDR, liens avec le NoSQL)<\/p><p><em>Ateliers :<\/em><\/p><p><em>Manipulation des donn\u00e9es dans un contexte Big Data avec l\u2019outil HBase de Hadoop<br \/>Observation du format des donn\u00e9es manipul\u00e9es sur des bases en production (Cassandra, Redis, MongoDB)<\/em><\/p><ol><li><h4>Comment choisir une base NoSQL ?<\/h4><\/li><\/ol><p>Synth\u00e8se des principaux acteurs Open Source (MongoDB, Cassandra, Redis, CouchBase\u2026)<br \/>Les choix mat\u00e9riels<br \/>Comment aborder la migration ?<br \/>Les impacts sur le d\u00e9veloppement client. Comment d\u00e9velopper efficacement avec des bases NoSQL ?<br \/>Quels outils de supervision et comment les choisir ?<br \/>Quelle est la complexit\u00e9 administrative et la courbe d&#8217;apprentissage ?<br \/>Cas d&#8217;utilisation dans des entreprises existantes<br \/>Et les performances ? Quelques benchmarks ?<br \/>Qu&#8217;est-ce que NewSQL ?<\/p><p><strong><em>Ateliers :<\/em><\/strong><\/p><p><em>Cr\u00e9ation interactive d\u2019une matrice de synth\u00e8se comparant les diff\u00e9rents acteurs, leur contexte propice d\u2019utilisation, leurs points forts et leurs faiblesses en fonction de diff\u00e9rents param\u00e8tres comme les fonctionnalit\u00e9s, la recherche, le stockage, la souplesse dans la scalabilit\u00e9, les performances, la courbe d\u2019apprentissage, etc.<\/em><\/p><ol><li><h4>Rechercher les donn\u00e9es (Elasticsearch)<\/h4><\/li><\/ol><p>Liens entre Elasticsearch et les bases NoSQL<br \/>Int\u00e9gration des donn\u00e9es dans Elasticsearch<br \/>Configuration d\u2018index<br \/>Analyse et extraction de texte<br \/>Diff\u00e9rents modes de recherche (structur\u00e9e, full-texte, proximit\u00e9, etc.)<\/p><p><strong><em>Ateliers :<\/em><\/strong><\/p><p><em>Cr\u00e9ation d&#8217;index, Mise en place d&#8217;analyseurs<br \/>Utilisation de l&#8217;API de recherche<\/em><\/p><ol><li><span style=\"color: #000000;\"><strong>Mise en \u0153uvre d\u2019une base NoSQL avec MongoDB<\/strong><\/span><\/li><\/ol><p>Installation de MongoDB<br \/>Cr\u00e9ation de documents et manipulations (shell)<br \/>Importation de donn\u00e9es des SGBDR au format JSON<br \/>Indexer les donn\u00e9es<br \/>Suivre les donn\u00e9es et les index dans le temps<br \/>R\u00e9plication des donn\u00e9es<br \/>Partitionner les donn\u00e9es<br \/>Fonctionnement du moteur de stockage des donn\u00e9es<br \/>Administrer et superviser au quotidien<\/p><p><strong><em>Ateliers :<\/em><\/strong><\/p><p><em>Installation de MongoDB<br \/>Premiers pas avec le shell<br \/>Cr\u00e9ation de bases et de collections<br \/>Int\u00e9gration de donn\u00e9es au format JSON<br \/>Stockage de journaux de supervision de r\u00e9seau (Nagios)<br \/>Requ\u00eatage<br \/>Mise en place d\u2019index et observation du d\u00e9roulement des requ\u00eates<br \/>Mise en \u0153uvre de la r\u00e9plication de donn\u00e9es<br \/>Mise en \u0153uvre du partitionnement de donn\u00e9es<\/em><\/p><p style=\"text-align: left; padding-left: 80px;\">\u00a0<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1693\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"tab\" aria-controls=\"elementor-tab-content-1693\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-plus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" href=\"\">FORMATION Neo4J POUR DEVELOPPEUR<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1693\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1693\"><h2>Objectifs de la formation Neo4J pour D\u00e9veloppeur\u00a0<\/h2><p>Neo4J est une base NoSQL permettant de g\u00e9rer des donn\u00e9es fortement li\u00e9es les unes aux autres sous forme de graphe. Cette approche permet d\u2019obtenir de bien meilleures performances lors d\u2019un parcours de graphe qu\u2019avec une base de donn\u00e9es relationnelle et des jointures.<\/p><p>Cette formation est ax\u00e9e sur le d\u00e9veloppement avec Neo4J et non sur l\u2019administration.<br \/>Cependant il est n\u00e9cessaire de comprendre les concepts et le fonctionnement g\u00e9n\u00e9ral de Neo4J afin d\u2019\u00eatre pr\u00e9par\u00e9 \u00e0 l\u2019apprentissage de la programmation qui pr\u00e9sente des diff\u00e9rences nettes par rapport au\u00a0 SQL traditionnel de par le format de stockage des donn\u00e9es dans cette base NoSQL.<\/p><p>Concr\u00e8tement, \u00e0 l\u2019issue de la formation Neo4J pour D\u00e9veloppeur, vous serez capable de :<\/p><ul><li>Comprendre les sp\u00e9cificit\u00e9s d\u2019une base NoSQL par rapport \u00e0 un SGBDR<\/li><li>Savoir installer Neo4J et utiliser les outils du d\u00e9veloppeur<\/li><li>Comprendre la structure des donn\u00e9es et le vocabulaire associ\u00e9 dans Neo4J<\/li><li>Savoir manipuler des donn\u00e9es sous forme de graphe<\/li><li>Am\u00e9liorer les performances avec les index<\/li><li>Acc\u00e9der aux donn\u00e9es de Neo4J depuis des programmes tiers (C#, Java, JavaScript, Python)<\/li><li>Acc\u00e9der aux donn\u00e9es de Neo4J via l\u2019API HTTP<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation s&#8217;adresse aux D\u00e9veloppeurs Java, Python ou JavaScript..<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Afin de profiter de cette formation, il est n\u00e9cessaire que les participants aient des connaissances des principes des bases de donn\u00e9es ainsi que des langages de programmation Java, Python ou JavaScript.<\/p><h2><strong>Contenu du cours Neo4J pour D\u00e9veloppeur\u00a0<\/strong><\/h2><ol><li><h4>Introduction \u00e0 Neo4J<\/h4><\/li><\/ol><p>La domination historique des bases de donn\u00e9es relationnelles<br \/>L\u2019apparition des bases NoSQL. Les diff\u00e9rents types de bases NoSQL<br \/>Pr\u00e9sentation de Neo4J, son positionnement, ses avantages<br \/>Exemples d\u2019utilisation de Neo4J<\/p><ol><li><h4><strong>Installation de Neo4J<\/strong><\/h4><\/li><\/ol><p>Plateformes support\u00e9es et configuration requise<br \/>Installation sous Linux, lancement du serveur<br \/>Installation sous Windows, cr\u00e9ation d\u2019un service, lancement<br \/>Configuration, shell et interface web<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Installer Neo4J sur son poste de d\u00e9veloppement<\/em><\/p><ol><li><h4><strong>La structure des donn\u00e9es sous Neo4J<\/strong><\/h4><\/li><\/ol><p>Les n\u0153uds : propri\u00e9t\u00e9s et labels<br \/>Les relations : propri\u00e9t\u00e9s, types et sens<br \/>Les propri\u00e9t\u00e9s : types et tableaux<br \/>Chemins et parcours de donn\u00e9es<br \/>Sch\u00e9ma. Index et contraintes<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Exploration du sch\u00e9ma de la base d\u2019exemple<\/em><\/p><ol><li><h4>Le langage Cypher<\/h4><\/li><\/ol><p>Pr\u00e9sentation<br \/>La syntaxe : expressions, variables, param\u00e8tres, op\u00e9rateurs, motifs, tableaux\u2026<br \/>Les clauses : lectures, \u00e9critures, unions, projections\u2026<br \/>Les fonctions : math\u00e9matiques, agr\u00e9gations, scalaires, li\u00e9es aux tableaux et cha\u00eenes\u2026<br \/>Les index : cr\u00e9ation, utilisation, suppression, ajout de contraintes<br \/>Optimisation de requ\u00eates et plans d\u2019ex\u00e9cution<br \/>Importation de donn\u00e9es<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Importation de la base d\u2019exemple et ex\u00e9cution de requ\u00eates via l\u2019interface web<\/em><\/p><ol><li><h4>Acc\u00e9der \u00e0 Neo4J depuis vos propres programmes<\/h4><\/li><\/ol><p>Les drivers fournis par Neo4J<br \/>Aper\u00e7u des drivers C#, Java, JavaScript, Python<br \/>Focus sur le driver Java, JavaScript ou Python<br \/>&#8211; Connexion au serveur et authentification<br \/>&#8211; Requ\u00eates en lecture et \u00e9criture<br \/>&#8211; Transactions<br \/>Aper\u00e7u de l\u2019embarquement de Neo4J au sein d\u2019un programme Java<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Ex\u00e9cution de requ\u00eates via le driver Java, JavaScript ou Python<\/em><\/p><ol><li><h4>L\u2019API HTTP<\/h4><\/li><\/ol><p>Racine et authentification<br \/>Flux JSON<br \/>Service transactionnel<br \/>Manipulation directe de n\u0153uds<br \/>Manipulation directe de relations<br \/>Service historique (transactionnel et non transactionnel)<br \/>Recensement des propri\u00e9t\u00e9s, labels et types de relations utilis\u00e9s dans la base<br \/>Gestion de l\u2019indexation et des contraintes<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Ex\u00e9cution de requ\u00eates via l\u2019API HTTP gr\u00e2ce \u00e0 l\u2019outil Curl<\/em><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1694\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"tab\" aria-controls=\"elementor-tab-content-1694\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-plus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" href=\"\">FORMATION MongoDB POUR DEVELOPPEUR<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1694\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1694\"><h2><strong>Objectifs de la formation MongoDB d\u00e9veloppeur\u00a0<\/strong><\/h2><p>MongoDB est une base NoSQL permettant de g\u00e9rer un gros volume d\u2019informations (\u00ab humongous \u00bb = \u00e9norme), structur\u00e9e ou non, avec des performances qui en ont fait un standard reconnu du march\u00e9.<br \/>Toutes les fonctionnalit\u00e9s attendues d\u2019une base de donn\u00e9es sont pr\u00e9sentes (langage complet de requ\u00eates, index, r\u00e9plication, cluster, API diverses, etc.).<br \/><br \/>Cette formation MongoDB est ax\u00e9e sur le d\u00e9veloppement MongoDB et non l\u2019administration (r\u00e9f. BMDB). Cependant il est n\u00e9cessaire de comprendre les concepts et le fonctionnement g\u00e9n\u00e9ral de MongoDB afin d\u2019\u00eatre pr\u00e9par\u00e9 \u00e0 l\u2019apprentissage de la programmation qui pr\u00e9sente des diff\u00e9rences nettes par rapport au SQL traditionnel de par le format de stockage des donn\u00e9es dans une base NoSQL.<br \/><br \/>Concr\u00e8tement \u00e0 l\u2019issue de la formation MongoDB D\u00e9veloppement vous serez capable de :<\/p><ul><li>Comprendre les sp\u00e9cificit\u00e9s d\u2019une base NoSQL par rapport \u00e0 un SGBDR<\/li><li>Savoir installer MongoDB et utiliser les outils du d\u00e9veloppeur<\/li><li>Comprendre la structure des donn\u00e9es et le vocabulaire associ\u00e9 dans MongoDB<\/li><li>Savoir manipuler les donn\u00e9es au format JSON ou BSON<\/li><li>Savoir mod\u00e9liser les donn\u00e9es dans une base NoSQL<\/li><li>Am\u00e9liorer les performances avec les index<\/li><li>Comprendre les concepts avanc\u00e9s de stockage (r\u00e9plication, sharding, GridFS)<\/li><li>Acc\u00e9der aux donn\u00e9es de MongoDB depuis des programmes tiers (PHP, NodeJs, Ruby, Python, etc.)<\/li><li>Mettre en \u0153uvre un cycle complet en Java de manipulation des donn\u00e9es<\/li><li>Savoir optimiser vos requ\u00eates gr\u00e2ce aux solutions propos\u00e9es par MongoDB (index, sharding, logs, monitoring, etc.).<\/li><\/ul><h2><strong>\u00c0 qui s&#8217;adresse cette formation ?<\/strong><\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation s&#8217;adresse aux d\u00e9veloppeurs PHP ou Python.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Afin de profiter pleinement de cette formation il est n\u00e9cessaire que les participants aient des connaissances des principes des bases de donn\u00e9es, de la ligne de commande ainsi que des connaissances du langage Java (pour la partie Java seulement).<\/p><h2><strong>Contenu du cours MongoDB d\u00e9veloppeur\u00a0<\/strong><\/h2><ol><li><h4><strong>Philosophie de MongoDB<\/strong><\/h4><\/li><\/ol><p>La domination historique des bases de donn\u00e9es relationnelles<br \/>L\u2019apparition des bases NoSQL. Les diff\u00e9rents types de bases NoSQL<br \/>Pr\u00e9sentation de MongoDB, son positionnement, ses avantages<br \/>Exemples d\u2019utilisation de MongoDB<\/p><ol><li><h4><strong>Installation<\/strong><\/h4><\/li><\/ol><p>Plateformes support\u00e9es<br \/>Installation sous Linux, lancement du serveur<br \/>Installation sous Windows, configuration, cr\u00e9ation d\u2019un service, lancement<br \/>Pr\u00e9sentation des outils MongoDB et de l\u2019invite de commande (shell)<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Installer MongoDB sur son poste de d\u00e9veloppement, test de connexion<\/em><\/p><ol><li><h4>La structure des donn\u00e9es sous MongoDB<\/h4><\/li><\/ol><p>La structure : base de donn\u00e9es, collections, documents, espace de noms\u2026<br \/>Les formats JSON et BSON. Types de donn\u00e9es \u00e9l\u00e9mentaires et sp\u00e9cial<br \/>La mod\u00e9lisation de donn\u00e9es. Les diff\u00e9rents sc\u00e9narios de sch\u00e9ma<\/p><p><strong><em>Travaux Pratiques :<\/em><\/strong><\/p><p><em>Premi\u00e8re exploration du shell<br \/>Mod\u00e9lisation d\u2019un cas pratique de donn\u00e9es<\/em><\/p><ol><li><h4>La manipulation de donn\u00e9es via le shell MongoDB<\/h4><\/li><\/ol><p>Insertion d\u2019un ou plusieurs documents<br \/>R\u00e9cup\u00e9rer des documents, filtres de recherches (find(), findOne(), $where, $in, $not, $gt, $lt, $ne, etc.) Projections. Tris. Curseurs<br \/>Mettre \u00e0 jour ou remplacer un ou plusieurs documents ($set, $inc, tableau\u2026)<br \/>Supprimer un ou plusieurs documents<br \/>La validation de documents<\/p><p><strong><em>Travaux Pratiques :<\/em><\/strong><\/p><p><em>Manipulation de donn\u00e9es via le shell<br \/>Mise en place de r\u00e8gles de validation<\/em><\/p><ol><li><h4><strong>Le stockage de fichiers lourds avec GridFS<\/strong><\/h4><\/li><\/ol><p>Pr\u00e9sentation : Quand l\u2019utiliser ?<br \/>Collections et pr\u00e9fixes<br \/>L\u2019utilitaire \u00ab mongofiles \u00bb<\/p><p><strong><em>Travaux Pratiques :<\/em><\/strong><\/p><p><em>Stockage de fichier via l\u2019utilitaire \u00ab mongofiles \u00bb<\/em><\/p><ol><li><h4><strong>Acc\u00e9der \u00e0 MongoDB depuis vos propres programmes (API)<\/strong><\/h4><\/li><\/ol><p>Les drivers fournis par MongoDB<br \/>Aper\u00e7u des drivers PHP, NodeJS, Ruby, Python<br \/>Focus sur le driver Java :<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; Connexion aux bases (isol\u00e9es, ReplicaSet, clusters de shard)<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; Authentification<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; S\u00e9lection de la base et de la collection<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; Insertion, r\u00e9cup\u00e9ration, mise \u00e0 jour et suppression de documents<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; \u00c9critures par lot<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211; GridFS<\/p><p><strong><em>Travaux Pratiques :<\/em><\/strong><\/p><p><em>Connexion, manipulation des documents, cr\u00e9ation d\u2019index, GridFS depuis un programme Java<\/em><\/p><ol><li><h4><strong>Performance des requ\u00eates MongoDB<\/strong><\/h4><\/li><\/ol><p>Fonctionnement d\u2019une transaction dans MongoDB (atomicit\u00e9, verrous)<br \/>Les \u00e9critures par lot<br \/>L\u2019indexation des donn\u00e9es (types, propri\u00e9t\u00e9s d\u2019index)<br \/>Couverture de requ\u00eate et intersection d\u2019index<br \/>Strat\u00e9gies d\u2019indexation et explication de requ\u00eates<br \/>La pr\u00e9f\u00e9rence de lecture et la confirmation des \u00e9critures dans un ReplicaSet<br \/>Le sharding<br \/>Le profiling des requ\u00eates lentes<br \/>Les outils de monitoring<br \/>Retrouver les infos pertinentes dans les logs<\/p><p><strong><em>Travaux Pratiques :<\/em><\/strong><\/p><p><em>Observation du comportement de la base lors des manipulations pr\u00e9c\u00e9dentes (ex\u00e9cution de requ\u00eates lentes, diagnostic, tuning)<br \/>Mise en place d\u2019index. Analyse du d\u00e9roulement des requ\u00eates et optimisation<\/em><\/p><p>\u00a0<\/p><p><strong>Travaux Pratiques<\/strong><\/p><p>Les travaux pratiques repr\u00e9sentent plus de 50% du temps de formation.<br \/>La machine virtuelle sur laquelle vous allez mettre en \u0153uvre les diff\u00e9rents exercices vous est offerte avec son media de stockage afin que vous puissiez prolonger vos tests de d\u00e9veloppement sur un jeu de donn\u00e9es et un environnement qui vous seront devenus familiers.<\/p><p>\u00a0<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1695\" class=\"elementor-tab-title\" data-tab=\"5\" role=\"tab\" aria-controls=\"elementor-tab-content-1695\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-plus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" href=\"\">FORMATION ADMINISTRATION MongoDB <\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1695\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1695\"><h2><strong>Objectifs de la formation Administration MongoDB\u00a0<\/strong><\/h2><p>MongoDB est une solution Open Source de gestion de bases de donn\u00e9es NoSQL orient\u00e9e document, capable de s\u2019installer sur de simples serveurs comme dans un contexte d\u2019architecture complexe r\u00e9partie.<br \/>Les objets manipul\u00e9s par une base MongoDB changent de nature (collections, documents, information au format JSON, etc.) et bien s\u00fbr les traitements associ\u00e9s \u00e9galement.<br \/><br \/>Concr\u00e8tement, \u00e0 l\u2019issue de cette formation d\u2019Administration MongoDB vous serez capable de :<\/p><ul><li>Comprendre les sp\u00e9cificit\u00e9s de l\u2019administration et le vocabulaire d\u2019une base MongoDB<\/li><li>Installer MongoDB<\/li><li>Comprendre la structure des donn\u00e9es dans une base MongoDB<\/li><li>Manipuler les donn\u00e9es de la base (CRUD)<\/li><li>Interfacer MongoDB avec des programmes tiers (Javascript, Python, etc.)<\/li><li>Savoir dialoguer avec Mongo en ligne de commande et via des scripts<\/li><li>Bien comprendre le m\u00e9canisme d\u2019indexation des donn\u00e9es<\/li><li>Mettre en \u0153uvre la r\u00e9plication de donn\u00e9es<\/li><li>Mettre en \u0153uvre le partitionnement des donn\u00e9es sur plusieurs serveurs (sharding)<\/li><li>Superviser le bon fonctionnement de MongoDB<\/li><li>Effectuer des sauvegardes et des restaurations<\/li><li>S\u00e9curiser l\u2019acc\u00e8s aux donn\u00e9es de MongoDB.<\/li><\/ul><h2><strong>\u00c0 qui s&#8217;adresse cette formation ?<\/strong><\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours s&#8217;adresse aux chefs de projet, gestionnaires de bases de donn\u00e9es.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre ce cours dans de bonnes conditions, il vous faut conna\u00eetre les principes des bases de donn\u00e9es, l\u2019administration en ligne de commande et, si possible, avoir des bases du langage JavaScript.<\/p><h2><strong>Contenu du cours Administration MongoDB\u00a0<\/strong><\/h2><ol><li><h4><strong>Introduction \u00e0 MongoDB<\/strong><\/h4><\/li><\/ol><p>La domination historique des bases de donn\u00e9es relationnelles<br \/>L\u2019apparition des bases NoSQL. Les diff\u00e9rents types de bases NoSQL<br \/>Pr\u00e9sentation de MongoDB, son positionnement, ses avantages<br \/>La structure de donn\u00e9es au sein de MongoDB : base de donn\u00e9es, collections, documents\u2026<br \/>Les formats JSON et BSON. Types de donn\u00e9es \u00e9l\u00e9mentaires et sp\u00e9ciaux<br \/>Exemples d\u2019utilisation de MongoDB<\/p><ol><li><h4><strong>Installation de MongoDB<\/strong><\/h4><\/li><\/ol><p>Plateformes support\u00e9es<br \/>Installations sous les diff\u00e9rentes distributions de Linux, lancement<br \/>Installation sous Windows, configuration, cr\u00e9ation de services, lancement<br \/>Pr\u00e9sentation des outils MongoDB<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Installation de MongoDB, lancement du serveur, test de connexion<\/em><\/p><ol><li><h4><strong>L\u2019invite de commande (shell) Mongo<\/strong><\/h4><\/li><\/ol><p>Pr\u00e9sentation et lancement<br \/>Premi\u00e8res commandes et pages d\u2019aide<br \/>Script d\u2019initialisation et configuration de l\u2019invite de commande<br \/>Bases de donn\u00e9es, collections, documents, namespaces : gestion et r\u00e8gles de nommage<br \/>Les instructions CRUD : insertion, lecture, mise \u00e0 jour, suppression<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Cr\u00e9er et manipuler des documents via le shell<\/em><\/p><ol><li><h4>\u00c9crire des scripts et des programmes pour MongoDB<\/h4><\/li><\/ol><p>Scripts JavaScript externes : diff\u00e9rences avec le shell et lancement<br \/>Stocker des fonctions JavaScript sur le serveur et appeler celles-ci<br \/>Utiliser les drivers pour manipuler les donn\u00e9es depuis des programmes externes<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Manipuler des donn\u00e9es via des scripts et via le driver Python<\/em><\/p><ol><li><h4><strong>L\u2019indexation des donn\u00e9es<\/strong><\/h4><\/li><\/ol><p>Principes. Types et propri\u00e9t\u00e9s d\u2019index<br \/>Couverture de requ\u00eate et intersection d\u2019index<br \/>Strat\u00e9gies d\u2019indexation et explication de requ\u00eates<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Mise en place d\u2019index. Observation du d\u00e9roulement des requ\u00eates<\/em><\/p><ol><li><h4><strong>La r\u00e9plication de donn\u00e9es<\/strong><\/h4><\/li><\/ol><p>Pr\u00e9sentation et int\u00e9r\u00eat<br \/>N\u0153uds ma\u00eetre et secondaires. R\u00e9plication des donn\u00e9es et bascule automatique en cas d\u2019incident<br \/>N\u0153uds secondaires : priorit\u00e9, n\u0153uds cach\u00e9s et diff\u00e9r\u00e9s<br \/>Proc\u00e9dure de mise en place de la r\u00e9plication<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Mise en \u0153uvre de la r\u00e9plication de donn\u00e9es<\/em><\/p><ol><li><h4><strong>Le partitionnement de donn\u00e9es (sharding)<\/strong><\/h4><\/li><\/ol><p>Pr\u00e9sentation et int\u00e9r\u00eat<br \/>Le sharding avec MongoDB<br \/>R\u00e9partition automatique ou manuelle des donn\u00e9es<br \/>Proc\u00e9dure de mise en place du sharding<br \/>Le cas GridFS : stockage de fichiers lourds<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Mise en \u0153uvre du partitionnement de donn\u00e9es<\/em><\/p><ol><li><h4><strong>Les moteurs de stockage des donn\u00e9es<\/strong><\/h4><\/li><\/ol><p>Le moteur WiredTiger : concurrence, journalisation, compression, usage m\u00e9moire\u2026<br \/>Le moteur MMAPv1 : journalisation, usage disque, usage m\u00e9moire&#8230;<br \/>Le moteur In-Memory : concurrence, usage m\u00e9moire, strat\u00e9gie de d\u00e9ploiement\u2026<br \/>Les moteurs de stockage tiers : RocksDB\u2026<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Param\u00e9trage du moteur de stockage par serveur et par collection. Visualisation des impacts<\/em><\/p><ol><li><h4><strong>S\u00e9curiser son installation de MongoDB<\/strong><\/h4><\/li><\/ol><p>Cheklist de s\u00e9curit\u00e9<br \/>L\u2019authentification et les diff\u00e9rents m\u00e9canismes utilisables<br \/>Utilisateurs, r\u00f4les et privil\u00e8ges<br \/>Authentification entre n\u0153uds<br \/>Les fonctionnalit\u00e9s entreprise : cryptage, audit<\/p><p><strong><em>Travaux Pratiques :\u00a0<\/em><\/strong><\/p><p><em>Mise en \u0153uvre de l\u2019authentification sur un cluster de shard<\/em><\/p><ol><li><h4><strong>Administrer et superviser MongoDB<\/strong><\/h4><\/li><\/ol><p>Importer \/ exporter des donn\u00e9es (mongoexport, mongoimport)<br \/>Sauvegarder \/ restaurer : les diff\u00e9rentes strat\u00e9gies (mongodump, mongorestore, snapshot filesystem)<br \/>Superviser l\u2019ex\u00e9cution et int\u00e9grer des outils de supervision externes (ex : Nagios)<br \/>Les outils graphiques d\u2019administration<br \/>G\u00e9rer la journalisation<\/p><p><em>Travaux Pratiques :\u00a0<\/em><\/p><p><em>Importer \/ exporter des donn\u00e9es. Dump de donn\u00e9es, Superviser une base<\/em><\/p><p><span style=\"text-decoration: underline;\">Travaux Pratiques<\/span><\/p><p>De nombreux travaux pratiques \u00e0 chaque \u00e9tape facilitent l&#8217;assimimilation des notions enseign\u00e9es.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1696\" class=\"elementor-tab-title\" data-tab=\"6\" role=\"tab\" aria-controls=\"elementor-tab-content-1696\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-plus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" href=\"\">FORMATION MongoDB OPTIMISATION<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1696\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"6\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1696\"><h2>Objectifs de la formation MongoDB Optimisation\u00a0<\/h2><p>Reconnue comme l&#8217;une des bases \u00ab NoSQL \u00bb les plus utilis\u00e9es aujourd\u2019hui, MongoDB permet de stocker de grands volumes de donn\u00e9es et de les interroger de mani\u00e8re \u00e0 la fois simple et efficace. Accessible par le plus grand nombre, il n&#8217;est pas n\u00e9cessaire de ma\u00eetriser un langage suppl\u00e9mentaire comme c\u2019est le cas avec les bases de donn\u00e9es relationnelles. Il existe en effet un grand nombre de pilotes offrant une API simple et intuitive.<br \/>Cette formation est organis\u00e9e sur deux axes : d\u2019une part savoir d\u00e9tecter les causes de sous performance et y rem\u00e9dier, d\u2019autre part faire face \u00e0 une mont\u00e9e en charge par r\u00e9partition de charge.<\/p><p>A l&#8217;issue de cette formation MongoDB, vous aurez les comp\u00e9tences et connaissances pour savoir mettre en place une architecture performante avec MongoDB<\/p><h2><strong>\u00c0 qui s&#8217;adresse cette formation ?<\/strong><\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation MongoDB s&#8217;adresse aux administrateurs de base de donn\u00e9es.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour r\u00e9ussir cette formation MongoDB, il est demand\u00e9 de Ma\u00eetriser l&#8217;administration de MongoDB, en particulier le shell mongo et la r\u00e9plication.<\/p><h2><strong>Contenu du cours MongoDB Optimisation\u00a0<\/strong><\/h2><ol><li><h4><strong>Introduction et Rappel (Rapide)<\/strong><\/h4><\/li><\/ol><p>Pr\u00e9sentation<br \/>Pourquoi MongoDB ?<br \/>MongoDB en comparaison des bases relationnelles<\/p><ol><li><h4><strong>Optimisation de MongoDB<\/strong><\/h4><\/li><\/ol><p>Les outils mongotop et mongostat<br \/>Statistiques et profilage : les collections sp\u00e9cialis\u00e9es<br \/>Bonnes pratiques : param\u00e9trages disque, syst\u00e8me de fichiers, m\u00e9moire, swap<\/p><ol><li><h4><strong>Indexation dans MongoDB<\/strong><\/h4><\/li><\/ol><p>Principes et structures g\u00e9n\u00e9riques des index<br \/>Les diff\u00e9rents types d&#8217;index et leur restrictions d&#8217;utilisation : simple, composite, multi-cl\u00e9s, unique,creux<br \/>R\u00e8gles d&#8217;indexation<br \/>Fonctionnement de l&#8217;optimiseur<br \/>La commande explain et les hint<\/p><ol><li><h4><strong>Sharding (MongoDB)<\/strong><\/h4><\/li><\/ol><p>Performance et haute disponibilit\u00e9 : sharding et r\u00e9plication<br \/>Architecture : noeud de configuration, noeud mongod, noeud mongos<br \/>Concepts et impl\u00e9mentation : auto-sharding, replica set, sharding key, chunks<br \/>Installation d&#8217;un cluster \u00e0 partir d&#8217;une architecture existante<br \/>Choisir la cl\u00e9 de sharding<br \/>Contr\u00f4ler la r\u00e9partition des donn\u00e9es<br \/>Supervision d&#8217;un cluster<br \/>Administration : ajouter un shard, d\u00e9placer manuellement les donn\u00e9es<br \/>Probl\u00e8mes courants et bonnes pratiques<\/p><h4><strong>Travaux Pratiques<\/strong><\/h4><p>Les chapitres \u00abIndexation\u00bb et \u00abSharding\u00bb se concluent chacun par des travaux pratiques utilisant le savoir acquis lors du chapitre \u00abOptimisation\u00bb.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1697\" class=\"elementor-tab-title\" data-tab=\"7\" role=\"tab\" aria-controls=\"elementor-tab-content-1697\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-plus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" href=\"\">FORMATION REDIS PRISE EN MAIN<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1697\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"7\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1697\"><h2>Objectifs de la formation Redis\u00a0<\/h2><p>B\u00e9n\u00e9ficiez des avantages d&#8217;une base de donn\u00e9es m\u00e9moire pour booster la performance de vos applications hautement transactionnelles. Cette formation vous permettra d&#8217;appr\u00e9hender les contraintes techniques de l&#8217;utilisation d&#8217;une base de donn\u00e9es non relationnelle, et de mettre en \u0153uvre sur une premi\u00e8re application les principes de Redis. Cette formation Redis vous donnera les connaissances et l&#8217;exp\u00e9rimentation pratique pour mettre en oeuvre Redis et l\u2019exploiter au quotidien.<\/p><h2><strong>\u00c0 qui s&#8217;adresse cette formation ?<\/strong><\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours s&#8217;adresse principalement aux d\u00e9veloppeurs.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Bonnes connaissances en programmation.<\/p><h2><strong>Contenu du cours Redis\u00a0<\/strong><\/h2><ol><li><h4><strong>Introduction \u00e0 Redis<\/strong><\/h4><\/li><\/ol><p>Redis, cache en m\u00e9moire<br \/>Positionnement vis \u00e0 vis des autres moteurs NoSql<br \/>Quand utiliser Redis, quand ne pas l\u2019utiliser<br \/>Les grandes r\u00e9f\u00e9rences de Redis<\/p><ol><li><h4><strong>Fonctionnalit\u00e9s de Redis<\/strong><\/h4><\/li><\/ol><p>Protocole de communication<br \/>Format des donn\u00e9es<br \/>Commandes essentielles<br \/>Network latency et groupement de commandes<br \/>Gestion des transactionns et op\u00e9rations atomiques<br \/>Server-side scripting<br \/>Organisation des donn\u00e9es<br \/>Probl\u00e9matique du requ\u00e9tage complexe<\/p><ol><li><h4><strong>D\u00e9velopper avec Redis<\/strong><\/h4><\/li><\/ol><p>Encoding<br \/>Clients permettant de d\u00e9velopper avec Redis<br \/>Utiliser Redis en cache d\u2019un RDBMS classique<\/p><ol><li><h4><strong>Administrer Redis<\/strong><\/h4><\/li><\/ol><p>Persistance des bases sur disque<br \/>R\u00e9plication des bases<br \/>Monitoring de Redis<br \/>Sauvegarde \/ restauration<br \/>Gestion de l\u2019authentification<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1698\" class=\"elementor-tab-title\" data-tab=\"8\" role=\"tab\" aria-controls=\"elementor-tab-content-1698\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-plus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" href=\"\">FORMATION CASSANDRA<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1698\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"8\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1698\"><h2>Description de la formation Cassandra\u00a0<\/h2><p>Cassandra est une base de donn\u00e9es distribu\u00e9e NoSQL connue pour ses capacit\u00e9s \u00e0 savoir g\u00e9rer sans d\u00e9faillance de tr\u00e8s grosses quantit\u00e9s de donn\u00e9es structur\u00e9es. Cette formation vous donnera toutes les connaissances n\u00e9cessaires et l&#8217;exp\u00e9rimentation pratique pour mettre en \u0153uvre et administrer Apache Cassandra au quotidien.<\/p><p>Cette formation vous apporte les bases pour mettre en \u0153uvre et administrer Apache Cassandra au quotidien.<\/p><h2>Objectifs\u00a0<\/h2><p><strong><u>Objectifs Op\u00e9rationnels:<\/u><\/strong><\/p><p>Administrer Apache Cassandra au quotidien.<\/p><p><strong><u>Objectifs P\u00e9dagogiques:<\/u><\/strong><\/p><ul><li>Maitriser les fonctionnalit\u00e9s principales de Cassandra<\/li><li>Savoir installer et configurer Cassandra<\/li><li>Connaitre la notion de grappe au sein de la base de donn\u00e9es<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation s&#8217;adresse aux Chefs de projet, gestionnaires de bases de donn\u00e9es, et administrateurs qui souhaitent utiliser Apache Cassandra.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Connaissances g\u00e9n\u00e9rales sur les bases de donn\u00e9es.<\/p><h2><strong>Contenu du cours Cassandra\u00a0<\/strong><\/h2><ol><li><h4><strong>Cassandra les fonctionnalit\u00e9s principales<\/strong><\/h4><\/li><\/ol><p>Pr\u00e9sentation de l&#8217;historique et des fonctionnalit\u00e9s de Cassandra.<br \/>Introduction \u00e0 la licence.<br \/>Etude du format des donn\u00e9es et &#8220;key-value&#8221;.<br \/>Traitement de volumes importants et haute disponibilit\u00e9.<br \/>Pr\u00e9sentation d&#8217;un syst\u00e8me r\u00e9parti de base de donn\u00e9es.<\/p><ol><li><h4><strong>Installation et configuration de Cassandra<\/strong><\/h4><\/li><\/ol><p>Rappel sur les pr\u00e9requis.<br \/>Pr\u00e9sentation des plate-formes support\u00e9es.<br \/>Etude du fichier de configuration: conf\/cassandra.yaml .<br \/>R\u00e9pertoire de travail, de stockage des donn\u00e9es, gestion de la m\u00e9moire.<br \/>D\u00e9marrage d&#8217;un noeud et test de l&#8217;interface cliente cqlsh.<\/p><ol><li><h4><strong>Le CQL<\/strong><\/h4><\/li><\/ol><p>Maitriser les commandes de base: connexion au syst\u00e8me de base de donn\u00e9es, cr\u00e9ation de colonnes, insertion, modification recherche.<br \/>Le CQL: Cassandra Query Language.<br \/>Ex\u00e9cution de scripts.<br \/>Comment \u00e9crire des requ\u00eates?<br \/>Etude des diff\u00e9rentes approches.<\/p><ol><li><h4><strong>Gestion de la grappe<\/strong><\/h4><\/li><\/ol><p>Initiation au principe de base.<br \/>Pr\u00e9paration du premier noeud : adresse d&#8217;\u00e9coute.<br \/>Configuration de nouveaux noeuds.<br \/>Notion de bootstrapping et de token.<br \/>Param\u00e8tres listen_address et rpc_address.<br \/>R\u00e9plication : topologie du r\u00e9seau et EndpointSnitch.<br \/>Strat\u00e9gie de r\u00e9plication.<br \/>Ajout de noeuds, suppression.<br \/>Cassandra dans un cloud.<br \/>Mise en oeuvre avec OpenStack.<\/p><ol><li><h4><strong>Supervision<\/strong><\/h4><\/li><\/ol><p>OpsCenter: installation, lancement.<br \/>Utilisation de base.<br \/>Supervision avec nodetool cfstats, ou export JMX vers des outils de supervision comme Nagios.<\/p><ol><li><h4>Exploitation de Cassandra<\/h4><\/li><\/ol><p>Maitriser les notions de sauvegarde.<br \/>Import\/export au format JSON.<\/p><ol><li><h4><strong>Support Hadoop<\/strong><\/h4><\/li><\/ol><p>Pr\u00e9sentation du principe de MapReduce.<br \/>Impl\u00e9mentation Hadoop.<br \/>Maitriser la mise en oeuvre depuis Cassandra.<\/p><ol><li><h4><strong>Support Spark<\/strong><\/h4><\/li><\/ol><p>Description rapide de l&#8217;architecture spark.<br \/>Mise en oeuvre depuis Cassandra.<br \/>Execution de travaux Spark s&#8217;appuyant sur une grappe Cassandra.<\/p><p><strong>Travaux Pratiques<\/strong><\/p><p>De nombreux travaux partiques sont propos\u00e9s tout au long de la formation<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-accordion-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-1699\" class=\"elementor-tab-title\" data-tab=\"9\" role=\"tab\" aria-controls=\"elementor-tab-content-1699\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon elementor-accordion-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-closed\"><i class=\"fas fa-plus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-accordion-icon-opened\"><i class=\"fas fa-minus\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-accordion-title\" href=\"\">FORMATION CASSANDRA AVANCE<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1699\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"9\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1699\"><h2><strong>Description de la formation Cassandra avanc\u00e9\u00a0<\/strong><\/h2><p><strong>Cassandra<\/strong>\u00a0est une base de donn\u00e9es distribu\u00e9e NoSQL connue pour ses capacit\u00e9s \u00e0 savoir g\u00e9rer sans d\u00e9faillance de tr\u00e8s grosses quantit\u00e9s de donn\u00e9es structur\u00e9es.<\/p><p>Cette formation explore les fonctionnalit\u00e9s avanc\u00e9es de Cassandra pour vous permettre d&#8217;en approfondir votre niveau de ma\u00eetrise : mise en place d&#8217;un cluster, communication multi-DC, tuning des performances, s\u00e9curisation&#8230;<\/p><h2><strong>Objectifs\u00a0<\/strong><\/h2><p><strong><u>Objectifs Op\u00e9rationnels<\/u><\/strong><strong>\u00a0:<\/strong><\/p><p>Ma\u00eetriser les aspects avanc\u00e9s de la base de donn\u00e9es NoSQL Cassandra.<\/p><p><strong><u>Objectifs P\u00e9dagogiques:<\/u><\/strong><\/p><ul><li>Savoir mettre en place un cluster Cassandra<\/li><li>Conna\u00eetre le cycle de vie d&#8217;une lecture\/\u00e9criture sur Cassandra<\/li><li>Ma\u00eetriser les notions de backup, de restauration et de mouvement des donn\u00e9es<\/li><li>Savoir comment superviser et d\u00e9panner Cassandra<\/li><li>Conna\u00eetre l&#8217;aspect s\u00e9curit\u00e9 de Cassandra<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours Cassandra avanc\u00e9 s&#8217;adresse aux chefs de projet, gestionnaires de bases de donn\u00e9es et administrateurs qui souhaitent ma\u00eetriser les aspects avanc\u00e9s d&#8217;Apache Cassandra.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre cette formation Cassandra avanc\u00e9 dans de bonnes conditions, il est conseill\u00e9 d&#8217;avoir suivi la\u00a0<a href=\"https:\/\/www.plb.fr\/formation\/oracle\/formation-cassandra,5-19148.php\">formation Cassandra (r\u00e9f.OCAS)<\/a>\u00a0ou d&#8217;en poss\u00e9der les connaissances \u00e9quivalentes.<\/p><h2><strong>Contenu du cours Cassandra avanc\u00e9\u00a0<\/strong><\/h2><ol><li><h4><strong>Rappel de l\u2019architecture Cassandra<\/strong><\/h4><\/li><\/ol><p>Cluster \/ Node \/ Datacenter \/ Rack<br \/>R\u00e9plication \/ Protocole Gossip<br \/>Snitches<br \/>Noeuds Seeds<br \/>Memtables, SSTables et CommitLogs<br \/>Niveau de consistance<br \/>Hinted Handoff<\/p><ol><li><h4><strong>Query by Design<\/strong><\/h4><\/li><\/ol><p>Data-Driven versus Query-Driver<br \/>Liens entre tables et int\u00e9grit\u00e9 r\u00e9f\u00e9rentielle<br \/>Duplication de donn\u00e9es<br \/>\u00c9tapes de conception d\u2019un keyspace<\/p><ol><li><h4>Mise en place d\u2019un cluster Cassandra<\/h4><\/li><\/ol><p>Choix de m\u00e9moire, CPU<br \/>Contraintes r\u00e9seau<br \/>Choix du stockage<br \/>Configuration du cluster (Datacenter, Rack et autres)<br \/>Gestion du cycle de vie du cluster<\/p><ol><li><h4><strong>Cycle de vie d\u2019une lecture\/\u00e9criture sur Cassandra<\/strong><\/h4><\/li><\/ol><p>M\u00e9moire Off-Heap \/ JVM-Heap et disque<br \/>Comprendre le flush, memtable et commitLog<br \/>Chemin d\u2019\u00e9criture des donn\u00e9es<br \/>Chemin de lecture des donn\u00e9es<br \/>Le Read-repair, Merkel Tree et Anti-Entropy<\/p><ol><li><h4><strong>Communication multi-DC sur Cassandra<\/strong><\/h4><\/li><\/ol><p>Raisons de choix d\u2019une architecture multi-DC<br \/>Communication synchrone vs asynchrone entre DCs<br \/>Gestion de la d\u00e9faillance d\u2019un DC<br \/>Utilisation des Racks au lieu de Datacenter<\/p><ol><li><h4><strong>Backup, restauration et mouvement des donn\u00e9es<\/strong><\/h4><\/li><\/ol><p>Backup incr\u00e9mental et full<br \/>Restauration des donn\u00e9es \u00e0 partir d\u2019un Snapshot<br \/>Restauration de donn\u00e9es avec sstableLoader<br \/>Import\/Export des donn\u00e9es en masse<\/p><ol><li><h4><strong>Supervision et troubleshooting<\/strong><\/h4><\/li><\/ol><p>Gestion des n\u0153uds d\u2019un cluster<br \/>Monitoring avec l\u2019outil nodetool<br \/>Configuration et exploitation des logs<\/p><ol><li><h4><strong>Tuning des performances de Cassandra<\/strong><\/h4><\/li><\/ol><p>Utilisation de Tracing pour analyser les performances<br \/>Tracer les lectures et les \u00e9critures<br \/>Tuning des Bloom Filtres<br \/>Cache de donn\u00e9es<br \/>Param\u00e8tres globaux de gestion de cache<br \/>Tests de mont\u00e9e en charge avec cassandra-stress<\/p><ol><li><h4><strong>Strat\u00e9gies de compaction<\/strong><\/h4><\/li><\/ol><p>SizeTieredCompactionStrategy<br \/>LeveledCompactionStrategy<br \/>TimeWindowCompactionStrategy<br \/>Tuning de la JVM<\/p><ol><li><h4><strong>S\u00e9curisation de Cassandra<\/strong><\/h4><\/li><\/ol><p>Configuration Authentification<br \/>Gestion des r\u00f4les<br \/>Cryptage de la communication dans Cassandra avec SSL<br \/>Activation du cryptage inter-n\u0153uds<br \/>Activation du chiffrement client<\/p><h2>\u00a0<\/h2><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Les API sont des m\u00e9canismes qui permettent \u00e0 deux composants logiciels de communiquer entre eux \u00e0 l&#8217;aide d&#8217;un ensemble de d\u00e9finitions et de protocoles. Par exemple,\u00a0le syst\u00e8me logiciel du bureau m\u00e9t\u00e9orologique contient les donn\u00e9es m\u00e9t\u00e9orologiques quotidiennes. En\u00a0informatique, une\u00a0interface de programmation d\u2019application\u00a0ou\u00a0interface de programmation applicative, souvent d\u00e9sign\u00e9e par le terme\u00a0API\u00a0pour \u00ab\u00a0Application Programming Interface\u00a0\u00bb, est un ensemble [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12845","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/pages\/12845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/comments?post=12845"}],"version-history":[{"count":11,"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/pages\/12845\/revisions"}],"predecessor-version":[{"id":13527,"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/pages\/12845\/revisions\/13527"}],"wp:attachment":[{"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/media?parent=12845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}