SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Utiliser Symfony sur des environnementsUtiliser Symfony sur des environnements
Heroku-likeHeroku-like
Utiliser Symfony sur des environnementsUtiliser Symfony sur des environnements
Heroku-likeHeroku-like
Remerciements
Il était une fois
● Madame Michu est chocolatière.
● Elle vend sur Internet ses produits.
– Site en Symfony2, respectueux des pratiques.
– Une base de données.
– Des sessions stockées sur le système de fichiers.
– Un serveur de websockets pour un service assistance.
● Codé dans une commande : php app/console support:run
● Les affaires marchent très bien !
Quand tout à coup, les soldes !
BAOUM.
● Sous la charge, le site se met à « ramer ».
– Load average : 481,42
– Impossible de reprendre la main en SSH.
– Les pages s'affichent en 45 secondes.
● C'est dramatique, Madame Michu aurait pu
gagner beaucoup d'argent !
Solutions
● Ne rien faire.
+ Ne coûte pas plus cher.
+ La présentation est finie.
- Perte d'argent et de notoriété lors des soldes.
● Acheter un plus gros serveur.
+ Résout le problème des soldes.
- Coûte plus cher le reste de l'année.
Ou alors ...
● Adapter l'infrastructure au trafic.
● Ajouter de la puissance la veille des soldes.
● Et la retirer ensuite.
L'objectif
But du jeu
– Passer de gauche à droite.
– Pouvoir rajouter des instances à chaud en quelques
secondes.
The twelve-factor app
●
Une méthodologie pour fournir une application en tant que service.
– Automatisable
– Portable
– Adaptée au cloud
– Scalable
●
Écrit par Adam Wiggins.
– Cofondateur de Heroku.
●
Disponible sur http://12factor.net
I. Codebase
● « One codebase tracked in revision control,
many deploys »
– Toutes les versions de l'application sont sur un seul
repository.
– C'est une pratique courante dans la communauté
Symfony.
II. Dependencies
● « Explicitly declare and isolate dependencies »
– Grâce à Composer, c'est déjà le cas.
III. Config
● « Store config in the environment »
– Séparation du code et de la configuration.
– Au déploiement, la configuration n'est plus un
souci.
III. Config
III. Config
SYMFONY_ENV=prod
SYMFONY__DATABASE_USER=myuser
SYMFONY__DATABASE_NAME=myshop
IV. Backing Services
● « Treat backing services as attached
resources »
– La base de donnée est une ressource.
– Attention ! Les sessions aussi !
IV. Backing Services
● Pour doctrine, c'est natif.
– Tout est paramétrable via le parameters.yml.
– Et donc via l'environnement.
● Centralisons nos sessions dans Redis.
● Il y a un bundle pour ça.
– https://github.com/snc/SncRedisBundle
IV. Backing Services
● Dépendances
– snc/redis-bundle: ~1.1
– predis/predis: ~0.8
● Configuration
V. Build, release, run
● « Strictly separate build and run stages »
– Build
● Composer install
● Inclure tous les binaires (apache / nginx, php / hhvm).
– Run
● Démarrer apache / nginx.
V. Build, release, run
● Hein ?! Packager php avec le projet ?
● Avec un buildpack, c'est facile !
● git clone https://github.com/heroku/heroku-buildpack-php
● cd heroku-buildpack-php
● ./bin/compile /path/to/the/app /tmp/cache /path/to/env
● ./bin/release /path/to/the/app
● On zippe le résultat.
V. Build, release, run
VI. Processes
● « Execute the app as one or more stateless processes »
● Stateless
– Déjà fait !
● Backing Services
● Config via environnement
● One or more ?
– Le site = un process
– Le serveur de websockets = un process
VI. Processes
● Utiliser un Procfile.
web: bin/heroku-php-nginx -C conf/nginx.conf web/
support: php app/console support:run
VII. Port binding
● « Export services via port binding »
– Base de données : 192.168.1.12:5210
– Instance « web 1 » : 192.168.1.22:6597
– Instance « web 2 » : 192.168.1.25:7851
– …
● La configuration pour relier les services.
VIII. Concurrency
● « Scale out via the process model »
– Notre application est stateless.
– Alors on peut en avoir 1, 10 ou 1000 sans altérer
son fonctionnement.
IX. Disposability
● « Maximize robustness with fast startup and
graceful shutdown »
X. Dev/prod parity
● « Keep development, staging, and production
as similar as possible »
– Merci docker !
XI. Logs
● « Treat logs as event streams »
– Beaucoup de machines.
● Un même visiteur peut passer sur plusieurs serveurs.
● Il faut centraliser.
– Les applications sont stateless.
● On n'écrit pas de log sur la machine.
● Tout est redirigé vers stdout / stderr.
XI. Logs
● Heureusement, Monolog est là !
XII. Admin processes
● « Run admin/management tasks as one-off processes »
– Comment créer la base de données ?
– Certainement pas sur une instance existante
● On démarre une nouvelle instance en mode REPL
– REPL : read–eval–print loop
– En gros : SSH
– A la fin de l'opération : l'instance est détruite
XII. Admin processes
Mais qui s'occupe de collecter les logs, de
démarrer les machines avec les bonnes variables
d'environnement, d'automatiquement exposer les
services entre eux ?
Démo time !
● Amusons nous avec Flynn
– https://flynn.io/
– Gratuit, open source
– Facile à utiliser en local
Merci pour votre attention

