12 factor App – Comment scaler vos applications ?

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

I. Base de code

Une base de code suivie avec un système de contrôle de version, plusieurs déploiements

II. Dépendances

Déclarez explicitement et isolez les dépendances

III. Configuration

Stockez la configuration dans l’environnement

IV. Services externes

Traitez les services externes comme des ressources attachées

V. Build, release, run

Séparez strictement les étapes d’assemblage et d’exécution

VI. Processus

Exécutez l’application comme un ou plusieurs processus sans état

VII. Associations de ports

Exportez les services via des associations de ports

VIII. Concurrence

Grossissez à l’aide du modèle de processus

IX. Jetable

Maximisez la robustesse avec des démarrages rapides et des arrêts gracieux

X. Parité dev/prod

Gardez le développement, la validation et la production aussi proches que possible

XI. Logs

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

 

Yann Klis, co-fondateur et CEO Scalingo revient sur les 12 bonnes pratiques pour créer des applications qui pourront facilement tenir des montées en charge et en faciliter la maintenance. Initialement créée pour les environnements type Heroku, cette liste de bonnes pratiques s’est étendue à toutes les formes de déploiement d’applications web.

Leave a comment