Comment utiliser Salt (outil en python pour la gestion d'infrastructure, gestion de conf centralisé mais aussi exécution à distance et orchestrateur) pour tester des bouts de son infrastructure (ses applications n-tiers) dans un environnement "bac-à-sable", en machines virtuelles sur un cloud privé (OpenStack, en python!), soit en conteneurs (LXC ou docker). Le tout versionné avec du mercurial.
Configurer et orchestrer son infrastructure avec un outil de gestion de configuration centralisée tel que Salt comporte de nombreux avantages. La conservation et l'historisation des fichiers de configuration dans un entrepôt de source géré par un DVCS (mercurial ou git) en fait partie. Salt permet ensuite de faire évoluer son infrastructure en la testant dans des environnements isolés. Une fois la description complète, reproduire une partie de son infrastructure de production sur un environnement virtualisé tel qu'un cloud privé (OpenStack) devient possible et automatisable avec salt-cloud. L'étape suivante est de pouvoir reproduire des portions de son infrastructure dans des conteneurs légers tels que docker ou LXC directement sur son portable. Pour cela, le pilotage de docker par Salt et les fonctionnalités d'orchestration de Salt permettent une agilité sans précédent.
Il s'agit d'un bon complément pour le TDI : Test Driven Infrastructure. L'infrastructure est testée en mode "intégration continue" et on peut tester et débugger une partie de l'infrastructure en mode "bac à sable".
Ce modèle peut ensuite être décliné avec l'utilisation des branches dans git ou mercurial où certaines branches vont être appliquées à la partie production de l'infrastructure alors que d'autres sont appliqués a la préproduction ou aux environnements docker ou LXC en local.