Passer

Crossplane, un tournant majeur pour votre stratégie multi-cloud

Le précédent a été créé. Les organisations réalisent rapidement qu’une stratégie multi-cloud est la meilleure façon d’avancer. Elle leur permet de rester agiles, d’éviter le verrouillage des fournisseurs, d’exécuter leurs charges de travail de manière plus optimale, de reprendre le contrôle de leur infrastructure et de répondre à des exigences strictes en matière de conformité. 

Maintenant que les grandes marques adoptent l’ère du multi-cloud, nous voyons arriver sur le marché une nouvelle vague d’outils de couche d’abstraction. Tous ces outils promettent de faciliter le fonctionnement homogène de toutes ces pièces mobiles.

Parmi cette nouvelle génération d’outils de cloud computing figure Crossplane, créé en 2018 par Upbound, c’est une plateforme de gestion de l’infrastructure cloud basée à Seattle.

Qu’est-ce que le Crossplane ?

Commençons par une définition basique : Crossplane est un plan de contrôle multi-cloud open-source. En tant que module complémentaire de Kubernetes, Crossplane exploite l’API de Kubernetes. Il vous permet d’étendre un cluster Kubernetes pour approvisionner, gérer et orchestrer l’infrastructure, les services et les applications cloud.

Crossplane s’appuie sur les building blocks suivants : Packages, Providers, Managed Resources et Composite Resources.

Selon la personne à qui vous demandez son avis, vous rencontrerez soit de l’intrigue suivie d’une excitation face aux possibilités, soit du scepticisme et de la réticence. Tout dépend en fait de l’opinion des gens sur les écosystèmes Kubernetes et de leurs préférences personnelles pour les outils familiers qui existent déjà – comme HashiCorp Terraform – afin de réaliser certaines tâches.

Qu’est-ce qu’un plan de contrôle et pourquoi avons-nous besoin d’un plan « universel » ?

Pour répondre à cette question, posons-en une autre : Comment gérer l’infrastructure, les services et les applications du cloud ? Les gens sont prompts à pointer vers leur interface de ligne de commande (CLI), qui interagit avec une interface de programmation d’applications (API).

Mais comme l’explique Viktor Farcic, défenseur des développeurs d’Upbound, « les API ne sont qu’un intermédiaire entre nous et la réalité – et cette réalité, c’est un plan de contrôle« .

Il poursuit en précisant que quelle que soit la plateforme que nous utilisons pour exécuter une CLI (AWS, GCP, Azure, Alibaba, Terraform, Kubernetes, etc.) afin d’envoyer des informations sur les états souhaités à l’API, en coulisses, le travail réel est effectué par un plan de contrôle. Les plans de contrôle « savent ce qu’il faut faire, quand il faut le faire et comment le faire – quel que soit ce ‘il’« .

Il n’est pas surprenant que chaque plateforme dispose d’un plan de contrôle propriétaire. Mais le problème de la nature propriétaire est que nous ne pouvons pas voir les détails du code. À l’exception de Kubernetes et de quelques autres, la plupart des plans de contrôle n’ont jamais été conçus ou destinés à être modifiés pour répondre à nos besoins. Ils sont cachés. Cela devient un problème lorsque vous adoptez une stratégie multi-cloud et que vous avez de multiples plans de contrôle

Crossplane a été conçu pour unifier les plans de contrôle, vous donner de la visibilité et du contrôle, tout en supprimant la complexité inutile. En tant que plan de contrôle open-source convivial pour les développeurs, c’est le plan de contrôle qui convient à tout le monde. Il est adapté aux cas d’utilisation définis par l’organisation plutôt que par le fournisseur.

Pourquoi Crossplane utilise-t-il l’API Kubernetes ?

Kubernetes, également connu sous le nom de K8s, est un « système open-source permettant d’automatiser le déploiement, la mise à l’échelle et la gestion d’applications conteneurisées ». Il a acquis le statut de plateforme standard d’orchestration de conteneurs.

Kubernetes connecte des applications autonomes sur plusieurs hôtes de manière hautement disponible, évolutive et mobile. Il a joué un rôle déterminant dans le passage à des plans de contrôle centrés sur les API, qui constituent le moyen privilégié de gérer les tâches dans des environnements hautement distribués.

Un article de The New Stack explique : « Des serveurs bare-metal aux machines virtuelles en passant par les appareils de l’internet des objets (IoT) et les services cloud gérés, Kubernetes est allé au-delà des conteneurs et des pods pour relever de multiples challenges de provisionnement et de planification. »

Crossplane s’appuie simplement sur l’API Kubernetes en tant qu’API unique pour tout gérer.