Contenu connexe

Tendances

Web server local
Web server localWeb server local
Web server localkaabi zahra
 
WebExtensions - it's now / c'est maintenant
WebExtensions - it's now / c'est maintenantWebExtensions - it's now / c'est maintenant
WebExtensions - it's now / c'est maintenantChristophe Villeneuve
 
Introduction à WordPress sous Nginx
Introduction à WordPress sous NginxIntroduction à WordPress sous Nginx
Introduction à WordPress sous NginxMaxime Jobin
 

Tendances (6)

Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
WordPress & le Multsite
WordPress & le MultsiteWordPress & le Multsite
WordPress & le Multsite
 
Web server local
Web server localWeb server local
Web server local
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
WebExtensions - it's now / c'est maintenant
WebExtensions - it's now / c'est maintenantWebExtensions - it's now / c'est maintenant
WebExtensions - it's now / c'est maintenant
 
Introduction à WordPress sous Nginx
Introduction à WordPress sous NginxIntroduction à WordPress sous Nginx
Introduction à WordPress sous Nginx
 

En vedette

10-Necesidades energeticas y minerales
10-Necesidades energeticas y minerales10-Necesidades energeticas y minerales
10-Necesidades energeticas y mineralesIES Montes de Toledo
 
27868226 no-es-posible-curarse-sin-aprender-a-vivir-undescrypt
27868226 no-es-posible-curarse-sin-aprender-a-vivir-undescrypt27868226 no-es-posible-curarse-sin-aprender-a-vivir-undescrypt
27868226 no-es-posible-curarse-sin-aprender-a-vivir-undescryptPsic Karina Bautista
 
E-reputation et communication : quels risques et opportunités pour mon établi...
E-reputation et communication : quels risques et opportunités pour mon établi...E-reputation et communication : quels risques et opportunités pour mon établi...
E-reputation et communication : quels risques et opportunités pour mon établi...Frederic BERNIER
 
Webinar cloud hybrid toolbox
Webinar cloud hybrid toolboxWebinar cloud hybrid toolbox
Webinar cloud hybrid toolboxIkoula
 
Cookandmix def
Cookandmix defCookandmix def
Cookandmix defvidati
 
Trabajo de higiene postural de Eva, alumna de 5º B
Trabajo de higiene postural de Eva, alumna de 5º BTrabajo de higiene postural de Eva, alumna de 5º B
Trabajo de higiene postural de Eva, alumna de 5º Bjuanjoreverte
 
Nissan part de marché en europe au niveau le plus élevé depuis 12 mois
Nissan part de marché en europe au niveau le plus élevé depuis 12 moisNissan part de marché en europe au niveau le plus élevé depuis 12 mois
Nissan part de marché en europe au niveau le plus élevé depuis 12 moisRésultats Autos
 
