Avec l'adoption du DevOps, les entreprises ont reconnu qu'en décalant les décisions et les tâches plus tôt dans le cycle de développement, elles pouvaient identifier et réduire les risques dans leurs projets de développement. Ce processus est souvent désigné par le terme de "shifting left" (déplacement à gauche). Par conséquent, les développeurs modernes sont invités à aller plus loin pour livrer des fonctionnalités à leurs clients. Ils doivent concevoir des architectures logicielles évolutives, développer un code sécurisé et performant, configurer l'infrastructure, effectuer des tests, déployer et surveiller leurs applications, et bien plus encore. Bien que cette approche offre de nombreux avantages, elle laisse également aux développeurs moins de temps à consacrer à l'écriture de code, ce qui peut entraîner des effets indésirables sur la qualité des logiciels ou retarder le lancement de nouvelles fonctionnalités.
De la même manière que les ingénieurs DevOps se concentrent sur l'optimisation de la livraison de logiciels aux clients externes, en tant qu'ingénieur de plate-forme, votre objectif est de créer une plate-forme pour offrir des expériences fluides et cohérentes à vos clients internes (en d'autres termes, les développeurs). À quoi ressemble la création d’une plate-forme interne ? Votre tâche quotidienne doit impliquer la création d'expériences standardisées pour vos développeurs, favorisant l'autonomie. Vous réduisez ainsi la surcharge cognitive de vos clients internes lors du développement et du déploiement de nouveaux services. Une plate-forme de développement interne intègre certaines décisions, normes et processus afin de proposer des voies optimales aux développeurs. Vos développeurs peuvent ainsi se concentrer sur le codage, ce qui leur permet de créer de meilleures expériences logicielles pour leurs clients. En d'autres termes, en plus de se déplacer vers la gauche, les organisations devraient également "se déplacer vers le bas" (shift down) et repousser les limites de la responsabilité sur leur plate-forme :
Lorsque vous développez des API afin que vos développeurs puissent exploiter pleinement vos plates-formes, vous devez :
Pour être efficace, une application doit proposer des produits et des services de manière cohérente et réfléchie. Elle doit masquer la complexité, et elle doit être fluide et agréable à utiliser. L'objectif final doit toujours être d'offrir une expérience de qualité aux utilisateurs, et les organisations qui créent des produits performants partent toujours de "l'extérieur vers l'intérieur", principalement en gardant leurs utilisateurs à l'esprit. Pour offrir une expérience de qualité, les développeurs doivent pouvoir créer des applications inspirantes. Pour cela, il est essentiel de leur fournir des API de qualité. Les API de qualité permettent d'éliminer les complexités de l'organisation, ce qui permet aux développeurs de se concentrer sur la création de l'expérience utilisateur. Cependant, les meilleurs API n'apparaissent pas par magie. Ces organisations considèrent également leurs API comme des produits numériques, consacrant des équipes entières à la création et à la gestion de leurs plates-formes.
La plate-forme qu'un développeur utilise pour créer des produits numériques doit également être traitée comme un produit. À ce titre, les équipes d'ingénieurs de la plate-forme doivent également adopter une approche de l'extérieur vers l'intérieur avec leurs utilisateurs (les développeurs) pour comprendre leurs exigences et leur offrir une expérience agréable. En tant qu'ingénieurs de plate-forme, vous êtes responsable de la création, du développement et de l'unification des modèles et outils internes dont vos développeurs se serviront pour concevoir des logiciels, qu'ils développent des applications d'interface, des services de backend ou qu'ils produisent et utilisent des API. Le rôle de votre équipe est d'établir la façon dont le logiciel créé par votre organisation doit être testé, sécurisé, déployé et géré. Décloisonner les données permet d'améliorer la création d'API.
Comme pour d'autres aspects du développement logiciel, votre équipe doit décourager les développeurs de recréer individuellement des éléments d'architectures d'API qui posent problème à tous les niveaux. Proposez-leur plutôt un ensemble d'outils et d'options de configuration simples qu'ils peuvent exploiter immédiatement. Parmi les aspects les mieux gérés de la gestion des API par votre plate-forme, citons les suivants (liste non exhaustive) :
Apigee est une plate-forme de gestion d'API qui fournit aux équipes en charge de la plate-forme et à leurs clients internes un ensemble de fonctionnalités leur permettant de créer, gérer et exploiter les API plus efficacement :
Apigee aide les producteurs d'API à créer et à gérer les API qui exposent leur logique métier en fournissant aux développeurs des couches supplémentaires de sécurité, de découverte et d'observabilité. Les équipes produit peuvent regrouper et publier leurs API sous forme d'ensembles flexibles de "produits", avec des comportements de consommation différents. Apigee permet également aux utilisateurs d'API de découvrir facilement les produits d'API disponibles, de consulter la documentation et de les intégrer rapidement afin de commencer à développer des applications en toute simplicité. Aujourd'hui, avec l'aide de l'IA générative, Apigee réinvente le mode de développement des API, ce qui permet aux développeurs expérimentés comme aux nouveaux de gérer facilement les communications entre leurs systèmes.
Le processus de gestion des API dans Apigee commence par la création de proxys d'API. Un proxy d'API expose l'interface que les développeurs utilisent pour accéder aux services de backend. Plutôt que de consommer directement ces services, ils accèdent à un proxy d'API Apigee créé par le producteur. Avec un proxy, vous pouvez dissocier votre backend de l'API proprement dite, ce qui offre à votre client une expérience plus fiable. Vous pouvez ainsi mettre à jour et modifier votre backend sans affecter votre client. Les équipes API peuvent exploiter les fonctionnalités fournies par le proxy pour sécuriser et contrôler le comportement de leurs API. Pour qu'un programme d'API puisse évoluer à mesure que le nombre d'équipes de production et de consommation augmente, la plate-forme doit permettre des voies optimales via des pipelines d'automatisation fluides et des fonctionnalités réutilisables.
Imaginons que votre entreprise souhaite créer des API qu'elle peut monétiser pour générer des revenus supplémentaires. Votre équipe rencontre les développeurs afin d'élaborer une stratégie complète de création de ces nouvelles API. La tâche de votre équipe consiste à prendre ces exigences et à les standardiser sous la forme de modèles d'API avisés contenant des règles communes, des contrôles de routage du trafic et des conventions de gestion des exceptions. Selon le cas d'utilisation, il peut exister des ensembles de modèles pour couvrir chaque cas. Un cas d'utilisation courant pourrait consister à fournir des règles de mise en cache ou de transformation pour les anciens backends exécutés dans des environnements sur site. Le dépôt apigee-samples est idéal pour commencer, et notre dépôt DevRel contient également des exemples de modèles de proxy à titre de référence. En plus des modèles de règles, vos équipes chargées des plates-formes peuvent également standardiser les pipelines que vos développeurs utiliseront pour créer et déployer leurs proxys. Apigee propose des API et des outils de gestion que vous pouvez exploiter pour créer des pipelines CI/CD compatibles avec ces voies optimales. Nous avons publié des implémentations de référence que vous pouvez utiliser comme point de départ.
Un pipeline de proxy d'API MVP à partir du code source peut ressembler à ceci :
Pour aller plus loin, le pipeline peut enregistrer l'API dans un catalogue interne, tel que le hub d'API d'Apigee. Le hub d'API est un outil qui aide les entreprises à documenter, rechercher et publier des informations sur leurs API. Le registre intégré au hub contient des informations détaillées sur chaque version d'une API au fil de son cycle de vie, y compris les spécifications associées, les déploiements en cours, les informations de propriété et les coordonnées, les dépendances, etc. En plus des propriétés intégrées, les clients peuvent définir leurs propres taxonomies que les utilisateurs peuvent rechercher et filtrer. Pour renforcer davantage la qualité et la cohérence, le hub d'API propose également des tableaux de données qui permettent aux développeurs de mieux comprendre comment leurs conceptions d'API se situent par rapport aux normes attendues. Le registre du hub d'API peut être synchronisé avec des portails de développeurs internes, tels que Backstage ou d'autres outils internes de la plate-forme de développement.
Enfin, pour les utilisateurs externes, le pipeline peut publier des produits d'API sur un portail d'API public, ainsi que de la documentation et des guides utilisateur supplémentaires, le tout avec un style et un branding personnalisés.
Lorsque vous créez des API à grande échelle, il est recommandé de réutiliser les règles communes pour accélérer le développement et réduire les délais de livraison. Dans Apigee, les flux partagés vous permettent d'appliquer la standardisation et la cohérence entre vos API. Avec les flux partagés, vous pouvez combiner des règles et des ressources, et les partager entre plusieurs proxys d'API à l'aide d'une règle FlowCallout ou de hooks de flux. Les flux partagés sont souvent développés séparément des proxys d'API, généralement par l'équipe en charge de la plate-forme ou par des experts en la matière responsables de certains domaines. Par exemple, vous pouvez développer un flux partagé qui capture un ensemble standard de champs de requêtes et de réponses et les écrit dans Cloud Logging. Il peut également s'agir d'un flux de gestion des exceptions qui génère des messages d'erreur et des codes standardisés, ou d'un flux d'authentification qui s'intègre à un fournisseur d'identité tiers. Le développement de flux partagé peut être automatisé, testé et déployé à l'aide des mêmes outils et concepts que les proxys d'API. D'autres exemples de flux partagés courants sont disponibles sur cette page.
GitOps a gagné en popularité lors de la montée en puissance du DevOps. Ce framework s'appuie sur des bonnes pratiques, telles que l'utilisation du contrôle des versions via Git, les demandes d'extraction, les pipelines CI/CD, l'automatisation et les règles de conformité. Consultez ce blog qui présente en détail les bonnes pratiques de diffusion d'API. Ces pratiques peuvent être intégrées à des parcours de type voies optimales pour les développeurs. Par exemple, un développeur peut concevoir une API à l'aide de Duet AI pour créer une spécification OpenAPI avant de la transférer vers une branche de fonctionnalité, ce qui déclenchera une demande d'extraction. Une fois la demande d'extraction approuvée et fusionnée, le pipeline CI/CD est automatiquement lancé, et le processus est répété pour chaque environnement. Dans Apigee, les équipes dédiées à la plate-forme peuvent créer des organisations et des environnements distincts pour déployer et tester les proxys à mesure qu'ils progressent dans le cycle de développement. À l'aide d'une stratégie GitOps, chaque branche du dépôt Git peut être mappée à un environnement Apigee.
Les clients qui utilisent le modèle de paiement à l'usage d'Apigee ont le choix entre différents types d'environnements aux capacités différentes et peuvent créer différents types d'environnements pour différents cas d'utilisation.
En hébergeant votre proxy et votre code de flux partagé dans des dépôts sources et en utilisant GitOps, vous pouvez créer des voies optimales avisées pour vos développeurs d'API, leur permettant de se concentrer sur la conception d'API de qualité et sur la mise en œuvre de la logique métier sous-jacente. Pour faciliter encore plus la tâche, les développeurs peuvent également développer et tester en local à l'aide du plug-in Cloud Code pour VS Code.
Grâce à une meilleure collaboration entre le développeur et l'équipe chargée de la plate-forme, le développeur n'a plus à se charger de tout faire. En réduisant la complexité, le développeur peut se concentrer sur ce qu'il fait de mieux, ce qui se traduit par une meilleure expérience pour le client. Considérer vos API et votre plate-forme comme des produits de votre organisation augmentera l'autonomie, la rapidité, la qualité et l'innovation. En appliquant les stratégies décrites ci-dessus, vous pouvez réduire le temps passé par vos développeurs et les aider à créer de meilleures API. Prêt à vous lancer ? Vous pouvez vous inscrire et commencer à créer des applications dans votre propre bac à sable gratuitement. Vous souhaitez obtenir plus d'informations sur les tarifs ? Découvrez les nouveaux tarifs d'Apigee et nos ressources pour commencer à intégrer la gestion des API à votre plate-forme de développement.