Adopter Kubernetes pour faciliter la portabilité applicative ? Voilà une idée loin d'être dénuée d'intérêt mais qui pourrait dans la réalité se révéler problématique. C'est en tout cas l'avis des analystes du Gartner Marco Meinardi, Richard Watson et Alan Waite dans un rapport auquel ont eu accès nos confrères de The Register. « En utilisant Kubernetes, vous échangez simplement une forme de verrouillage pour une autre, en particulier pour une forme qui peut réduire les coûts de commutation en cas de besoin », indiquent les analystes. « Utiliser Kubernetes pour minimiser le verrouillage des fournisseurs est une idée intéressante, mais une telle couche d'abstraction devient simplement un autre point de verrouillage. Au lieu d'être enfermé dans l'environnement d'infrastructure sous-jacent, vous êtes désormais enfermé dans la couche d'abstraction ».
Pour faciliter la portabilité applicative - et surtout la rendre possible - des dizaines de fournisseurs avaient eu l'occasion de rejoindre un programme de certification Kubernetes Conformance dès 2017 pour garantir que différentes applications puissent facilement basculer d'un cluster K8S vers un autre. De Alibaba à Microsoft, en passant par IBM, Red Hat et bien sûr Google, de très nombreux éditeurs proposent des produits certifiés garantissant que l'API Kubernetes - qui permet aux développeurs de configurer des tâches d'orchestration par programmation - fonctionnera de manière cohérente. Objectif : faciliter la vie des développeurs pour déplacer les charges de travail entre différents environnements et éviter au maximum le lock-in. Mais la réalité semble décidément un peu plus compliquée.
« Plus une instance de calcul est spécifique à un fournisseur, moins elle a de chances d'être portable »
« Bien que les couches d'abstraction puissent être intéressantes pour la portabilité, elles ne présentent pas des fonctionnalités complètement identiques des services sous-jacents - elles les masquent ou les déforment souvent. En général, l'utilisation de couches d'abstraction en plus des services de cloud public n'est guère justifiée lorsque les organisations accordent la priorité au délai de rentabilisation et au délai de mise sur le marché en raison de leurs frais généraux et de leur incongruence de service », poursuivent les analystes du Gartner. « Plus une instance de calcul est spécifique à un fournisseur, moins elle a de chances d'être portable de quelque manière que ce soit», écrivent les analystes dans un billet. « Par exemple, l'utilisation d'EKS sur [AWS] Fargate n'est pas certifiée CNCF et peut-être même pas Kubernetes standard. Il en va de même pour les nœuds virtuels sur Azure tels que mis en oeuvre par les ACI. »
Le défi de la portabilité applicative appliqué aux environnements Kubernetes n'est pas nouveau. L'analyste Lawrence Hecht, auteur pour The New Stack, avait déjà eu l'occasion de se pencher sur la question en faisant savoir que si les entreprises voulaient se prémunir du lock-in et entrer de plain pied dans l'ère de la portabilité applicative, elles n'avaient pas besoin de Kubernetes pour le faire. Même son de cloche du côté du consultant tech Paul Johnston qui avait aussi pu indiquer que, selon lui, le souci d'échapper au lock-in ne devrait pas « automatiquement pousser à l’adoption de Kubernetes. Les monolithes sur serveurs virtuels offraient une bonne portabilité. Je dirais même que Kubernetes offre moins de portabilité ».
Adosser un gestionnaire K8S tiers
En termes de coût également de la portabilité des applications, la question se pose : « Il est possible de rendre les applications moins dépendantes du lock-in en utilisant intelligemment certaines API Kubernetes. Mais en général, on n’obtient pas la portabilité dans le cloud gratuitement avec un Kubernetes brut », avait eu l'occasion de prévenir Neal Gompa, technologue professionnel et ancien ingénieur Devops chez Datto.
Et les analystes de Gartner d'avertir : « Si vous n'adoptez Kubernetes que pour activer la portabilité des applications, vous essayez de résoudre un problème en vous attaquant à trois nouveaux problèmes que vous n'aviez pas déjà rencontrés [...] Une plus grande abstraction est une approche légitime pour éviter le verrouillage d'un modèle de consommation et d'un fournisseur Kubernetes spécifiques. Cette approche suggère d'utiliser un gestionnaire Kubernetes tels que D2iQ Kommander, Giant Swarm, Google Anthos, Platform9, Rancher, VMware Tanzu Mission control ou similaire. »