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é à 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.