Au fil des années, les Application Programming Interface ont gagné en souplesse, passant d’un modèle impératif, étroitement couplé entre chaque extrémité, à un modèle déclaratif par nature très découplé. Cela a été rendu possible en particulier par l’irruption des API RESTful, qui en facilitent l’intégration.
Mais ce qui n’a guère changé, c’est le domaine d’utilisation : les API demeurent encore étroitement associées au monde du développement d’applications : les développeurs « assemblent » bien souvent de nombreuses APIs afin de produire des services riches et puissants.
Mais une autre économie des API est en train de naître, cette fois dans le domaine des opérations. Il ne s’agit donc plus seulement de concevoir, mais bien d’exploiter – mieux et plus rapidement. Et dans ce domaine, le « A » de API signifie alors automatisation.
Ce que représentent les API dans le domaine opérationnel, c’est avant tout la capacité d’automatiser l’intégration, la configuration et le fonctionnement des services d’infrastructure et d’application. C’est pourquoi les interfaces – les API, donc – nécessaires pour soutenir les opérations devraient dès à présent se concentrer sur la simplification de l’automatisation.
Phase deux de la transition numérique
Cet objectif est important alors que les organisations entrent dans la deuxième phase de la transformation numérique et commencent à étendre l’automatisation à l’ensemble de leur chaîne de livraison et de déploiement des applications et des services.
Cela les a poussés à développer des processus cohérents, répétables et prévisibles qui incarnent le pipeline de déploiement d’une application, et c’est une base solide pour passer à la suite !
Un rapport de la société Kentik sur l’état de l’automatisation en 2019 a révélé que plus de la moitié des organisations (53 %) utilisaient déjà l’automatisation pour la configuration du réseau, et 40 % pour la gestion automatisée des politiques. Nos propres études montrent que ce pourcentage est beaucoup plus élevé, avec 86 % d’automatisation du réseau. La même source (notre étude sur l’état des services d’application) a également constaté une croissance de l’automatisation dans le pipeline de déploiement.
Bien entendu les outils utilisés par les organisations évoluent, et il faudra s’y adapter. Si Python reste l’une des options les plus populaires, nous constatons l’influence de l’approche DevOps et ses outils spécifiques, ainsi que des applications natives du cloud sur l’informatique.
Qu’est-ce que cela change ?
Le pipeline de déploiement est de plus en plus piloté par des outils comme Jenkins et Ansible et déclenché par des dépôts comme GitHub et GitLab Enterprise. La chaîne de livraison peut donc déjà être entièrement automatisée. Et bien dans le domaine des opérations, les infrastructures et les services applicatifs pourront eux aussi être déterminés par des systèmes, et non des personnes, qui invoqueront les API tout au long de la chaîne.
Il est donc impératif de concevoir des API opérationnelles en ayant clairement à l’esprit ce besoin d’automatisation. Et cela implique plusieurs considérations…
Premièrement, il peut être nécessaire d’examiner le système à partir duquel une API opérationnelle pourrait être invoquée. Les données disponibles auprès de Jenkins ou d’un référentiel seront sans doute très différentes de celles provenant des outils et services traditionnels d’automatisation des réseaux. Il pourrait alors être nécessaire de chercher des données en provenance d’autres sources, ou d’adopter, si possible, des valeurs normalisées par défaut.
Deuxièmement, il est essentiel que nous répondions au besoin d’une invocation des API par des « machines accréditées », distincte de l’invocation par des « utilisateurs accrédités ». Les moyens utilisés pour authentifier un humain sur une API (les clés API) peuvent certes être utilisés pour authentifier des machines, mais elles nécessiteront une certaine adaptation du côté opérationnel pour déployer, faire fonctionner et gérer correctement un système conçu pour maintenir des références de machines uniquement.
Cela reste néanmoins essentiel alors que nous nous dirigeons vers la troisième et dernière phase de la transformation numérique, où les services d’application et les opérations assistées par l’IA assumeront une plus grande part des charges opérationnelles.
C’est une bonne chose que nous puissions utiliser des outils pour créer des scripts à partir desquels les opérations peuvent être automatisées aujourd’hui. Mais il est important de reconnaître qu’à l’avenir, le A de l’API se rapportera presque exclusivement à l’automatisation – du moins dans le contexte des opérations.
___________________
Par Lori MacVittie, Principal Technical Evangelist, F5 Networks