J'ai toujours installé un environnement de développement normal, qu'il soit C, C++ ou Java sur ma machine locale, les constituants de mon application installés à côté : la base de données, le serveur web, les modules de support, etc.

Puis, au moment du déploiement, à destination de l'intégration ou de la recette, je construisais par des scripts des containers Docker ou alimentais des VM(s) selon ce qui était choisi pour la livraison.

Mais voilà, plus cela évolue, plus l'organisation est complexe pour passer, en dev, d'une organisation qui n'est pas en containers ou VM(s), parce qu'on est - si je peux dire - en standalone, "à plat", à une livraison qui le demande.

Je me dis qu'il faudrait sans doute que je trouve un moyen de débuter mes développements avec dès le début, dès l'environnement de compilation de dev local, toute l'arborescence des containers réalisée et ainsi me trouver tout de suite dans les conditions exactes où l'application sera plus tard, et ne plus avoir ensuite de lourdes transition à faire.

Ai-je raison ou ai-je tort ?

Savez-vous comment l'on débute une application directement containérisée (mais pas rassemblée dans un seul container, hein ! Avec bien avec tous les containers potentiels qu'elle peut avoir une fois en prod) ou VMisée (en multiples VMs) ?

Quelles sont les bonnes manières de s'organiser pour cela ?
Pour s'installer un environnement de dev qui dès la première compilation sait préparer des VMs ou des containers, et c'est bien au sein d'eux qu'il va lancer l'application, et pas ailleurs ?

Des outils y aident-ils ?