QU’EST-CE QUE LE « 12 FACTOR APP »
Le « 12 Factor app » est un manifeste qui propose 12 bonnes pratiques concernant le développement d’applications web. Ce manifeste, écrit par Adam Wiggins (co-fondateur d’Heroku), est né de ses observations et de son expérience dans le développement et le déploiement d’applications web.
Ce manifeste s’applique à tous les langages et toutes les plateformes, c’est pourquoi il se contente de décrire les décisions de conception de haut niveau sans donner de détail sur l’implémentation.
Dans ce post, nous allons parcourir ensemble ces 12 facteurs, en extraire le concept et tenter de l’appliquer au monde PHP.
Lire tout l’article a la source original: Eleven Labs.
À l’époque actuelle, les logiciels sont régulièrement délivrés en tant que services : on les appelle des applications web (web apps), ou logiciels en tant que service (software-as-a-service). L’application 12 facteurs est une méthodologie pour concevoir des logiciels en tant que service qui :
- Utilisent des formats déclaratifs pour mettre en oeuvre l’automatisation, pour minimiser le temps et les coûts pour que de nouveaux développeurs rejoignent le projet;
- Ont un contrat propre avec le système d’exploitation sous-jacent, offrant une portabilité maximum entre les environnements d’exécution;
- Sont adaptés à des déploiements sur des plateformes cloud modernes, rendant inutile le besoin de serveurs et de l’administration de systèmes;
- Minimisent la divergence entre le développement et la production, ce qui permet le déploiement continu pour une agilité maximum;
- et peuvent grossir verticalement sans changement significatif dans les outils, l’architecture ou les pratiques de développement;
La méthodologie 12 facteurs peut être appliquée à des applications écrites dans tout langage de programmation, et qui utilisent tout type de services externes (base de données, file, cache mémoire, etc.)
Les 12 facteurs
Une base de code suivie avec un système de contrôle de version, plusieurs déploiements
Déclarez explicitement et isolez les dépendances
Stockez la configuration dans l’environnement
Traitez les services externes comme des ressources attachées
Séparez strictement les étapes d’assemblage et d’exécution
Exécutez l’application comme un ou plusieurs processus sans état
Exportez les services via des associations de ports
Grossissez à l’aide du modèle de processus
Maximisez la robustesse avec des démarrages rapides et des arrêts gracieux
Gardez le développement, la validation et la production aussi proches que possible
Traitez les logs comme des flux d’évènements
XII. Processus d’administration
Lancez les processus d’administration et de maintenance comme des one-off-processes
Lire tout l’article a la source original: 12factor.net