Rap mediateur 2010 via http://www.bercy.gouv.fr/directions_services/mediateur...
Rap mediateur 2010 via http://www.bercy.gouv.fr/directions_services/mediateur...Rap mediateur 2010 via http://www.bercy.gouv.fr/directions_services/mediateur...
Rap mediateur 2010 via http://www.bercy.gouv.fr/directions_services/mediateur...Ministère de l'Économie et des Finances
 
Château d`almourol
Château d`almourolChâteau d`almourol
Château d`almourolniknad0173
 
Résultats premier tour présidentielles 2012
Résultats premier tour présidentielles 2012Résultats premier tour présidentielles 2012
Résultats premier tour présidentielles 2012elodie92
 
Presentacion primavera
Presentacion primaveraPresentacion primavera
Presentacion primaverajuanjoreverte
 
Entrevue avec nos ancêtres
Entrevue avec nos ancêtresEntrevue avec nos ancêtres
Entrevue avec nos ancêtresniknad0173
 
Stiforp : opportunité à saisir
Stiforp : opportunité à saisirStiforp : opportunité à saisir
Stiforp : opportunité à saisirFrançoise Jac
 

En vedette (20)

Mini guide 25 convention aeras
Mini guide 25 convention aerasMini guide 25 convention aeras
Mini guide 25 convention aeras
 
10-Necesidades energeticas y minerales
10-Necesidades energeticas y minerales10-Necesidades energeticas y minerales
10-Necesidades energeticas y minerales
 
27868226 no-es-posible-curarse-sin-aprender-a-vivir-undescrypt
27868226 no-es-posible-curarse-sin-aprender-a-vivir-undescrypt27868226 no-es-posible-curarse-sin-aprender-a-vivir-undescrypt
27868226 no-es-posible-curarse-sin-aprender-a-vivir-undescrypt
 
M2 es
M2 esM2 es
M2 es
 
E-reputation et communication : quels risques et opportunités pour mon établi...
E-reputation et communication : quels risques et opportunités pour mon établi...E-reputation et communication : quels risques et opportunités pour mon établi...
E-reputation et communication : quels risques et opportunités pour mon établi...
 
Webinar cloud hybrid toolbox
Webinar cloud hybrid toolboxWebinar cloud hybrid toolbox
Webinar cloud hybrid toolbox
 
Nne
NneNne
Nne
 
Cookandmix def
Cookandmix defCookandmix def
Cookandmix def
 
Trabajo de higiene postural de Eva, alumna de 5º B
Trabajo de higiene postural de Eva, alumna de 5º BTrabajo de higiene postural de Eva, alumna de 5º B
Trabajo de higiene postural de Eva, alumna de 5º B
 
Nissan part de marché en europe au niveau le plus élevé depuis 12 mois
Nissan part de marché en europe au niveau le plus élevé depuis 12 moisNissan part de marché en europe au niveau le plus élevé depuis 12 mois
Nissan part de marché en europe au niveau le plus élevé depuis 12 mois
 
Rap mediateur 2010 via http://www.bercy.gouv.fr/directions_services/mediateur...
Rap mediateur 2010 via http://www.bercy.gouv.fr/directions_services/mediateur...Rap mediateur 2010 via http://www.bercy.gouv.fr/directions_services/mediateur...
Rap mediateur 2010 via http://www.bercy.gouv.fr/directions_services/mediateur...
 
Test1
Test1Test1
Test1
 
Château d`almourol
Château d`almourolChâteau d`almourol
Château d`almourol
 
Priorité pme ue small business act
Priorité pme ue small business actPriorité pme ue small business act
Priorité pme ue small business act
 
Résultats premier tour présidentielles 2012
Résultats premier tour présidentielles 2012Résultats premier tour présidentielles 2012
Résultats premier tour présidentielles 2012
 
Presentacion primavera
Presentacion primaveraPresentacion primavera
Presentacion primavera
 
Entrevue avec nos ancêtres
Entrevue avec nos ancêtresEntrevue avec nos ancêtres
Entrevue avec nos ancêtres
 
Programme électorale PDP
Programme électorale PDPProgramme électorale PDP
Programme électorale PDP
 
Stiforp : opportunité à saisir
Stiforp : opportunité à saisirStiforp : opportunité à saisir
Stiforp : opportunité à saisir
 
