Qu'est ce que Terraform

Terraform logo

Qu'est ce que Terraform ?

Les avantages de Terraform ?

Sa simplicité d'utilisation, sa syntaxe claire basée sur HCL, sa grande communauté, et son intégration avec de nombreux fournisseurs de cloud et services.

Les inconvénients de Terraform ?

Peut être complexe pour les très grands environnements ou les scénarios très spécifiques, nécessite parfois des scripts complémentaires pour certaines tâches.

Les caractéristiques de Terraform

Commun

  • Utilité (fonction) : Terraform est utilisé pour définir et provisionner l'infrastructure IT via un code déclaratif, permettant de gérer et automatiser les infrastructures en tant que code (IaC).

  • Langue de programmation : Principalement écrit en Go.

  • Système d‘exploitation : Multiplateforme (fonctionne sur Windows, macOS, Linux).

  • Existe depuis : Terraform a été initialement publié en juillet 2014.

  • Licence : Mozilla Public License 2.0.

  • Développeur : HashiCorp et la communauté open source.

  • Communauté : Grande communauté active avec de nombreux contributeurs, forums, conférences (HashiConf), groupes d'utilisateurs, et ressources en ligne.

  • Performance générale : Très bonne, avec des performances optimisées pour la gestion et le provisionnement d'infrastructure à grande échelle.

  • Maintenabilité : Élevée, grâce à une gestion centralisée des configurations via des fichiers HCL (HashiCorp Configuration Language) et une documentation exhaustive.

  • Facilité d'apprentissage : Relativement facile, avec une syntaxe claire et déclarative ; de nombreuses ressources sont disponibles pour les débutants.

  • Configuration : Utilise des fichiers de configuration HCL pour définir les ressources, les modules et les infrastructures.

  • Documentation : Documentation exhaustive et officielle disponible sur le site terraform.io, ainsi que de nombreux livres et tutoriels en ligne.

  • Alternative : Alternatives incluent Ansible, Puppet, Chef, CloudFormation.

  • On l'aime pour : Sa simplicité d'utilisation, sa syntaxe claire basée sur HCL, sa grande communauté, et son intégration avec de nombreux fournisseurs de cloud et services.

  • On le déteste pour : Peut être complexe pour les très grands environnements ou les scénarios très spécifiques, nécessite parfois des scripts complémentaires pour certaines tâches.

  • Fréquence de mise à jour : Mises à jour régulières avec des versions mineures tous les quelques mois et des versions majeures tous les ans environ.

  • LTS : Non, Terraform ne propose pas de versions LTS officielles.

  • Maturité : Mature, avec plusieurs années de développement et d'utilisation dans de nombreux projets en production.

Langage

  • Moto et philosophie : "One framework. Mobile & desktop." – Fournir une plateforme unifiée pour le développement d'applications web modernes pour le bureau et le mobile.

  • Maintenabilité des développements : Élevée, grâce à une architecture basée sur des composants réutilisables et une gestion claire de l'état avec des bibliothèques comme Redux ou Context API.

  • Sécurité : Modérée, le typage statique aide à prévenir certaines erreurs, mais les vulnérabilités JavaScript peuvent toujours exister dans le code compilé.

  • Performance des applications : Très bonne, grâce au Virtual DOM qui minimise les opérations de manipulation du DOM réel.

  • Ecosystème : Vaste, avec de nombreuses bibliothèques, extensions et outils disponibles pour améliorer et étendre les fonctionnalités de base de ReactJS.

  • Conçu pour : Développement rapide et performant d'interfaces utilisateur interactives et dynamiques.

  • Type de sécurité : Sécurité basée sur les bonnes pratiques de codage en JavaScript et React.

  • Interropérabilité : Très bonne, avec de nombreuses APIs pour interagir avec d'autres technologies et services, ainsi que des modules pour l'interopérabilité avec du code natif.

  • Installation : Installation via npm ou yarn, souvent automatisée avec des configurations de projet.

  • Support multi-plateforme : Oui, fonctionne sur n'importe quel système d'exploitation avec un navigateur web moderne.

  • Indice TIOBE : Non applicable directement, mais JavaScript (utilisé avec ReactJS) est généralement dans le top 10.

  • Mode d'Exécution du Langage : Non applicable, mais utilise JavaScript qui est interprété. Le code source est exécuté directement par le moteur JavaScript du navigateur ou NodeJS. Peut aussi utiliser TypeScript qui est semi-compilé.

  • Typage : Non applicable, mais utilise TypeScript qui a un typage statique et fort. Les types sont déclarés dans le code et vérifiés à la compilation.

DevOps

  • Compatible Azure : Oui

  • Difficulté de mise en oeuvre : Modérée

  • Difficulté de maintenance : Modérée

  • Automatisation : Oui

  • CI/CD : Principalement utilisé pour du déploiement.