Selon le blog de Crossplane, « Kubernetes a démontré la puissance d’un plan de contrôle bien architecturé avec une excellente API. L’industrie commence à remarquer que ce plan de contrôle peut être utilisé pour faire bien plus qu’orchestrer des conteneurs, et cherche de plus en plus à utiliser le plan de contrôle de Kubernetes pour gérer l’ensemble de ses infrastructures. »

Mais quoi qu’il en soit, ne confondez pas Kubernetes et Crossplane, car ce dernier opère sur une couche différente. Crossplane est construit sur les fondations de Kubernetes et est un orchestrateur d’ordre supérieur.

Dois-je utiliser Kubernetes ?

Oui, mais seulement dans le sens suivant : vous devez faire tourner un cluster Kubernetes pour exécuter Crossplane – c’est le seul prérequis. Crossplane est conçu pour être natif de Kubernetes et fonctionner à l’intérieur de Kubernetes. Mais il est capable de gérer des choses complètement extérieures à Kubernetes, de sorte que votre écosystème n’est certainement pas limité à ce dernier.

La bonne nouvelle, c’est que vous pouvez mettre en place un cluster Kubernetes en quelques minutes, et grâce à sa large adoption et à sa banalisation, il existe de nombreuses façons de le faire. Localement, vous pouvez utiliser Docker Desktop, minikube ou KIND ; les exemples de fournisseurs de cloud comprennent Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS) et Azure Kubernetes Service (AKS) ; tandis que RedHat OpenShift, VMWare Tanzu et Rancher s’adressent à la clientèle d’entreprise.

Quels sont les avantages à l’utilisation de Crossplane ?

Crossplane possède un certain nombre de fonctionnalités et, selon le cas d’utilisation, certains avantages seront privilégiés par rapport à d’autres. Passons en revue quelques-uns d’entre eux :

  • Pas besoin d’écrire du code : Avec crossplane, vous pouvez construire un plan de contrôle « sans avoir à écrire un code de système distribué compliqué« . Il est déclaratif et vous pouvez définir, composer et proposer vos propres abstractions d’API d’infrastructure au-dessus des primitives de services cloud. Il est donc hautement configurable.
  • Favorable aux développeurs : en s’appuyant sur Kubernetes, Crossplane tire parti d’une API favorable aux développeurs. De plus, en le combinant avec Argo CD ou Flux, vous pouvez appliquer les principes GitOps dans toute leur splendeur – en combinant l’orchestration, l’observabilité, l’IaC déclaratif, les conteneurs, l’infrastructure immuable et les meilleures pratiques DevOps en utilisant GitOps comme source unique de vérité.
  • Prêt à la production : En tirant parti de Kubernetes comme moyen d’architecturer et d’exécuter des applications distribuées, vous disposez d’un plan de contrôle qui peut être exploité de manière hautement disponible. Votre plan de contrôle universel vous offre tous les avantages de Kubernetes. Son backend hautement extensible vous permet d’orchestrer les applications et l’infrastructure, quel que soit l’endroit où elles s’exécutent.
  • Détection des dérives et synchronisation : En termes concis, « si quelque chose se casse, … Crossplane examinera et corrigera l’état« . Cela est également possible grâce aux fonctionnalités natives de Kubernetes. Lorsque Crossplane détecte une dérive par rapport à l’état souhaité, il l’identifie et la résout.
  • Répond à la fois aux besoins des équipes Infra Ops et App Opps : Grâce à ses compositions, Crossplane satisfait à la fois les équipes Infra Ops et les équipes App Ops. Comme l’explique un article, alors que les équipes Infra Ops « savent comment provisionner les composants spécifiques aux fournisseurs de cloud, les équipes App Ops connaissent les exigences de l’application et comprennent ce qui est nécessaire du point de vue de l’infrastructure de l’application« . Avec Crossplane, les équipes Infra Ops « peuvent définir ces configurations complexes dans le fournisseur de cloud et exposer des interfaces simplifiées pour les équipes App Ops … qui sont intéressées par des moyens simples de provisionner les composants de l’infrastructure des applications« . Crossplane Compositions rend également ce plan de contrôle plus accessible aux personnes qui ne sont peu investies dans Kubernetes.

Nous pourrions dire encore beaucoup de choses sur Crossplane, mais terminons sur une note amusante.

Le logo de Crossplane est une glace multicolore. Lorsqu’on lui demande quelle est la signification de ce logo, Crossplane répond : « Nous croyons en un nuage multi saveurs« .

Nous pensons qu’il s’agit là d’une excellente façon d’aborder un ensemble de technologies multi-cloud.

Comment en savoir plus ?

Cet article fait partie d’une série plus importante centrée sur les technologies et les thèmes abordés dans la première édition du TechRadar de Devoteam. Pour en savoir plus sur ces sujets, veuillez télécharger le TechRadar.

En savoir plus sur Crossplane ?

Consultez notre TechRadar pour savoir ce que nos experts pensent de sa viabilité sur le marché.