Cartadeunbebe
CartadeunbebeCartadeunbebe
Cartadeunbebe
 

Similaire à SfPot Lille 07/2015 - Utiliser Symfony sur des environnements Heroku-like

NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...Ayoub Rouzi
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 
Presentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedPresentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedTECOS
 
Drupal & Symfony2
Drupal & Symfony2Drupal & Symfony2
Drupal & Symfony2th0masr
 
S35 developper en node.js versus php
S35   developper en node.js versus phpS35   developper en node.js versus php
S35 developper en node.js versus phpGautier DUMAS
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...Paris Open Source Summit
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Alphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et AdministrationAlphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et AdministrationAlphorm
 
Le poste de travail Libre
Le poste de travail LibreLe poste de travail Libre
Le poste de travail LibreLINAGORA
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012FastConnect
 
Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerMohamet Lamine DIOP
 
Virt lightning-montreal-linux-meetup-2020-02
Virt lightning-montreal-linux-meetup-2020-02Virt lightning-montreal-linux-meetup-2020-02
Virt lightning-montreal-linux-meetup-2020-02Gonéri Le Bouder
 
Serveur nomade dans l'nternet des Objets
Serveur nomade dans l'nternet des ObjetsServeur nomade dans l'nternet des Objets
Serveur nomade dans l'nternet des ObjetsChristophe Villeneuve
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOlivier DASINI
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 

Similaire à SfPot Lille 07/2015 - Utiliser Symfony sur des environnements Heroku-like (20)

NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Presentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedPresentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamed
 
Drupal & Symfony2
Drupal & Symfony2Drupal & Symfony2
Drupal & Symfony2
 
S35 developper en node.js versus php
S35   developper en node.js versus phpS35   developper en node.js versus php
S35 developper en node.js versus php
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Alphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et AdministrationAlphorm.com Formation Nagios et Cacti : Installation et Administration
Alphorm.com Formation Nagios et Cacti : Installation et Administration
 
Le poste de travail Libre
Le poste de travail LibreLe poste de travail Libre
Le poste de travail Libre
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012
 
Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzer
 
Virt lightning-montreal-linux-meetup-2020-02
Virt lightning-montreal-linux-meetup-2020-02Virt lightning-montreal-linux-meetup-2020-02
Virt lightning-montreal-linux-meetup-2020-02
 
Serveur nomade dans l'nternet des Objets
Serveur nomade dans l'nternet des ObjetsServeur nomade dans l'nternet des Objets
Serveur nomade dans l'nternet des Objets
 
12-Factor
12-Factor12-Factor
12-Factor
 
Le portage des WebExtensions
Le portage des WebExtensionsLe portage des WebExtensions
Le portage des WebExtensions
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
Introduction webextensions
Introduction webextensionsIntroduction webextensions
Introduction webextensions
 

