Cette Refcard est un condensé de bonnes pratiques qui s'adresse autant aux consommateurs qu'aux développeurs d'API GraphQL.
Elle aborde notamment la documentation, le versioning, le code first, le monitoring, la découvrabilité, la sécurité et le design de schéma.
Les sites web sont devenus de véritables applications, grâce notamment à l'adoption du model SPA (single page application). Dès lors, il semble logique qu'elles puissent lire et modifier les données de façon plus intuitive et de définir leur propre schéma de données indépendamment du back-end. Il serait élégant de résoudre cette problématique via une solution souple, pérenne et indépendante d'un framework. Heureusement, Facebook et Netflix ont open-sourcé leur réponse respective : GraphQL et FalcorJS. Nous aborderons en détail le fonctionnement de ces librairies et vous donnerons les clés pour faire un choix éclairé
Les sites web sont devenus de véritables applications, grâce notamment à l'adoption du model SPA (single page application). Dès lors, il semble logique qu'elles puissent lire et modifier les données de façon plus intuitive et de définir leur propre schéma de données indépendamment du back-end. Il serait élégant de résoudre cette problématique via une solution souple, pérenne et indépendante d'un framework. Heureusement, Facebook et Netflix ont open-sourcé leur réponse respective : GraphQL et FalcorJS. Nous aborderons en détail le fonctionnement de ces librairies et vous donnerons les clés pour faire un choix éclairé
Présentation de ElasticSearch / Digital apéro du 12/11/2014Silicon Comté
ElasticSearch est un moteur de recherche open source reposant sur une interface JSON, pouvant fonctionner en mode distribué et interrogeable facilement via son API REST. Cédric Nirousset, Développeur web indépendant, vous fera découvrir les intérêts de l’utiliser dans vos applications à travers quelques exemples pratiques.
A propos de l’intervenant : Cédric Nirousset, diplomé dut DUT SRC Montébliard en 2006 et de l’UTBM en Informatique en 2010, il est maintenant développeur web indépendant à Besançon, travaillant pour des entreprises de toutes tailles et tous horizons. Suivez Cédric sur Twitter @Nyr0
ÉVolution d'un système de publication de données techniques automobiles, modé...SemWebPro
Début 2010, pour répondre à une directive européenne, Renault mettait en oper sa première application basée sur les techniques du semantic web : un système de publication des documents et données de sa documentation technique après-vente, en charge d’alimenter un site web à destination des réparateurs indépendants. Aujourd'hui, on veut faire évoluer la solution, pour prendre en compte de nouvelles sources de données, et élargir son audience. La solution initiale peut-elle évoluer facilement ? est-elle scalable et supportera-t-elle un important surcroit de charge ? Certains parlent d’un échec du Semantic Web : les choix techniques faits se sont-ils révélés pertinents ? Que ferait-on différemment aujourd'hui ? Cinq années ont passé : de nouvelles techniques sont apparues (JSON-LD, par exemple), d'autres ont mûri (Solr), JSON et javascript sont devenus incontournables. Ce qui faisait défaut est-il maintenant disponible ? Par exemple, comment intégrer les formulaires (ou les templates d’URI) dans une API basée sur les Linked Data ? (alors que le web repose à la fois sur les liens hypertextes et les formulaires, les linked data ne connaissent que les liens) Après avoir expliqué la particularité de la recherche documentaire dans le contexte automobile (qui fait nécessairement sortir du cadre du modèle relationnel - et donc de SPARQL - pour l’évaluation de la pertinence d’un document en fonction du véhicule auquel on s’intéresse), nous reviendrons brièvement sur ce qui avait fait le succès de la solution initiale - en particulier, les capacités d’agrégation de RDF, qui avaient permis de réconcilier facilement des données de sources variées. Nous dirons ce que nous avons abandonné - pour faire bref, disons que SPARQL n’est plus aussi central dans la solution, ou du moins qu’il n’en est plus le seul cœur. Mais surtout, nous verrons comment il a été possible de modifier assez profondément l'architecture initiale en intégrant des techniques nouvelles et en s’inspirant d’idées récentes (“Hypermedia driven web APIs”, Hydra, JSON-LD, web components, etc). Nous verrons aussi quelques limites ou promesses pas complètement tenues par les techniques en œuvre. Nous ferons la démonstration d’un prototype d’IHM en javascript construite sur la solution, montrant une recherche documentaire complexe, entièrement guidée par les données, avec un minimum de couplage entre serveur et client.
Par François-Paul Servant.
Nouvelle application, la décision de partir sur Node.js est prise. L'application commence petite puis le nombre de features et de développeurs augmentent. Les 1ers refactoring cossus arrivent et ne se passent pas vraiment comme prévu pourtant nous avons 100% de coverage… Est ce lié au manque de typage de JS ? Est ce que TypeScript aurait évité ça ? Ou finalement est ce que c'est notre façon d'écrire notre code (et les tests) qu'il faut remettre en cause ?
Après quelques refactoring et bugfix l'application part en prod. Les utilisateurs commencent à remonter quelques soucis, en regardant les logs on prend peur, très difficile de s'y retrouver… Venant du monde Java on est surpris par le manque de maturité des frameworks et librairies Node.js, notamment au niveau de la gestion des logs et des erreurs.
Toutes ces (mes)aventures nous ont permis de prendre du recul sur le développement avec JS, nous vous proposons un retour d'expérience sur cette odyssée qui est toujours en cours.
Angular n'est pas un simple framework mvc, il va plus loin et change fondamentalement notre manière de concevoir des applications web.
De l'avis de ses auteurs Angular est la plateforme qu'aurait été le couple html et JavaScript si ils avaient été créés aujourd'hui. SignalR quand a lui change aussi radicalement la manière de voir l'interaction avec les utilisateurs grace a sa communication bi-directionnelle simplifiée.
Il est intéressant de réunir les deux pour profiter du meilleur des deux mondes, de voir comment des bindings et des évènements se propagent de bout en bout et ainsi avoir un aperçu des applications de demain.
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
Slides du talk réalisé à Web2Day 2016 sur Apache Zeppelin (env. dédié à l'exploration des données, avec support de multiples langages, multiples backends)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
Tallk présenté à Devoxx avec Bachir Ait M'Barek : https://www.linkedin.com/in/baitmbarek
C’est la révolution dans la BI, les zones tampon FTP laissent la place aux systèmes de fichier distribués, le SQL s'exécute sur Hadoop, les dashboard en HTML5 remplacent les clients lourds, mais ne peut-on pas rationaliser un peu l’approche ?
Comment s’y prendre pour transformer une chaine BI en datalake ?
Cette université fera le tour de l’ingénierie des données en mode BigData. Au travers d’une présentation détaillée des concepts, de retour d’expériences et d’un cas pratique, nous allons découvrir :
les technologies et l’architecture, avec Spark, Kafka, Elasticsearch, Impala et Mesos,
et les méthodes associées : cycle de développement avec Hadoop, tests unitaires, jointures, gestion de la qualité de donnée, recette en mode Big Data et gestion des métadonnées.
Devoxx: Tribulation d'un développeur sur le CloudTugdual Grall
Comme beaucoup de développeurs une grande partie de mon temps libre est utilisé pour découvrir de nouvelles technologies et développer des applications avec celles-ci.
J'ai donc choisi de découvrir le développement d'application Java sur le cloud, avec Google AppEngine, pour créer le site http://www.resultri.com qui permet de gérer les resultats de triathlon (mon autre passion).
Développer cette application est une aventure interessante que je partage avec vous durant ce BOF:
découverte de GAE et des outils de developpement
les "surprises" du NoSQL, surtout pour un cerveau "cablé relationnel comme le mien"
hmmm tout n'est pas gratuit?
les quelques trucs à savoir : l'importance de memcache, utilisation de CloudSQL, les batchs....
Enrichir vos contenus Wordpress avec les API - WPTech 2015PXNetwork
Source : http://pxagency.fr/wordpress-api/
Les API permettent d'enrichir facilement des contenus afin de créer des mashup qui plairont à la fois aux internaute et à Google.
Vous trouverez dans cette présentation :
- une explication de ce qu'est une API
- une liste de ressources gratuites
- des exemples pratique pour utiliser une API avec Wordpress
- et des conseils pour que l'implémentation ne génère pas de problèmes techniques
Agenda :
Les enjeux de la performance d'un site Web
Les différents éléments de performance d'un site Web
Infrastructure, architecture technique, tuning, architecture applicative, WebPerf
L'obsession de la mesure
Les outils
Les quickwins
Caches, upscaling, outscaling, sharding
La démarche de test de charge
Méthodologie, outils, types de test, données de test
La démarche PDCA
Intégrer les tests de charge au cycle de développement
Environnement éphémère
Oxalide MorningTech #2 - Démarche de performance
2ème MorningTech @Oxalide, animé par Adrien Le Priol (@Priolix) et Ludovic Piot (@lpiot), le 28 février 2017.
Une vue d'ensemble sur la démarche et les outils pour aborder et maîtriser la performance de son site Web.
En 2012, Amazon publiait une étude indiquant que chaque seconde de performance perdue sur son site de commerce lui coûtait $1.6 milliards de chiffre d'affaire.
Par delà ce chiffre colossal avancé par le géant du Web, il est une réalité business : plus un site est lent, et moins les utilisateurs sont enclin à naviguer dessus. Les smartphones et le SoLoMo exacerbent cette réalité avec encore plus depuis 10 ans maintenant.
Sur le terrain, l'architecture technique des sites Web, de plus en plus complexe, rendent ses performances impossibles à prédire : complexité des développements applicatifs, multitude des composants impliqués dans l'architecture technique, recours à des services tiers (issus du SI de votre entreprise, ou de services tiers), big data, machine learning…
Une seule façon de prédire les performances : tester… en situation réelle.
A travers les différentes étapes d'une démarche d'optimisation des performances d'un site Web, les enjeux et les écueils d'une telle démarche vous seront détaillés.
Subject: Oxalide's MorningTech talk about an overview of how to deal with performance in a Web site.
Date: 28-feb-2017
Speakers: Adrien Le Priol (@Priolix, @Oxalide) and Ludovic Piot (@lpiot, @Oxalide)
Language: french
Lien SpeakerDeck : https://speakerdeck.com/lpiot/oxalide-morning-tech-number-2-demarche-performance
Lien SlideShare : https://www.slideshare.net/LudovicPiot/morning-tech-2-demarche-performance-slides
YouTube Video capture: https://youtu.be/a8jSbvyBzYU
Main topics:
* Les enjeux de la performance d'un site Web
* Les différents éléments de performance d'un site Web
** Infrastructure, architecture technique, tuning, architecture applicative, WebPerf
* L'obsession de la mesure
* Les outils
* Les quickwins
** Caches, upscaling, outscaling, sharding
* La démarche de test de charge
** Méthodologie, outils, types de test, données de test
* La démarche PDCA
** Intégrer les tests de charge au cycle de développement
** Environnement éphémère
* Questions / Réponses
Denodo, pilier central de votre stratégie APIDenodo
https://bit.ly/2TGvsG9
L'une des idées fondamentales derrière la virtualisation des données est le découplage des sources de données avec les méthodes de consommation. Pourquoi le besoin en requêtes de données dans JSON sur HTTP devrait-il nécessiter du développement supplémentaire? Denodo fournit un accès immédiat à ses ensembles de données via REST, OData 4, GeoJSON et d'autres protocoles, sans codage requis. Facile à faire évoluer, cloud-compatible et directement intégrable aux plateformes de gestion d'API, Denodo est l'outil idéal pour réussir votre stratégie API !
Dans cette session, nous aborderons les points suivants :
- Le rôle de Denodo dans une stratégie API
- L’intégration entre Denodo et les autres éléments du stack API, comme les plateformes de gestion d'API
- La facilité d'accès à Denodo en tant que fournisseur d’API REST
- Les options avancées des services Web Denodo: authentification via OAuth ou SAML, documentation OpenAPI, capacités géographiques, etc.
Le Comptoir OCTO - Qu'apporte l'analyse de cycle de vie d'un audit d'éco-conc...OCTO Technology
par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Filiales de la Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonnéOCTO Technology
Se conformer à la CSRD : un levier d'action insoupçonné
par Bintou Diarra (Manager EPM @OCTO Technology), Chloé Wibaux (Consulting & stratégie @Accenture) et Frédéric Lenci (Partner @OCTO Technology)
À partir de 2024, plus de 50 000 entreprises en Europe rendront compte de leurs impacts environnementaux et sociaux, ainsi que sur les mesures prises pour les améliorer. Pour répondre à cette obligation, elles devront se conformer à la Corporate Sustainability Reporting Directive (CSRD) en exploitant toutes leurs données, ce qui représente un défi majeur. Grâce à notre expertise dans le domaine de la donnée, pilotage opérationnel et solutions technologiques, nous sommes prêts à aider nos clients à relever ces défis liés au reporting CSRD. Lors de ce Comptoir, nous exposerons notre approche de gouvernance des données ESG, nos méthodes pour piloter les actions ainsi que les solutions pour générer le rapport et superviser les initiatives ESG de manière opérationnelle.
Présentation de ElasticSearch / Digital apéro du 12/11/2014Silicon Comté
ElasticSearch est un moteur de recherche open source reposant sur une interface JSON, pouvant fonctionner en mode distribué et interrogeable facilement via son API REST. Cédric Nirousset, Développeur web indépendant, vous fera découvrir les intérêts de l’utiliser dans vos applications à travers quelques exemples pratiques.
A propos de l’intervenant : Cédric Nirousset, diplomé dut DUT SRC Montébliard en 2006 et de l’UTBM en Informatique en 2010, il est maintenant développeur web indépendant à Besançon, travaillant pour des entreprises de toutes tailles et tous horizons. Suivez Cédric sur Twitter @Nyr0
ÉVolution d'un système de publication de données techniques automobiles, modé...SemWebPro
Début 2010, pour répondre à une directive européenne, Renault mettait en oper sa première application basée sur les techniques du semantic web : un système de publication des documents et données de sa documentation technique après-vente, en charge d’alimenter un site web à destination des réparateurs indépendants. Aujourd'hui, on veut faire évoluer la solution, pour prendre en compte de nouvelles sources de données, et élargir son audience. La solution initiale peut-elle évoluer facilement ? est-elle scalable et supportera-t-elle un important surcroit de charge ? Certains parlent d’un échec du Semantic Web : les choix techniques faits se sont-ils révélés pertinents ? Que ferait-on différemment aujourd'hui ? Cinq années ont passé : de nouvelles techniques sont apparues (JSON-LD, par exemple), d'autres ont mûri (Solr), JSON et javascript sont devenus incontournables. Ce qui faisait défaut est-il maintenant disponible ? Par exemple, comment intégrer les formulaires (ou les templates d’URI) dans une API basée sur les Linked Data ? (alors que le web repose à la fois sur les liens hypertextes et les formulaires, les linked data ne connaissent que les liens) Après avoir expliqué la particularité de la recherche documentaire dans le contexte automobile (qui fait nécessairement sortir du cadre du modèle relationnel - et donc de SPARQL - pour l’évaluation de la pertinence d’un document en fonction du véhicule auquel on s’intéresse), nous reviendrons brièvement sur ce qui avait fait le succès de la solution initiale - en particulier, les capacités d’agrégation de RDF, qui avaient permis de réconcilier facilement des données de sources variées. Nous dirons ce que nous avons abandonné - pour faire bref, disons que SPARQL n’est plus aussi central dans la solution, ou du moins qu’il n’en est plus le seul cœur. Mais surtout, nous verrons comment il a été possible de modifier assez profondément l'architecture initiale en intégrant des techniques nouvelles et en s’inspirant d’idées récentes (“Hypermedia driven web APIs”, Hydra, JSON-LD, web components, etc). Nous verrons aussi quelques limites ou promesses pas complètement tenues par les techniques en œuvre. Nous ferons la démonstration d’un prototype d’IHM en javascript construite sur la solution, montrant une recherche documentaire complexe, entièrement guidée par les données, avec un minimum de couplage entre serveur et client.
Par François-Paul Servant.
Nouvelle application, la décision de partir sur Node.js est prise. L'application commence petite puis le nombre de features et de développeurs augmentent. Les 1ers refactoring cossus arrivent et ne se passent pas vraiment comme prévu pourtant nous avons 100% de coverage… Est ce lié au manque de typage de JS ? Est ce que TypeScript aurait évité ça ? Ou finalement est ce que c'est notre façon d'écrire notre code (et les tests) qu'il faut remettre en cause ?
Après quelques refactoring et bugfix l'application part en prod. Les utilisateurs commencent à remonter quelques soucis, en regardant les logs on prend peur, très difficile de s'y retrouver… Venant du monde Java on est surpris par le manque de maturité des frameworks et librairies Node.js, notamment au niveau de la gestion des logs et des erreurs.
Toutes ces (mes)aventures nous ont permis de prendre du recul sur le développement avec JS, nous vous proposons un retour d'expérience sur cette odyssée qui est toujours en cours.
Angular n'est pas un simple framework mvc, il va plus loin et change fondamentalement notre manière de concevoir des applications web.
De l'avis de ses auteurs Angular est la plateforme qu'aurait été le couple html et JavaScript si ils avaient été créés aujourd'hui. SignalR quand a lui change aussi radicalement la manière de voir l'interaction avec les utilisateurs grace a sa communication bi-directionnelle simplifiée.
Il est intéressant de réunir les deux pour profiter du meilleur des deux mondes, de voir comment des bindings et des évènements se propagent de bout en bout et ainsi avoir un aperçu des applications de demain.
Big Data Viz (and much more!) with Apache ZeppelinBruno Bonnin
Slides du talk réalisé à Web2Day 2016 sur Apache Zeppelin (env. dédié à l'exploration des données, avec support de multiples langages, multiples backends)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
Tallk présenté à Devoxx avec Bachir Ait M'Barek : https://www.linkedin.com/in/baitmbarek
C’est la révolution dans la BI, les zones tampon FTP laissent la place aux systèmes de fichier distribués, le SQL s'exécute sur Hadoop, les dashboard en HTML5 remplacent les clients lourds, mais ne peut-on pas rationaliser un peu l’approche ?
Comment s’y prendre pour transformer une chaine BI en datalake ?
Cette université fera le tour de l’ingénierie des données en mode BigData. Au travers d’une présentation détaillée des concepts, de retour d’expériences et d’un cas pratique, nous allons découvrir :
les technologies et l’architecture, avec Spark, Kafka, Elasticsearch, Impala et Mesos,
et les méthodes associées : cycle de développement avec Hadoop, tests unitaires, jointures, gestion de la qualité de donnée, recette en mode Big Data et gestion des métadonnées.
Devoxx: Tribulation d'un développeur sur le CloudTugdual Grall
Comme beaucoup de développeurs une grande partie de mon temps libre est utilisé pour découvrir de nouvelles technologies et développer des applications avec celles-ci.
J'ai donc choisi de découvrir le développement d'application Java sur le cloud, avec Google AppEngine, pour créer le site http://www.resultri.com qui permet de gérer les resultats de triathlon (mon autre passion).
Développer cette application est une aventure interessante que je partage avec vous durant ce BOF:
découverte de GAE et des outils de developpement
les "surprises" du NoSQL, surtout pour un cerveau "cablé relationnel comme le mien"
hmmm tout n'est pas gratuit?
les quelques trucs à savoir : l'importance de memcache, utilisation de CloudSQL, les batchs....
Enrichir vos contenus Wordpress avec les API - WPTech 2015PXNetwork
Source : http://pxagency.fr/wordpress-api/
Les API permettent d'enrichir facilement des contenus afin de créer des mashup qui plairont à la fois aux internaute et à Google.
Vous trouverez dans cette présentation :
- une explication de ce qu'est une API
- une liste de ressources gratuites
- des exemples pratique pour utiliser une API avec Wordpress
- et des conseils pour que l'implémentation ne génère pas de problèmes techniques
Agenda :
Les enjeux de la performance d'un site Web
Les différents éléments de performance d'un site Web
Infrastructure, architecture technique, tuning, architecture applicative, WebPerf
L'obsession de la mesure
Les outils
Les quickwins
Caches, upscaling, outscaling, sharding
La démarche de test de charge
Méthodologie, outils, types de test, données de test
La démarche PDCA
Intégrer les tests de charge au cycle de développement
Environnement éphémère
Oxalide MorningTech #2 - Démarche de performance
2ème MorningTech @Oxalide, animé par Adrien Le Priol (@Priolix) et Ludovic Piot (@lpiot), le 28 février 2017.
Une vue d'ensemble sur la démarche et les outils pour aborder et maîtriser la performance de son site Web.
En 2012, Amazon publiait une étude indiquant que chaque seconde de performance perdue sur son site de commerce lui coûtait $1.6 milliards de chiffre d'affaire.
Par delà ce chiffre colossal avancé par le géant du Web, il est une réalité business : plus un site est lent, et moins les utilisateurs sont enclin à naviguer dessus. Les smartphones et le SoLoMo exacerbent cette réalité avec encore plus depuis 10 ans maintenant.
Sur le terrain, l'architecture technique des sites Web, de plus en plus complexe, rendent ses performances impossibles à prédire : complexité des développements applicatifs, multitude des composants impliqués dans l'architecture technique, recours à des services tiers (issus du SI de votre entreprise, ou de services tiers), big data, machine learning…
Une seule façon de prédire les performances : tester… en situation réelle.
A travers les différentes étapes d'une démarche d'optimisation des performances d'un site Web, les enjeux et les écueils d'une telle démarche vous seront détaillés.
Subject: Oxalide's MorningTech talk about an overview of how to deal with performance in a Web site.
Date: 28-feb-2017
Speakers: Adrien Le Priol (@Priolix, @Oxalide) and Ludovic Piot (@lpiot, @Oxalide)
Language: french
Lien SpeakerDeck : https://speakerdeck.com/lpiot/oxalide-morning-tech-number-2-demarche-performance
Lien SlideShare : https://www.slideshare.net/LudovicPiot/morning-tech-2-demarche-performance-slides
YouTube Video capture: https://youtu.be/a8jSbvyBzYU
Main topics:
* Les enjeux de la performance d'un site Web
* Les différents éléments de performance d'un site Web
** Infrastructure, architecture technique, tuning, architecture applicative, WebPerf
* L'obsession de la mesure
* Les outils
* Les quickwins
** Caches, upscaling, outscaling, sharding
* La démarche de test de charge
** Méthodologie, outils, types de test, données de test
* La démarche PDCA
** Intégrer les tests de charge au cycle de développement
** Environnement éphémère
* Questions / Réponses
Denodo, pilier central de votre stratégie APIDenodo
https://bit.ly/2TGvsG9
L'une des idées fondamentales derrière la virtualisation des données est le découplage des sources de données avec les méthodes de consommation. Pourquoi le besoin en requêtes de données dans JSON sur HTTP devrait-il nécessiter du développement supplémentaire? Denodo fournit un accès immédiat à ses ensembles de données via REST, OData 4, GeoJSON et d'autres protocoles, sans codage requis. Facile à faire évoluer, cloud-compatible et directement intégrable aux plateformes de gestion d'API, Denodo est l'outil idéal pour réussir votre stratégie API !
Dans cette session, nous aborderons les points suivants :
- Le rôle de Denodo dans une stratégie API
- L’intégration entre Denodo et les autres éléments du stack API, comme les plateformes de gestion d'API
- La facilité d'accès à Denodo en tant que fournisseur d’API REST
- Les options avancées des services Web Denodo: authentification via OAuth ou SAML, documentation OpenAPI, capacités géographiques, etc.
Le Comptoir OCTO - Qu'apporte l'analyse de cycle de vie d'un audit d'éco-conc...OCTO Technology
par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Filiales de la Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonnéOCTO Technology
Se conformer à la CSRD : un levier d'action insoupçonné
par Bintou Diarra (Manager EPM @OCTO Technology), Chloé Wibaux (Consulting & stratégie @Accenture) et Frédéric Lenci (Partner @OCTO Technology)
À partir de 2024, plus de 50 000 entreprises en Europe rendront compte de leurs impacts environnementaux et sociaux, ainsi que sur les mesures prises pour les améliorer. Pour répondre à cette obligation, elles devront se conformer à la Corporate Sustainability Reporting Directive (CSRD) en exploitant toutes leurs données, ce qui représente un défi majeur. Grâce à notre expertise dans le domaine de la donnée, pilotage opérationnel et solutions technologiques, nous sommes prêts à aider nos clients à relever ces défis liés au reporting CSRD. Lors de ce Comptoir, nous exposerons notre approche de gouvernance des données ESG, nos méthodes pour piloter les actions ainsi que les solutions pour générer le rapport et superviser les initiatives ESG de manière opérationnelle.
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudOCTO Technology
Comment choisir son architecture MLOps dans le cloud ?
par Baptiste Courbe (Senior Data Consultant & MLOps @OCTO Technology)
Choisir une architecture aura de grands impacts en termes de mise en œuvre, de maintenabilité, d'évolutivité, de passage à l’échelle, etc. À travers nos retours d’expérience sur les différents cloud providers, venez découvrir les différents niveaux de complexité de telles architectures et les critères de décision.
Que vous soyez débutant ou expert en MLOps, nous vous donnerons les clés pour faire les bons choix techniques.Vous repartirez avec une vue d’ensemble des bonnes pratiques et des pièges à éviter pour déployer vos applications de Machine Learning XGBoost ou LLM dans le cloud.
Vidéo Youtube : https://www.youtube.com/watch?v=j_5pI6iYRs4&list=PLBD8R108T9T4D3mcLiDpT67f9ERg1Hm2r&index=57
Compte-rendu :
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...OCTO Technology
Par Philippe Stepniewski - ML Engineer
Et si nous développions ensemble un moteur de recherche multimodal texte-image ? Imaginons un moteur qui, à partir d'une simple description textuelle d'un produit sur un site d'e-commerce, puisse trouver instantanément les images correspondantes, sans nécessiter la saisie préalable de textes descriptifs pour nos produits ! Les bases de données vectorielles seront au centre de cet atelier. Il serait tout à fait possible de prendre une solution clé en main, mais où serait le fun là-dedans ? Rien de tel que de mettre les mains dans le code pour comprendre le fonctionnement de tels concepts, alors implémentons en une nous-mêmes ! Pré-requis : Pour assister à cet atelier et comprendre ce qui sera affiché à l’écran, il est recommandé d’être à l’aise dans la lecture de code Python manipulant des données vectorielles (type Numpy). Même si nous effectuerons des rappels en début d’atelier, des rudiments en data science vous aideront à comprendre les concepts manipulés : CNN, embedding, distance/similarités entre vecteurs.
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...OCTO Technology
Par Philippe Prados - Pionnier de l'informatique
Un des usages les plus fréquents des Larges Languages Models (LLM) consiste à répondre à des questions à partir d’une base documentaire : le fameux Retrieval Augmented Generation (RAG). Les démonstrations font leur effet wahou ! Les douleurs arrivent lorsque la solution est vraiment utilisée : le modèle répond à côté, ignore des informations présentes dans les documents… Comment aller plus loin ? Comment rendre la solution plus robuste ? Plus fiable ? Pour répondre à ces questions, nous allons mettre les mains dans le code, dans l’architecture, pour appliquer les concepts classiques de l’informatique aux RAG. Pré-requis : Même si un rappel sera fait au début, pour assister à cet atelier et comprendre ce qui sera affiché à l’écran, il est recommandé d’être à l’aise dans la lecture de code Python et les principes de base des modèles de langage et des bases vectorielles.
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...OCTO Technology
Maîtriser le RAG : connecter les modèles d’IA génératives aux données de l’entreprise
par Nicolas Cavallo (Head of Natural Language Processing @OCTO Technology)
Les chatbots intelligents qui répondent directement aux clients, des tâches accélérées et simplifiées pour les salariés via des services d’assistance helpdesk automatisés, etc. Après plusieurs mois de développement et d’implémentation de projets de génération augmentée de récupération (Retrieval Augmented Generation - RAG),faisons le bilan sur ce principal cas d’usage à base d’IA génératives.
Nous détaillerons le fonctionnement du RAG qui permet de connecter la puissance de l’IA générative au patrimoine informationnel des entreprises. Nous examinerons plus particulièrement les méthodologies pour les évaluer et les améliorer. Grâce à nos retours d’expérience, nous détaillerons des stratégies d’intégration dans un environnement souverain.
Vidéo Youtube : https://www.youtube.com/watch?v=9tmlseutQM8
Compte-rendu : https://blog.octo.com/maitriser-le-rag-retrieval-augmented-generation
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Technology
Les IA s'invitent au chevet des développeurs : rêve ou cauchemar ?
par Alain Faure (Architecte @OCTO Technology) et Alexandre Jeambrun (Programmeur, Crafter & Coach tech @OCTO Technology)
L’année 2023 marque le retour en force de l’intelligence artificielle avec la démocratisation des IA génératives qui ont le potentiel de perturber de nombreuses activités et en particulier le développement d'applications. La révolution de l’IA dans le développement de code n’a pas attendu le buzz de chatGPT. La société TabNine est créée en 2017 et dès 2018 Microsoft lance Intellicode, puis copilot en 2022. AWS se joint au mouvement avec CodeWhisperer. Tous ces outils sont opérationnels et leur base d'utilisateurs s'accroît jour après jour.
Effet de mode, évolution ou révolution, est ce que bientôt il y aura moins de développeurs ? Que savent vraiment faire ces IA ? Quels types de gains en attendre et comment les utiliser ? Comment les équipes accueillent elles ces outils ? Faut-il les former ? Quels risques y a-t-il à utiliser ces outils ? Bienvenue à un tour complet de l'IA dans le monde du développement
Lancement du livre Culture Test Vol.2
par Sylvie Ponthus (développeuse, chef de projet et coach agile @ OCTO Technology), Stéphane Bedeau (développeur et formateur @OCTO Technology) et Christophe Breheret-Girardin (Coach Craft, formateur et conférencier @OCTO Technology)
Et si tester, c’était mieux faire, faire plus rapidement ? À l'occasion de la sortie du premier volume de notre trilogie Culture Test, on vous donne rendez-vous le mardi 5 décembre dans les locaux d'OCTO Technology pour rencontrer les auteurs, confronter les points de vue, et vous dévoiler en exclusivité le prochain tome
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...OCTO Technology
Green AI, comment éviter que votre votre potion magique d’IA ne se transforme en poison ?
par Eric Biernat (Directeur Big Data Analytics @OCTO Technology) et Reynald Riviere (Manager Sénior Data Science @OCTO Technology)
Après l’électricité et l’Internet, nous sommes maintenant dans l’ère de l’IA avec des modèles qui optimisent l’usage de nos ressources … sans avoir conscience que ces modèles d’IA sont eux aussi énergivores. Venir découvrir comment l’écologie de l'IA est devenu notre quête avec le Green AI selon 3 angles de vue : le software, le hardware et le processus.
Vidéo Youtube : https://www.youtube.com/watch?v=7nWADBWA22c
Compte-rendu : https://blog.octo.com/comptoir-green-ai
OCTO Talks - State of the art Architecture dans les frontend webOCTO Technology
Vous avez dit architecture front 💅 ? Du CSS au CDN, personne ne sera épargné !
par Pierrette Bertrand (Head of Web Front Development @OCTO Technology), David Ostermann (Developpeur Front End @OCTO Technology) et Florian Leroy (Consultant Senior @OCTO Technology)
Qu’est-ce qu’une architecture front ? Selon que vous demandiez à un intégrateur, un développeur frontend, un développeur d’API ou tout simplement, à un architecte, la réponse sera bien différente. Car selon notre expérience, ce dernier, n’a en réalité qu’une partie de la réponse. Dans ce talk, nous regarderons ensemble les avantages et inconvénients de la multitude des choix possibles, à chaque étage, afin de donner une carte utile pour s’y retrouver. N’en déplaise aux développeurs front, le concept d’architecture front dépasse de loin le choix de leur framework préféré !
Comment la culture d'entreprise peut faire la différence lors d'une fusion acquisition ?
par Lucie quach, Vanessa Govi et Frédéric Lenci
Comment la Culture s'est retrouvée parmi les sujets d'intégration clés lors d'une fusion ? Venez découvrir les coulisses de 6 mois de la co-construction entre ALD/Leaseplan pour définir la culture commune de l'entreprise de 15 700 personnes couvrant 60 pays et les supports que l'on a co-créés pour l'implémenter aussi bien au COMEX que sur le terrain.
Vidéo Youtube : https://www.youtube.com/watch?v=smnpq7Ey9pk
Compte-rendu : https://blog.octo.com/compte-rendu-du-comptoir-definition-de-la-culture-dentreprise-issue-dune-fusion
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? OCTO Technology
Par Antoine Moreau (Head of Data & AI @OCTO Technology), Pierre Sabrié (Directeur Prévision @Groupe Casino) et Nicolas Gery (Retail Strategy & Consulting Senior Manager @Accenture)
Comment sécuriser la disponibilité des produits en rayon, réduire la casse et les stocks, et gagner en efficacité en centrale et en magasins ?
Casino a réussi rapidement ce pari grâce à une solution algorithmique capable de traiter des données à la maille la plus fine (articles x magasins), de manière quotidienne en se basant sur les assets Cloud.
Rejoignez Pierre, Antoine et Nicolas qui vous partageront les réussites, les difficultés rencontrées et la démarche Casino.
Vidéo Youtube : https://www.youtube.com/watch?v=6oX4NvXZkTk&list=PLBD8R108T9T4D3mcLiDpT67f9ERg1Hm2r&index=47
Compte-rendu : https://blog.octo.com/compte-rendu-le-comptoir-x-casino-comment-optimiser-les-stocks-en-lineaire-par-la-data/
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...OCTO Technology
Par Julie François (Consultante et formatrice RGPD @OCTO Technology)
Le RGPD a fêté ses 5 ans de mise en application et vous pensez toujours que votre équipe ne manipule pas “vraiment” de données personnelles ? Alors ce Comptoir OCTO est fait pour vous !
Chez OCTO, nous avons la conviction que le RGPD n'est pas qu'une affaire de juristes. Alors embarquez avec nous pour une sensibilisation rythmée et parlante. Au programme des retours d’expérience sur 5 années de mise en œuvre, qui vous feront découvrir le sujet de la protection des données autrement.
Vidéo Youtube : https://www.youtube.com/watch?v=uum3Qxisuu0&list=PLBD8R108T9T4D3mcLiDpT67f9ERg1Hm2r&index=51
Compte-rendu : https://blog.octo.com/compte-rendu-du-comptoir-retour-sur-5-ans-de-mise-en-oeuvre-comment-le-rgpd-a-reinvente-la-protection-des-donnees-personnelles/
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...OCTO Technology
par Wilde Diogene (Manager EPM @OCTO Technology), Samir Benyoucef (Consultant @OCTO Technology) et Elghali Guessous (Delivery Manager EPM @OCTO Technology)
Les approches traditionnelles de planification, basées sur un consensus entre différents départements (ventes, marketing, finance), peuvent être consommatrices de temps et aboutir à des prévisions inexactes. Découvrez comment exploiter l'IA et le Machine Learning pour créer une plateforme de prévision du chiffre d'affaires intelligente. En associant le planning distribué de Pigment (EPM) et la puissance prédictive de Dataiku (Auto ML), vous bénéficiez d'un gain de temps significatif dans votre planification, d'une prise de décision éclairée et d'une meilleure gestion de vos ressources (humaines, production, stocks...).
Surmontez les incertitudes et pilotez votre entreprise vers le succès avec confiance.
Vidéo Youtube : https://www.youtube.com/watch?v=tBwlWAksFik&list=PLBD8R108T9T4D3mcLiDpT67f9ERg1Hm2r&index=48
Compte-rendu : https://blog.octo.com/affinez-vos-forecast-avec-le-planning-distribue-et-lautoml/
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionOCTO Technology
Par Brice Le Roux (GreenOps @OCTO Technology) et Frédéric Menetreux (Architecte d’entreprise @CA-GIP)
Vous souhaitez acquérir les leviers d’action pour mettre en œuvre la sobriété numérique et mesurer les impacts de votre infrastructure ? Rejoignez Brice et Frédéric qui vous partageront les réussites et améliorations de la formation réalisée au Crédit Agricole par OCTO Academy
Vidéo Youtube : https://www.youtube.com/watch?v=efrJT_ZJ5fk&list=PLBD8R108T9T4D3mcLiDpT67f9ERg1Hm2r&index=50
Compte-rendu : https://blog.octo.com/les-comptoirs-octo-la-formation-au-coeur-de-la-strategie-deco-conception-de-linfra/
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...OCTO Technology
Par Wassel Alazhar (Architecte @OCTO Technology), François-Xavier Bouffant (Engineering Manager @Wakam )et Etienne Debost (Head of Architecture @Wakam)
La littérature promeut les plateformes digitales comme un levier de croissance pour les entreprises et un vrai avantage stratégique dans l’économie numérique.
Force est de constater que les entreprises qui se lancent dans cette aventure échouent : elles n’arrivent pas à dépasser le Proof Of Concept ou bien s’enlisent dans la paralysis analysis après des millions d’euros dépensés.
Nous vous partageons un retour sur l'expérience Wakam. Nous avons réussi à amorcer une dynamique pour construire une plateforme (tunnel de distribution en marque blanche, APIs, web apps, blockchain...) qui permet d’innover, de fournir des capacités métiers sous forme de commodité et d’assurer une expérience hyper personnalisable aux partenaires, en moins de 6 mois
Vidéo Youtube : https://www.youtube.com/watch?v=tfioZZTfX1M&list=PLBD8R108T9T4D3mcLiDpT67f9ERg1Hm2r&index=49
Compte-rendu : https://blog.octo.com/compte-rendu-du-comptoir-une-vision-de-plateforme-sans-leadership-tech-nest-quhallucination/
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...OCTO Technology
Par Wilde Diogene (Manager EPM @OCTO Technology), Samir Benyoucef (Consultant @OCTO Technology) et Matthieu Mlatac (Consultant sénior @OCTO Technology)
Plongez dans les bénéfices des solutions EPM pour améliorer la gestion du bilan carbone de votre entreprise. En simplifiant la collecte et l’analyse, ces solutions offrent une vision claire de votre empreinte environnementale et permettent d’identifier les opportunités de réductions de vos émissions. Les bénéfices pour votre entreprise incluent une meilleure efficacité opérationnelle, des coûts réduits, une réputation renforcée et une contribution significative aux efforts de lutte contre le changement climatique.
Vidéo Youtube : https://www.youtube.com/watch?v=ak--ftSio-I&list=PLBD8R108T9T4D3mcLiDpT67f9ERg1Hm2r&index=46
Compte-rendu : https://blog.octo.com/lavenir-de-la-gestion-du-bilan-carbone-les-solutions-epm-au-service-de-la-performance-environnementale/
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...OCTO Technology
Par Mehdi Houacine (Consultant Senior @OCTO Technology), Sofia Calcagno (Machine Learning Engineer @OCTO Technology) et Thomas Dobrzelewski (Lead Product Manager B2C @Wakam)
Wakam a comme ambition de réinventer le métier de l'assurance en y introduisant plus de transparence et de sécurisation via le blockchain. Or, ce type d'innovation structurante pose plusieurs questions : qui seront ses utilisateurs cibles ? Quel sera son impact sur le processus métier ? Nous vous présenterons ici une démarche liant expérimentation et déploiement via les outils du DDD permettant de faire pivoter un produit rapidement.
Vidéo Youtube : https://www.youtube.com/watch?v=Q3ElzHtV40s&list=PLBD8R108T9T4D3mcLiDpT67f9ERg1Hm2r&index=45
Compte-rendu : https://blog.octo.com/compte-rendu-du-comptoir-continuous-delivery-et-continuous-discovery-pour-construire-lassurance-de-demain/
L’état de l’art des tests front-end
Maîtriser et fiabiliser son code sont aujourd’hui devenus incontournables pour tout développeur devant faire face à des architectures Web de plus en plus riches et complexes.
Il existe des outils pour réaliser des tests front-end d’applications Web et répondre aux besoins d’un développement de qualité.
Nous vous invitons ici à parcourir l’écosystème de ces tests front-end d’applications Web. Que vous soyez déjà convaincus par les tests ou tout simplement curieux, ce document vous guidera pour les mettre en place sur vos projets.
2. octo.com
GRAPH
Q
LO
CTO
TECHNO
LO
GY
Qu’est-ce que GraphQL ?
Créé par Facebook en 2012, GraphQLest à la fois un langage de requêtes pour lesAPI et un environnement permettant d'exécuter ces requêtes.
À l’époque, l’application mobile de Facebook rencontrait des problèmes de performance à cause du nombre important de requêtes qu’il
fallait pour charger le contenu de son fil d’actualité avec des API REST.
Son objectif principal est donc de permettre au consommateur de l’API de récupérer exactement les données dont il a besoin en une seule requête.
En 2015, GraphQL est devenu open-source et a depuis été adopté par plusieurs grandes entreprises telles que Github, Shopify, Twitter,
Coursera, Yelp, Netflix, Airbnb, Paypal et Contentful. Par la suite, sa part de marché n'a cessé de croître.
Depuis, certains leaders technologiques ont mis en place la GraphQL Foundation pour encourager le développement commun et l'évolution
de GraphQL.
GraphQL étant une spécification, plusieurs implémentations ont vu le jour, telles qu’Apollo, Graphene, ou encore Domain Graph Service.
Quand dois-je l’utiliser ?
Exemple de cas d’utilisation :
• Je suis une très grosse entreprise qui a des problématiques de performances réseau et charger une page signifie faire X appels (ex :
Facebook) ;
• Mon API est publique et je ne connais pas les cas d’usage de mes utilisateurs à l’avance (ex : Github, Shopify ou Contentful).
Utilisation déconseillée lorsque :
• Je n’ai pas beaucoup de consommateurs de mon API ;
• Je suis le seul utilisateur de mon API ;
• Mon API expose majoritairement des données statiques ;
• Personne ne sait faire du GraphQL dans l’équipe et nous devons livrer rapidement ;
• J'ai envie de créer un projet complexe en mettant un générateur GraphQL devant une base de données ;
• Mon API expose des données simples et indépendantes.
Les problèmes principaux résolus par GraphQL sont l'over-fetching, c'est-à-dire le fait de récupérer un nombre de données trop important
par rapport aux données dont nous avons vraiment besoin, et l'under-fetching.
3. octo.com
GRAPH
Q
LO
CTO
TECHNO
LO
GY
query {
planet(id: 1) {
characters {
name
saberColor
}
}
}
POST /graphql
planet: {
characters: [
{
name: Darth Vader,
saberColor: red
},
{...}
]}
Ici,jesuisobligédefairen+1
appels afin d’accéder aux
ressources que je souhaite.
[
{id: 1, name: Luke Skywalker},
{id: 2, name: Darth Vader},
…
]
{ saberColor: red }
GET /planets/1/characters
GET /characters/n/sabers
API Rest
API GraphQL
?
Under-fetching
L’under-fetching est la nécessité de devoir faire plusieurs appels pour récupérer un ensemble de données cohérent d’un point de
vue fonctionnel.
J’ai besoin de la
couleur du sabre des
personnages venant
de la planète Tatooine.
4. octo.com
GRAPH
Q
LO
CTO
TECHNO
LO
GY
Que renvoie une API GraphQL ?
GraphQL permet aux consommateurs de sélectionnerlesinformations qu'ils souhaitent recevoir de l'API. Pour cela, il leur suffit de préciser
les champs désirés dans leur requête.
Les erreurs métier, équivalentes aux codes d'erreur 4XX en REST, font partie intégrante du schéma (ou contrat d'interface) de l'API et
peuvent être filtrées de la même manière que les données.
Quant aux erreurs serveur, équivalentes aux codes d'erreur 5XX, elles sont listées dans le champ errors de la réponse.
Je souhaite récupérer le nom, l’espèce et
la planète du personnage dont l’id est 15.
Si le personnage n’est pas trouvé, je
souhaite récupérer un message d’erreur.
En général, les API GraphQL communicant via HTTP retournent un code
200, même en cas d’erreur.
query {
character(id: 15) {
__typename
... on Character {
name
species
planet
}
... on CharacterNotFound {
message
}
}
Requête
__typename est un champ qui
précise le type de l’objet, disponible
dans toutes les APIs GraphQL.
5. octo.com
GRAPH
Q
LO
CTO
TECHNO
LO
GY
{
errors: [
{
message: Internal Server Error,
locations: [ {line: 2, column: 2} ],
path: [ character ],
extensions: {
code: NOT_IMPLEMENTED
}
}
],
data: {
character: null
}
}
Erreur serveur
{
data: {
character: {
__typename: Character,
name: Jar Jar Binks ,
species: Gungan,
planet: Naboo
}
}
}
Succès
{
data: {
character: {
__typename: CharacterNotFound,
message: Character not found
}
}
}
Erreur métier
Les champs
en erreur
doivent être
null
Réponses
Status Code : 200
TOUT VA BIEN.
6. octo.com
GRAPH
Q
LO
CTO
TECHNO
LO
GY
Les bonnes pratiques.
Sécurité
Le standard pour gérer les autorisations est OAuth 2.
Il est vivement conseillé d’utiliser HTTPS pour toutes vos requêtes API/OAuth2.
Pour l’identification, le standard est OpenID Connect.
Il est recommandé de limiter la profondeur et le nombre d’opérations par requête,
ainsi que de mettre du rate limiting basé sur l’analyse de coût de chaque requête.
Code First
Il est préférable de décrire le schéma via du code puis de le générer plutôt que
d’écrire le schéma directement dans un .gql.
Cela permet de profiter d’un typage intelligent dans l’IDE et, ainsi, de limiter les
erreurs.
Documentation
Les commentaires du schéma doivent décrire les entités, de manière concise
et précise. Par exemple, ce que représente un type du schéma et ce que change
une mutation. Ajouter des exemples dans celle-ci réduit le TTFAC¹.
Cependant, elle doit être un complément au schéma et ne doit pas remplacer un
nommage explicite.
La meilleure documentation reste le code.
GraphiQL permet de générer une documentation interactive.
Il est conçu par la GraphQL Foundation et est très utilisé par la communauté.
Une alternative non interactive est GraphDoc.
Monitoring
Pour répondre au mieux à vos utilisateurs, il est indispensable de monitorer votre
API GraphQL.
On peut connaître les requêtes les plus utilisées et ainsi prioriser les améliorations de
DX² ou de performance.
Pour suivre une requête de bout en bout, il est conseillé d’utiliser un ID de corrélation.
Glossaire
¹ Time To First API Call : le temps que met un développeur entre l’ouverture de la documentation et son premier
appel à l’API.
² Developer Experience : qualité de l’expérience du développeur lorsqu’il interagit avec l’API.
³ Persisted Query : requête enregistrée lorsque le client l’envoie au serveur, puis accessible via un hash.
Cache
L’idéal pour le cache côté client ou serveur est d’utiliser des persisted queries³.
Côté client, les clefs de cache doivent contenir a minima le hash de la query et le
hash des variables. Pour les ressources privées, ces clefs doivent aussi contenir l’id
de l’utilisateur.
Aussi, une requête doit être mise en cache seulement si tous ses objets sont cachables.
Versioning
Le must est de faire évoluer l’API sans la versionner en limitant les breaking changes
ou en dépréciant les champs le cas échéant.
Lors d’un changement du contrat d’interface, il est impératif de communiquer les
champs dépréciés et la date de leur suppression. Ensuite, monitorer les champs
dépréciés pour avertir les consommateurs en retard.
Découvrabilité
Pour une API privée, il est vivement conseillé de bloquer l’introspection en prod et
de whitelister certains champs si besoin. Pour une sécurité accrue, l’utilisation de
persisted queries³ est conseillée.
Pour une API ouverte, il vaut mieux laisser l’introspection pour améliorer l’expérience
utilisateur. On peut cacher certains champs si nécessaire.
7. octo.com
GRAPH
Q
LO
CTO
TECHNO
LO
GY
Requêtes avancées.
Les variables sont envoyées à côté de la
chaîne de caractères de la requête au serveur
GraphQL.
Cela améliore la réutilisabilité de la requête
(la chaîne de caractères de la requête reste
la même, seule la variable change) et
la sécurité (le type de la variable peut-être
imposé).
query Fetch(
$filter_luke: CharacterFilter!,
$filter_r2d2: CharacterFilter!
) {
luke: character(filter: $filter_luke) {
…Colors
},
r2-d2: character(filter: $filter_r2d2) {
…Colors
}
}
fragment Colors on Character {
hair_color
eye_color
}
{
filter_luke: {
name: Luke Skywalker
},
filter_r2d2: {
name: R2-D2
}
}
Les alias permettent au client de définir
le nom de retour d’un champ.
Les alias sont utiles quand le même champ
est requêté plusieurs fois (comme ici avec
le champ character).
Les fragments sont des groupes de champs
réutilisables. Ils sont utiles pour récupérer
plusieurs fois les mêmes champs dans
une requête.
8. octo.com
GRAPH
Q
LO
CTO
TECHNO
LO
GY
query {
profile(id: 15) {
name
picture
}
actualities(id: 15) {
title
content
}
suggestions(id: 15) {
name
picture
}
}
Série ou parallèle ?
Les queries sont exécutées
en parallèle alors que les
mutations sont exécutées
en série, dans l’ordre de la
requête.
Je souhaite récupérer toutes
les informations de ma page
en une seule requête.
9. octo.com
Pagination.
La pagination divise un grand nombre de résultats en pages de taille limitée, par souci de performance.
Offset Pagination
La liste est découpée en pages qui contiennent chacune un nombre d’éléments.
Les autres paginations
La pagination par offset n’est plus pertinente si les données de votre API sont susceptibles d’évoluer entre deux appels. Dans ce cas, Il existe également
la pagination par curseur qui permet de requêter les objets après une certaine heure ou après un certain ID. Le framework Relay pousse la Relay
Connection Pagination, qui facilite son utilisation par le front. Cette pagination est plus compliquée à mettre en œuvre côté Backend.
Cette approche est souvent associée à des problèmes de performance
côté serveur et peut causer des problèmes de cohérence des données.
Néanmoins, elle reste la plus simple et la plus utilisée.
Je récupère beaucoup trop de résultats à chaque appel.
J’ai besoin de pagination pour en récupérer moins.
Maintenant je requête les Sith par lot de 10, à partir de la page 8.
Pour requêter les 10 prochains seigneurs Sith, je devrai faire la requête
sithLords(limit: 10, page: 9).
Requête
Réponse
query {
sithLords(limit: 10, page: 8) {
nodes {
id
name
}
pageInfo {
hasNextPage
totalPages
}
}
}
sithLords: {
nodes: [
{id: 71, name: Dark Vador},
…,
{id: 80, name: Dark Maul}
],
pageInfo: {
hasNextPage: true,
totalPages: 12
}
}
10. octo.com
Filtre.
Tri.
Un filtre permet d’affiner les résultats d’une recherche via des critères précis.
Pour ordonner les résultats d’une réponse, certaines APIs GraphQL
proposent un argument orderBy dans leurs requêtes.
Je veux récupérer les personnages
ayant un sabre vert.
Je veux récupérer une liste
des maîtres Jedi du plus petit
au plus grand.
Requête
query {
filterCharacterBySaberColor(
saberColor: green
) {
name
saberColor
}
}
Requête
query {
jediMasters(orderBy: {height: asc}) {
name
height
lightSaberColor
}
}
Les logiques de pagination, de filtre et de tri ne sont pas
natives à GraphQL. Elles sont à développer côté back-end.
11. octo.com
GRAPH
Q
LO
CTO
TECHNOLO
GY
Design du schéma.
Il existe trois Schémas Roots : les Query, les Mutations
et les Subscriptions dans lesquelles sont rangées les opérations.
Une Mutation est utilisée pour créer/modifier/
supprimer des entités.
type Query {
planet(id: ID!): PlanetReturn
}
type Mutation {
destroyPlanet(planetId: ID!): DestroyPlanetReturn
}
type Subscription {
planetDestroyed: Planet!
}
union PlanetReturn = Planet | PlanetNotFound | Error
union DestroyPlanetReturn = DestroyPlanetSuccess | PlanetNotFound |
PlanetAlreadyDestroyedError | Error
type Planet {
id: ID!
name: String!
destroyed: Boolean!
}
type DestroyPlanetSuccess {
id: ID!
name: String! @deprecated(
reason: Replaced by planetName. Removal on 2023-01-01.)
planetName: String!
}
interface Error {
message: String!
code: String!
path: [String!]!
}
type PlanetNotFoundError implements Error {
message: String!
code: String!
path: [String!]!
planetId: ID!
}
Returned type when the planet is already destroyed
type PlanetAlreadyDestroyedError implements Error {
message: String!
code: String!
path: [String!]!
planet: Planet!
}
Une Query est utilisée pour récupérer
des valeurs.
Il est obligatoire de définir une Query
Root dans un schéma GraphQL.
Une Subscription permet au serveur
GraphQL d’envoyer des données
à l’utilisateur lorsqu’un événement
se produit. Une connexion est donc
maintenue avec le client.
Il est possible d’utiliser du Server-sent
event ou du WebSocket.
Une union est un ensemble de types
concrets utilisé pour les types de retour.
Ce champ ne peut pas être null car il se
termine par un point d’exclamation.
Un Type représente une entité composée
de plusieurs propriétés.
Ici, une planète a un id, un nom et un état
détruit qui peut être vrai ou faux.
Une directive (précédée par un @)
permet d’ajouter de la logique technique
au schéma.
La plus connue est @deprecated qui permet
de préciser qu’un champ est déprécié.
Faire implémenter à vos erreurs métier
la même interface permet d’ajouter
de nouveaux cas d’erreurs sans provoquer
de breaking change.
Commentaire qui apparaîtra dans la
documentation (GraphiQL, GraphDoc…).
12. octo.com
GRAPH
Q
LO
CTO
TECHNO
LO
GY
Bonnes pratiques de design.
Éviter les champs nullables
Par défaut, il est préférable de définir des
arguments et des champs non-nullables
(signalés par un point d’exclamation)
pour éviter aux clients de devoir coder
défensivement.
Exceptions :
- Ajout d’un champ à un type ou à une
opération (pour éviter un breaking change) ;
- Champs dépendant d’une source
susceptible d’échouer (appel réseau) pour
éviter les échecs en cascade.
Pas de verbe dans les Query (contrairement
aux mutations)
Repeat yourself
Trop réutiliser le même type peut mener à des incohérences
et rendre votre API moins évoluable. Dans le doute, mieux
vaut se répéter.
type Spaceship {
pilot: SpacePilot!
}
type Raceship {
pilot: RacePilot!
}
destroyPlanet(planetId: ID!) : DestroyPlanetReturn
planet(id: ID!)
destroyPlanetById(id: ID!)
destroyPlanetByName(name: String!)
destroyPlanet(planetId: ID!) : Planet
fetchPlanet(id: ID!)
getPlanet(id: ID!)
destroyPlanet(id: ID, name: String)
type Spaceship {
pilot: Pilot!
}
type RaceShip {
pilot: Pilot!
}
Éviter les opérations fourre-tout
13. octo.com
GRAPH
Q
LO
CTO
TECHNO
LO
GY
OCTO Technology
“ Dans un monde complexe aux ressources finies, nous recherchons ensemble de meilleures
façons d'agir. Nous œuvrons à concevoir et à réaliser les produits numériques essentiels au
progrès de nos clients et à l'émergence d'écosystèmes vertueux”
– Manifeste OCTO Technology -
CABINET DE CONSEIL ET DE RÉALISATION IT
Paris
Toulouse
Hauts-de-France
IMPLANTATIONS
1OOO
OCTOS
OCTO EN TÊTE
DU PALMARÈS
3 CONFÉRENCES
FORMATION
La conférence tech par OCTO
3
6x