Visualisation Manga des Outils d'Infrastructure AWS

Terraform, CloudFormation, SAM, Pulumi : Quel Outil d'Infra as Code pour Votre Projet AWS ?


Terraform, CloudFormation, SAM, Pulumi : Quel Outil d'Infra as Code pour Votre Projet AWS ?

Commençons l’année avec un petit feedback personnel sur les outils d’infra as code disponibles pour AWS. Liste non exhaustive, je ne parle que de ce que j’ai utilisé sur mes projets ou ceux de mes clients.

Terraform : Le Géant Polyvalent

Le plus connu et le plus répandu des outils. Longtemps open source (ce n’est plus le cas à ce jour), il s’utilise avec un langage propriétaire à la fois lisible et simple à prendre en main : le HCL. Terraform repose sur un système de modules permettant de facilement organiser les fichiers de son infrastructure. Bien utilisé, ces modules sont aussi hautement réutilisables de projets en projet (c’est le cas des autres outils dans cette liste, mais c’est bon à rappeler).

Depuis environ deux ans, HashiCorp a mis à disposition un CDK (Cloud Development Kit) permettant de décrire son infrastructure en Python / TypeScript. À titre personnel, je préfère le HCL pour Terraform. Le design du CDK me semble poussif, en particulier en comparaison avec Pulumi.

Terraform offre des fonctions particulièrement utiles pour le déploiement, par exemple une Prévisualisation des changements à appliquer à l’infrastructure ainsi qu’une gestion d’état facilement partageable entre DevOps.

Doté d’une énorme communauté, très documenté et ouvert aux autres services cloud, je dirais que c’est l’outil avec lequel on peut débuter quand on n'est pas spécialement attaché à AWS mais qu’on tient à comprendre ce que l’on déploie.

CloudFormation : La Solution Maison AWS

L’outil maison d’AWS, uniquement pour AWS.

C’est un service AWS pour les gouverner tous qui repose sur des fichiers de configuration en YAML (ou en JSON si c’est votre truc, je ne juge pas).

Assez efficaces, les fichiers peuvent très vite devenir verbeux, il faut alors les découpler, mais tout ça alourdit passablement la ‘maintenabilité’ et nous prive de fonctions très utiles pour le développement.

Le gros point fort: il n’y a pas de questions à se poser sur la gestion de l’état de l’architecture, c’est totalement intégré au service AWS. L’état est par ailleurs accessible via une interface web permettant aussi de retracer les changements et facilitant le débogage.

Probablement incontournable pour un certain nombre de services AWS, ce n’est pourtant pas mon outil favori.

La documentation nous a fait vivre de douloureux moments.

Serverless Application Model (SAM) : L'Atout Serverless d'AWS

Petit pas de côté, si le projet doit reposer sur une architecture AWS Serverless, alors AWS SAM est un outil à considérer. SAM est un outil en ligne de commande open source* qui simplifie la déclaration des ressources utilisées dans les applications Serverless : Lambda, API Gateway, DynamoDB…

En coulisses, SAM génère des templates CloudFormation et déploie ses infrastructures via cet outil.

Mais chez OCF, notre fonctionnalité préférée, c’est la capacité à reproduire localement l’exécution de composants cloud tels que les Lambdas et API Gateway. Le cycle de développement intégralement exécuté sans déploiement, en local.

Chez OCF, c’est sur cette techno que reposent nos SaaS Serverless. Avec le temps, nous avons perfectionné des templates que l’on utilise de projet en projet.

J’en reparlerai probablement dans plusieurs publications à venir.

  • L’outil est open source mais repose sur CloudFormation qui ne l’est pas.

Vous avez un projet de SaaS, explorez les solutions Serverless avec nous. Venez nous en parler ici.

Pulumi : L'Innovation Open Source en Infra as Code

Le plus récent de la liste. Totalement open source et dont on parle de plus en plus, il faut dire que l’outil a de quoi séduire.

Tout d’abord, la définition des infrastructures peut être faite dans divers langages de programmation : Python, TypeScript... Si on peut réduire le périmètre des technos à connaître pour maîtriser l’intégralité d’un projet, je suis toujours preneur.

Les templates à disposition permettent, en quelques lignes, de produire des environnements d’exécution applicatifs complets sur les plus grands fournisseurs Cloud.

On a la puissance du code pour décrire des infrastructures. Un besoin technique dans la description de l’infrastructure qui avec Terraform ou CloudFormation serait bien plus complexe à mettre en place sera comblé avec quelques lignes de code.

Comme Terraform, l’état est sauvegardé sous forme de fichiers que l’on peut facilement partager.

C’est un excellent outil pour débuter, mais il masque beaucoup d’actions et de configurations ce qui n’est pas l’idéal lorsque l’on veut monter en compétences sur les sujets de cloud computing.

Vous cherchez un expert AWS en Savoie ou n'importe où en France? Contactez-nous ici.

Copyright 2024 One Click Flare. All Rights Reserved

Designed By EnvyTheme