SfPot Lille 07/2015 - Utiliser Symfony sur des environnements Heroku-like

  • 1. Utiliser Symfony sur des environnementsUtiliser Symfony sur des environnements Heroku-likeHeroku-like Utiliser Symfony sur des environnementsUtiliser Symfony sur des environnements Heroku-likeHeroku-like
  • 3. Il était une fois ● Madame Michu est chocolatière. ● Elle vend sur Internet ses produits. – Site en Symfony2, respectueux des pratiques. – Une base de données. – Des sessions stockées sur le système de fichiers. – Un serveur de websockets pour un service assistance. ● Codé dans une commande : php app/console support:run ● Les affaires marchent très bien !
  • 4. Quand tout à coup, les soldes !
  • 5. BAOUM. ● Sous la charge, le site se met à « ramer ». – Load average : 481,42 – Impossible de reprendre la main en SSH. – Les pages s'affichent en 45 secondes. ● C'est dramatique, Madame Michu aurait pu gagner beaucoup d'argent !
  • 6. Solutions ● Ne rien faire. + Ne coûte pas plus cher. + La présentation est finie. - Perte d'argent et de notoriété lors des soldes. ● Acheter un plus gros serveur. + Résout le problème des soldes. - Coûte plus cher le reste de l'année.
  • 7. Ou alors ... ● Adapter l'infrastructure au trafic. ● Ajouter de la puissance la veille des soldes. ● Et la retirer ensuite.
  • 8. L'objectif But du jeu – Passer de gauche à droite. – Pouvoir rajouter des instances à chaud en quelques secondes.
  • 9. The twelve-factor app ● Une méthodologie pour fournir une application en tant que service. – Automatisable – Portable – Adaptée au cloud – Scalable ● Écrit par Adam Wiggins. – Cofondateur de Heroku. ● Disponible sur http://12factor.net
  • 10. I. Codebase ● « One codebase tracked in revision control, many deploys » – Toutes les versions de l'application sont sur un seul repository. – C'est une pratique courante dans la communauté Symfony.
  • 11. II. Dependencies ● « Explicitly declare and isolate dependencies » – Grâce à Composer, c'est déjà le cas.
  • 12. III. Config ● « Store config in the environment » – Séparation du code et de la configuration. – Au déploiement, la configuration n'est plus un souci.
  • 15. IV. Backing Services ● « Treat backing services as attached resources » – La base de donnée est une ressource. – Attention ! Les sessions aussi !
  • 16. IV. Backing Services ● Pour doctrine, c'est natif. – Tout est paramétrable via le parameters.yml. – Et donc via l'environnement. ● Centralisons nos sessions dans Redis. ● Il y a un bundle pour ça. – https://github.com/snc/SncRedisBundle
  • 17. IV. Backing Services ● Dépendances – snc/redis-bundle: ~1.1 – predis/predis: ~0.8 ● Configuration
  • 18. V. Build, release, run ● « Strictly separate build and run stages » – Build ● Composer install ● Inclure tous les binaires (apache / nginx, php / hhvm). – Run ● Démarrer apache / nginx.
  • 19. V. Build, release, run ● Hein ?! Packager php avec le projet ? ● Avec un buildpack, c'est facile ! ● git clone https://github.com/heroku/heroku-buildpack-php ● cd heroku-buildpack-php ● ./bin/compile /path/to/the/app /tmp/cache /path/to/env ● ./bin/release /path/to/the/app ● On zippe le résultat.
  • 21. VI. Processes ● « Execute the app as one or more stateless processes » ● Stateless – Déjà fait ! ● Backing Services ● Config via environnement ● One or more ? – Le site = un process – Le serveur de websockets = un process
  • 22. VI. Processes ● Utiliser un Procfile. web: bin/heroku-php-nginx -C conf/nginx.conf web/ support: php app/console support:run
  • 23. VII. Port binding ● « Export services via port binding » – Base de données : 192.168.1.12:5210 – Instance « web 1 » : 192.168.1.22:6597 – Instance « web 2 » : 192.168.1.25:7851 – … ● La configuration pour relier les services.
  • 24. VIII. Concurrency ● « Scale out via the process model » – Notre application est stateless. – Alors on peut en avoir 1, 10 ou 1000 sans altérer son fonctionnement.
  • 25. IX. Disposability ● « Maximize robustness with fast startup and graceful shutdown »
  • 26. X. Dev/prod parity ● « Keep development, staging, and production as similar as possible » – Merci docker !
  • 27. XI. Logs ● « Treat logs as event streams » – Beaucoup de machines. ● Un même visiteur peut passer sur plusieurs serveurs. ● Il faut centraliser. – Les applications sont stateless. ● On n'écrit pas de log sur la machine. ● Tout est redirigé vers stdout / stderr.
  • 28. XI. Logs ● Heureusement, Monolog est là !
  • 29. XII. Admin processes ● « Run admin/management tasks as one-off processes » – Comment créer la base de données ? – Certainement pas sur une instance existante ● On démarre une nouvelle instance en mode REPL – REPL : read–eval–print loop – En gros : SSH – A la fin de l'opération : l'instance est détruite
  • 31. Mais qui s'occupe de collecter les logs, de démarrer les machines avec les bonnes variables d'environnement, d'automatiquement exposer les services entre eux ?
  • 32.
  • 33. Démo time ! ● Amusons nous avec Flynn – https://flynn.io/ – Gratuit, open source – Facile à utiliser en local
  • 34. Merci pour votre attention