Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes |
informatique:12_factors_app [14/01/2016 05:53] – [5. Construire, distribuer, exécuter / Build, Release, Run] cyrille | informatique:12_factors_app [14/01/2016 06:13] – [12 Factors app] cyrille |
---|
* [[https://www.packtpub.com/books/content/building-and-running-12-factor-microservices-docker-part-1|Building and Running 12 Factor Microservices on Docker (Part 1)]] | * [[https://www.packtpub.com/books/content/building-and-running-12-factor-microservices-docker-part-1|Building and Running 12 Factor Microservices on Docker (Part 1)]] |
* [[https://www.packtpub.com/books/content/building-and-running-12-factor-microservices-docker-part-2|Building and Running 12 Factor Microservices on Docker (Part 2)]] | * [[https://www.packtpub.com/books/content/building-and-running-12-factor-microservices-docker-part-2|Building and Running 12 Factor Microservices on Docker (Part 2)]] |
| |
| Autres lecture: [[/informatique/docker]] |
| |
===== 1. Code source / Codebase ===== | ===== 1. Code source / Codebase ===== |
| |
L'[[https://www.packtpub.com/books/content/building-and-running-12-factor-microservices-docker-part-2|article]] présente la construction d'une 1ere image Docker "0.1.0" avec l'application, et d'une 2eme image Docker "0.1.0.0" héritant de la 1ère et ajoutant son environnement de configuration, c'est la release (Le 4eme chiffre décrit la version de la configuration). | L'[[https://www.packtpub.com/books/content/building-and-running-12-factor-microservices-docker-part-2|article]] présente la construction d'une 1ere image Docker "0.1.0" avec l'application, et d'une 2eme image Docker "0.1.0.0" héritant de la 1ère et ajoutant son environnement de configuration, c'est la release (Le 4eme chiffre décrit la version de la configuration). |
| |
| ===== 6. Processus / Processes ===== |
| |
| * L'application est exécuté comme un ou plusieurs processus sans état (stateless) qui ne partage(nt) rien et sont donc distribuable(s) horizontalement |
| * Un mot sur le PID file et le gestionnaire de service "runit" |
| |
| ===== 7. Port d'écoute réseau / Port Binding ===== |
| |
| * Le port d'écoute réseau doit être défini par l'environnement, pas par l'application |
| * Le serveur web doit être fourni par l'application |
| |
| ===== 8. Concurrence / Concurrency ===== |
| |
| * Comme les processus n'ont pas d'état, on peut en ajouter au besoin |
| * L'application peut être composée de différents types de processus: web, tâches de fond, tâches périodiques, ... |
| |
| ===== 9. Disposability ===== |
| |
| * Les processus de l'application doivent pouvoir être arrêtés et démarrés facilement et indépendemment |
| |
| ===== 10. Dev/Prod Parity ===== |
| |
| * le temps entre développement et production doit être court |
| * Un développeur doit pouvoir pousser en production un nouveau code: continus deployement |
| |
| ===== 11. Logs ===== |
| |
| * L'application écrit ses logs sur "stdout", c'est l'environnement qui est en charge de les récolter, distribués, agréger ... |
| |
| ===== 12. Admin processes ===== |
| |
| * un processus d'administration doit pouvoir être lancé facilement et utilisant le même code et la même configuration que l'application |
| |
| |
| |