Le concept "Twelve-factor app" est un manifeste listant des bonnes pratiques pour le développement d'applications logicielles modernes, modulaires, flexibles, évolutives, et facilement maintenables. 1. Codebase unique : Utilisez un seul référentiel de code pour chaque application. 2. Dépendances explicites : Spécifiez clairement les dépendances externes et assurez-vous qu'elles sont isolées. 3. Configuration séparée : Stockez les configurations dans des variables d'environnement et ne les intégrez pas en dur dans le code. 4. Services liés : Traitez les services tiers (bases de données, API, etc.) comme des ressources externes accessibles via des URL. 5. Construisez, publiez et exécutez : Utilisez des outils pour automatiser la construction, la publication et l'exécution de l'application. 6. Processus : Concevez l'application comme un ensemble de processus légers et indépendants. 7. Liaison de port : Mettez l'application à disposition via un port et utilisez un système de communication pour gérer les requêtes. 8. Concurrence : Créez des processus capables de traiter plusieurs demandes ou actions simultanément, sans bloquer ni ralentir l'application. 9. Tolérance aux pannes : Gérez les pannes en redémarrant les processus et en remplaçant les instances défaillantes. 10. Développement et production identiques : Maintenez les environnements de développement, de test et de production aussi similaires que possible. 11. Observabilité : Collectez l'activité de l'application au travers de logs. 12. Administration des processus : Gérez les tâches administratives en tant que processus distincts et automatisez-les. En respectant ces principes, les développeurs peuvent créer des applications modulaires, évolutives et résilientes qui sont adaptées aux environnements cloud et aux besoins de déploiement modernes.