DevOps et IaC : l’essentiel sur Cycloid
La plateforme DevOps doit-elle être uniquement réservée aux équipes DevOps ? La startup française Cycloid pense que ce serait une erreur. Il faut l’ouvrir aux autres métiers des BU informatiques, selon son PDG.
Installée à Paris, la jeune société a été créée en 2015 par Benjamin Brial, un ancien commercial de Red Hat, spécialisé dans la vente des produits OpenStack et OpenShift. Comme LeMagIT l’a déjà évoqué, le fondateur porte une vision particulière de l’approche DevOps.
Cycloid se présente comme l’éditeur d’une plateforme de collaboration DevOps en cloud hybride. « L’enjeu est simple : c’est de répondre à la difficulté de recrutement des équipes DevOps », affirme Benjamin Brial. « Aujourd’hui, il existe plus de 250 000 postes ouverts sur LinkedIn pour recruter des personnes formées aux pratiques DevOps. Cela reste une mission impossible pour la majorité des entreprises ».
Dans un même temps, les sociétés ne maîtrisent pas pleinement cette approche. « Selon le “State of DevOps report 2021”, 80 % des organisations n’arrivent pas à “scaler” l’approche DevOps en interne. Et cela fait au moins cinq ans que ça dure », assure le fondateur et PDG de Cycloid.
Sans oublier la complexité des systèmes des ETI et des grands groupes, qui ont majoritairement opté pour des infrastructures (multi) cloud hybride. « Il y a de grosses problématiques autour de la gouvernance et de l’efficacité des opérations », considère Benjamin Brial. « La plupart des entreprises gèrent de manière isolée des instances AWS, GCP, Azure, Kubernetes ou encore VMware ».
Régler la problématique DevOps par la collaboration
Pour résoudre ces problèmes, Cycloid entend faire collaborer les équipes DevOps et les autres métiers de la DSI.
« Nous travaillons sur l’amélioration de l’expérience développeur. Il s’agit de permettre à tout non DevOps de pouvoir interagir avec tous les outils, tous les clouds et tous les processus sans avoir à monter en compétence », décrit Benjamin Brial.
Ces « non DevOps » sont des développeurs étrangers des pratiques DevOps des solutions architects, des membres des équipes FinOps, des spécialistes de la cybersécurité ou encore des Ops traditionnels.
« Environ 92 % des infrastructures sont on-premise. Elles reposent principalement sur OpenStack ou des solutions VMware. Ces gens qui gèrent des infrastructures ne sont pas forcément formés à l’approche DevOps, ne savent pas nécessairement administrer des infrastructures cloud ou de l’automatisation », remarque le fondateur de Cycloid.
La promesse de l’éditeur est de « pouvoir mettre en place la gouvernance, de continuer à travailler dans une approche GitOps et de faire en sorte de diminuer le nombre de tickets ouverts par les “non-sachants” ».
Les membres des équipes DevOps doivent pouvoir « se concentrer sur l’évangélisation des bonnes pratiques, l’amélioration de l’automatisation et le maintien en condition opérationnelle [des systèmes] », dixit Benjamin Brial.
Cycloid : un framework DevOps qui prend racine dans l’Infrastructure as Code
Cette solution modulaire - axée déploiement continu – est un assemblage de plusieurs projets open source.
La partie émergée de l’iceberg, c’est un portail en libre-service administré par les équipes DevOps et mis sur pied pour centraliser la gestion des infrastructures, des applications et des outils IT.
Cycloid a développé ce qu’il appelle des stacks établies sur les principes de l’Infrastructure as code et de la démarche GitOps. Depuis la plateforme, ces stacks sont des représentations visuelles de paquets préconfigurés et réutilisables. Il s’agit de déployer en quelques clics une VM, une instance cloud, un cluster Kubernetes, une base de données, un pipeline CI/CD, un VPC, une application, etc. Au besoin, les utilisateurs n’ont accès qu’à un nombre limité de paramètres personnalisables : une clé SSH, une taille d’instances ou encore un type de disque dur.
Techniquement, une stack est « un moyen de bâtir et d’organiser une Infrastructure as Code » et les fichiers nécessaires à sa mise en place. Cette stack repose sur un dépôt Git public ou privé contenant deux branches. L’une est nommée stack. Elle comporte des fichiers de configuration communs à tous les environnements sur lesquels l’application sera déployée. L’autre branche, intitulée config, inclut tous les éléments de configuration nécessaires à un environnement.
Par exemple, des fichiers configs peuvent être créés pour déployer le service dans un environnement de développement, de test ou de production ou bien sur différents clouds. Chaque stack est associé avec un fichier YAML cycloid.ml : celui-ci fournit une description des éléments et l’usage de la stack. Ensuite, le fichier pipeline.yml, associé au concept de Pipeline, décrit comment bâtir l’application, l’automatiser et la déployer.
Par défaut, le framework Cycloid s’appuie sur Git pour stocker et créer des versions des stacks ; sur Terraform afin de décrire l’infrastructure, les services utilisés et de déployer le code IaC ; sur Ansible pour déployer les applications configurées vers une cible et sur Concourse pour observer et planifier l’exécution des jobs CI/CD. Mais l’éditeur se veut agnostique des briques sous-jacentes. « Les entreprises peuvent s’appuyer sur les outils d’infrastructures as code, de gestion de configuration et de CI/CD de leurs choix », assure Benjamin Brial.
Benjamin BrialFondateur et CEO, Cycloid
« Nous ne sommes pas là pour imposer [des outils], nous sommes là pour faire en sorte que les entreprises puissent modifier et appliquer des éléments spécifiques à leurs organisations suivant leurs décisions », ajoute-t-il.
Terraform à toutes les sauces
Cycloid ne s’arrête pas là. Il pousse la fonctionnalité Infra Import. Depuis une UI, l’utilisateur extrait les fichiers de configuration en provenance d’instances AWS, Azure et GCP (« et bientôt OpenStack, Flexible Engine et VMware ») pour générer du code IaC. L’éditeur parle de « reverse Terraform ».
« Vous allez sur votre compte cloud, vous sélectionnez la région du compte existant. Cycloid scanne le compte et offre la possibilité d’importer ce compte et de générer pour le DevOps toute la partie Infrastructure as Code », explique Benjamin Brial.
« Infra Import va automatiquement générer la stack et le fichier config. Cela évite aux équipes d’écrire manuellement du code IaC pour des instances existantes », précise-t-il. Il y aura tout de même des ajustements à effectuer, mais le gain de temps observé est important, selon le responsable.
Cette fonctionnalité est le fruit du projet open source TerraCognita, libéré par Cycloid. Les commandes de ce CLI extraient les ressources IaC et de configurations spécifiques en provenance d’AWS, Azure Resource Manager et de GCP. Puis, ces éléments sont transformés en code HCL et en fichiers tf.state qui pourront être référencées dans le catalogue de ressources de la plateforme. Les variables comme les tailles d’instance peuvent être réinjectées dans la branche config du dépôt Git.
S’il semble plus intéressant que la fonction Terraform Import d’Hashicorp, le CLI open source Terraformer crée par Waze/Google bénéficie d’un plus large soutien et supporte davantage de technologies que TerraCognita. Originellement, Cycloid a fait le choix de développer son propre outil afin de « ne pas être fonction des décisions d’une autre entreprise », selon un post Reddit.
Outre l’interface utilisateur qui permet d’accéder aux catalogues de stacks, l’éditeur a développé en bêta StackCraft un outil WYSIWYG disponible depuis le cloud. StackCraft est utilisé pour configurer et associer en glisser-déposer des éléments d’infrastructure qui composent une stack. L’outil génère automatiquement le code IaC. Il n’est plus nécessaire de passer par un CLI.
Visualiser et gouverner
StackForms, lui, doit rendre visibles les variables d’environnement enregistrées dans les fichiers config. Au moment de déployer leurs instances, les utilisateurs peuvent ainsi être guidés dans la configuration des instances ou applications à déployer via des formulaires.
La plateforme fournit également une vue des pipelines et des flux CI/CD rattachés à une organisation via Concourse. Ces pipelines peuvent être modifiés, mis en pause ou relancer en cas de problème. Un code couleur représente les étapes et les défauts qui freinent ou stoppent l’exécution d’un pipeline.
Dans cette même optique de gouvernance, le projet open source InfraMap de Cycloid génère un graphe à partir des fichiers tf.state et HCL. Il représente les éléments clés d’une infrastructure cloud sur AWS, GCP, Azure, OpenStack et Flexible Engine.
Il s’agit de simplifier la visualisation des éléments habituellement fournie par Terraform Graph. InfraMap est à l’origine d’InfraView, afin de créer et de visualiser des diagrammes d’architectures applicatives. « Il s’agit d’obtenir un schéma d’architecture toujours à jour et d’avoir un inventaire des actifs sur les différentes infrastructures », précise Benjamin Brial.
Les administrateurs de la plateforme ont également la main sur la gestion des permissions, des rôles, l’accès aux stacks, les listes de variables disponibles, voire le contrôle des déploiements. Cycloid implémente pour cela le concept de Policy as Code. Ici, l’éditeur a choisi d’utiliser OPA (pour Open Policy Agent, mais à prononcer oh-pa), un moteur pour écrire des règles en Rego afin d’empêcher des usages indésirables, non sécurisés, mais aussi trop gourmands en ressource.
FinOps et mesure de l’empreinte carbone, l’avenir de Cycloid
C’est justement en rapport avec cette gestion des coûts que Cycloid a récemment développé des modules FinOps. La librairie open source écrite en Go nommée TerraCost ingère les tarifs des fournisseurs de cloud (AWS, GCP, Azure) dans une base de données MySQL pour estimer le coût d’un plan Terraform avant son exécution. Les résultats peuvent être affichés depuis l’interface de la plateforme DevOps.
Cycloid donne aussi une vue des coûts des différentes infrastructures cloud, après ingestion des données depuis les comptes des clients. Il est possible d’obtenir une visualisation des dépenses en dollar ou en euro par cloud, par région, par compte, par projet, par environnement, par service ou encore par ressource.
« Outre cette gestion des coûts, cela permet de fixer un cadre à l’utilisateur final pour qu’il soit autonome dans la gestion de ses projets », indique le PDG de Cycloid.
La gestion FinOps croise désormais la mesure des émissions carbone, un sujet qui intéresse de plus en plus les clients de Cycloid dans le cadre de leurs démarches RSE.
Benjamin BrialFondateur et CEO, Cycloid
« Nous sommes en train de développer un module pour estimer l’empreinte carbone des projets déployés on premise ou dans le cloud public », relate Benjamin Brial. « Il permettra de fixer des quotas carbone, en sus des quotas financiers. Par exemple, cela pourrait influencer le choix d’un fournisseur ou d’une région cloud en fonction des émissions GES estimées ».
Cette capacité sera présentée aux clients de Cycloid dès septembre 2022.
La plateforme Cycloid peut être déployée sur site ou en mode SaaS. L’éditeur propose une facturation par siège par mois ou au pourcentage de la consommation cloud annuelle.
« Les entreprises ont développé en interne un Cycloid Bis, mais c’est très difficile à administrer. Et elles ne peuvent pas y associer 50 à 100 personnes à plein temps », argumente Benjamin Brial.
Cycloid revendique une centaine de clients, principalement des grands groupes, des intégrateurs et des fournisseurs de services managés – « comme Accenture, OBS ou encore Capgemini qui sont également des partenaires » – ainsi que des scale-ups. Orange Business Services, Warner Bros, Actility, Cdiscount, la Croix-Rouge française ou encore Yves Salomon font partie des usagers de la plateforme DevOps. Après s’être développé en France, l’éditeur compte bien concrétiser les opportunités en Europe et aux États-Unis. « Nous avons nos premiers clients aux US et environ 70 % de nos prospects proviennent de l’étranger », informe le PDG.
En 2019, l’éditeur a levé 4,5 millions d’euros en fonds d’amorçage auprès d’Orange Ventures et BPIfrance.