Bonjour,
Je suis en train de pratiquer un benchmark pour déployer des infrastructures immuables et bien entendu les outils d'hashicorp sont dans le scope. Terraform est un orchestrateur dont l'idée est de faire de l'IAC de façon déclarative.
Il faut retenir qu'il prend son intérêt en l'associant avec d'autres outils comme packer et consul, c'est pourquoi la société hashicorp à pivoté et intégré sa solution entreprise s'appelant "Atlas" qui est en fait redevenu terraform de nom. Mais l'idée est de grouper ces services avec quelques fonctionnalités intéressantes qui prennent du temps à si l'on souhaite les établir avec la version open-source.
Pour les points négatifs je dirais que la compatibilité n'est pas vraiment ascendante car le projet est encore récent et plein de bonnes idées à développer. Il faut donc bien faire attention à préfixer ses versions pour les plugins et versionner l'ensemble.
Le concept tourne autour du stockage d'une configuration locale qu'il devient vite important de déplacer sur un backend, pour cela terraform fournit des backends comme S3 ou consul (cas d'un cloud hybride)
A mon avis je ne vois pas vraiment l'intérêt de basculer sur terraform si c'est pour ensuite travailler avec ansible qui peut également faire le travail lui même. Ces outils me semblent intéressant pour de l'infrastructure immuable, entre autre tu peux partir du principe que tu ne souhaites plus accéder à tes instances lorsqu'elles sont déployées. Ce qui simplifies la sécurité dans les VPC et oblige à travailler avec une bonne rigueur du côté de l'IAC.
Je travaille également sur une alternative avec kubernetes qui peut sembler plus pérenne mais la contrepartie est l'utilisation de containers et des problématiques de sécurité qui y sont liées.
Une VM dans les cloud les plus connus à tout de même un temps de démarrage considérable et c'est souvent également un problème à prendre en compte. Souvent la solution est de démarrer l'instance et de reconnecter les data une fois que cette dernière est prête.
J'ai également noté quelques ratages lors de certains déploiements (AWS et compatible Outscale) ce qui oblige à rajouter une couche de contrôle pour déployer à nouveau suivant le type d'erreur.
Cordialement,
Guillaume Tristani