Introduction
L'un des principaux défis auxquels sont confrontés les développeurs lors de la gestion d'infrastructures est la fragmentation des services et des protocoles. Chaque fournisseur de services propose son propre langage, ses propres outils de configuration et ses propres API, ce qui rend difficile l'intégration et la gestion de plusieurs services.
Contexte Technique
Les outils tels que Terraform, SST et Pulumi ont tenté de résoudre ce problème en proposant des couches d'abstraction pour gérer les infrastructures. Cependant, ces solutions ne résolvent pas le problème de base, qui est l'absence d'un langage commun pour décrire les services et leurs capacités.
Les langages de programmation tels que Swift, Go et Haskell ont résolu ce problème en proposant des mécanismes tels que les protocoles, les interfaces et les typeclasses, qui permettent de définir des contrats pour les services sans se soucier de leur implémentation concrète.
Analyse et Implications
L'absence d'un langage commun pour les services entraîne une fragmentation et une dépendance à l'égard des fournisseurs de services. Les outils qui tentent de résoudre ce problème doivent recourir à des solutions de force brute, telles que la mise en cache de toutes les intégrations et la maintenance de toutes les mappings.
L'utilisation de l'IA pour pallier ce problème peut masquer le problème sous-jacent, mais ne le résout pas. Les agents IA peuvent lire les documents, déterminer l'authentification et générer des appels API, mais cela reste une solution de force brute.
Perspective
La solution proposée par OpenBindings est une spécification ouverte pour décrire les capacités des services, portable sur tous les protocoles et les environnements. Le cœur de cette spécification est un document appelé OBI (OpenBindings Interface), qui définit les opérations que peut effectuer un service, ainsi que les schémas d'entrée et de sortie.
Les services peuvent publier leur OBI à une adresse bien connue, ce qui permet aux outils de les découvrir et de les utiliser sans connaissance préalable. Cela permet de séparer la signification de l'accès et de rendre les services interchangeables.