Chez Iguane Solutions, la culture DevOps fait partie intégrante des membres de l’équipe Technique. Quand nous devons créer une infrastructure cloud, nous utilisons des outils “d’Infra as Code” qui facilite le déploiement et qui sont intégrables dans nos pipelines de CI/CD. Nous avons choisi pour cela un des outils les plus utilisés par la communauté: Terraform.

Terraform est développé depuis 5 ans par Hashicorp. Cet outil “open-source” propose un large catalogue de “provider” qui permettent de

  • Décrire l’infrastructure à implémenter sur des Cloud Public ou sur des technologies courantes de cloud “Privés” comme OpenStack ou VMware
  • Gérer directement des applications ou des Services SaaS: gestion de projet ou de groupes sur Gitlab
  • Gérer des ressources sur des fournisseurs de CDN comme Cloudfare

Aussi quand nos ingénieurs créent des infrastructures sur des clouds publics ils utilisent déjà Terraform. Quand nous devons mettre en place une infrastructure cloud sur notre Cloud Iguane, nous souhaitons donc pouvoir utiliser aussi Terraform. Le cloud Iguane, IG1 Cloud, s’appuie sur  OpenNebula pour gérer des noeuds KVM et la partie stockage. Malheureusement, il n’existe pas, à ce jour, de provider officiel Terraform pour OpenNebula.

Pour cette raison, les membres de notre Team IaaS ont recherché sur github si d’autres “DevOps” n’avaient pas commencé le développement d’un tel provider. Devinez quoi ? Nous avons trouvé un projet initié par Runtastic, puis amélioré par Blackberry. Mais ces deux projets sont assez anciens, pas vraiment maintenus et surtout se basent sur une version ancienne d’OpenNebula. De plus, depuis la création de ces projets, OpenNebula a intégré une API en GO, appelée “Goca”. Terraform étant développé en Golang, les développeurs de l’équipe IaaS d’Iguane Solutions ont choisi de développer un provider Terraform en s’appuyant sur la Goca.
En tant que contributeur à la Goca, et grâce à notre travail sur le provider Terraform que nous utilisons en interne depuis, OpenNebula nous a contacté il y quelques semaines pour initier les démarches auprès de Terraform pour que notre provider deviennent le provider Officiel. Cet email nous a rendu extrêmement fiers et nous avons été ravis d’accepter la proposition. Depuis lors, le provider a déjà été ajouté au catalogue des OpenNebula Add-on et il est disponible ici 

Aujourd’hui nous sommes donc capable d’écrire des fichiers textes suivant la syntaxe HCL (HashiCorp Configuration Language). HCL est un langage de programmation spécifique assez proche du JSON développé par Hashicorp. Ces fichiers contiennent la description des ressources nécessaires aux infrastructures quelque soit le ou les cloud(s) sur lesquels les déployer. Grâce à cet unique fichier, nous pouvons créer une infrastructure multi-cloud avec une simple commande terraform apply!

Découvrez nos offres sur https://www.iguanesolutions.com/services/cloud_solutions