Upgrade to Pro — share decks privately, control downloads, hide ads and more …

En dev comme en prod : créez un environnement de développement Devops

En dev comme en prod : créez un environnement de développement Devops

Conférence donnée à l'occasion du Forum PHP 2013 à Paris

Benjamin Grandfond

November 19, 2013
Tweet

More Decks by Benjamin Grandfond

Other Decks in Programming

Transcript

  1. Les devs et les ops sont di!érents Les devs créent

    de nouvelles fonctionnalités pour permettre au business d’aller plus vite
  2. Les devs et les ops sont di!érents Les devs créent

    de nouvelles fonctionnalités pour permettre au business d’aller plus vite Les ops font en sorte que le site soit stable pour maintenir le business
  3. SCRUM permet de créer un produit «potentially shippable» plani!cation développement

    sprint 1 à 2 sem. «shippable product» test & validation
  4. SCRUM permet de créer un produit «potentially shippable» plani!cation développement

    sprint 1 à 2 sem. «shippable product» test & validation
  5. Devops permet de délivrer en continu ! «shippable product» plani!cation

    développement sprint 1 à 2 sem. test & validation
  6. Devops permet de délivrer en continu ! déploiement en production

    plani!cation développement sprint 1 à 2 sem. test & validation
  7. Devops permet de délivrer en continu ! déploiement en production

    monitoring plani!cation développement sprint 1 à 2 sem. test & validation
  8. Devops permet de délivrer en continu ! déploiement en production

    monitoring plani!cation développement sprint 1 à 2 sem. test & validation
  9. Devops est de plus en plus adopté 2013 +26% par

    rapport à 2011 http://info.puppetlabs.com/2013-state-of-devops-report.html 4000 2011 50% 63%
  10. Devops augmente l’agilité et la "abilité multiplication par 30 des

    déploiements diminuer de 50% les échecs et s’en remettre 12x plus vite http://info.puppetlabs.com/2013-state-of-devops-report.html
  11. des milliers de développeurs 1,079 déploiements par heure 10,000 hosts

    reçoivent 1 déploiement http://assets.en.oreilly.com/1/event/60/Velocity%20Culture%20Presentation.pdf
  12. plus de 250 «commiters», tous déploient plus de 30 déploiements

    par jour tous les ingénieurs déploient le 1er jour http://codeascraft.com/2012/03/13/making-it-virtually-easy-to-deploy-on-day-one/ https://speakerdeck.com/astanway/bring-the-noise-continuously-deploying-under-a- hailstorm-of-metrics
  13. actuellement 29 développeurs 9 projets en même temps 3 déploiements

    par jour par projets environ 30 déploiements par jour
  14. Automatisez le déploiement git pull FTP Capistrano (ruby) Fabric (python)

    • rendre cette opération simple et réexécutable • permettre aux devs d’être autonome • accélérer la mise en production script shell action manuelle !
  15. Soyez alerté en cas de problème • savoir qu’il y

    a un problème même quand on ne surveille pas • être capable de réagir à tout moment
  16. Agrégez vos logs • agréger et visualiser les logs en

    un seul endroit • faciliter les interventions des devs et des ops
  17. Automatisez les tests • détection de bugs avant le déploiement

    • diminuer les risques de régression • augmenter la con!ance dans le code
  18. Le README.md : • liste des dépendances (Apache, PHP 5.3,

    MySQL, Symfony 1.4...) • instructions d’installation • troubleshootings Facilitez l’installation
  19. Le README.md : • liste des dépendances (Apache, PHP 5.3,

    MySQL, Symfony 1.4...) • instructions d’installation • troubleshootings Facilitez l’installation • pour un nouveau développeur • pour l’ops Facilite l’installation du projet
  20. • Rien n’est automatique ! • Ca prend du temps

    • Vite obsolète Facilitez l’installation
  21. • Con!guration automatique des v-hosts • Diminue le temps d’installation

    d’un projet en local • Fonctionne avec la majorité des projets PHP Symfttpd : automatisez la con"guration du server web http://benja-m-1.github.io/symfttpd
  22. Simple configuration PHP Une ligne de commande pour avoir un

    web server fonctionnel Symfttpd : automatisez la con"guration du server web
  23. • Ne fonctionne qu’avec Lighttpd et Nginx • Ne permet

    pas d’avoir des con!gurations spéci!ques • Nécessite PHP >= 5.3 Symfttpd : automatisez la con"guration du server web
  24. • réduit les risques de bugs liés à l’architecture •

    un projet par machine virtuelle • partage de la vagrant box simpli!e la mise en place Normalisez vos environnements
  25. • documentation exécutable • gestion de la con!guration automatisée •

    mise à jour des serveurs automatique Distribuez la con"guration du serveur
  26. • faire monter en compétence un dev sur le provisionning

    • corriger un problème lié au système Pair devopsing ! Partagez les compétences entre dev et ops
  27. • permettre aux devs de créer des environnements rapidement •

    faciliter l’évolution de l’architecture • augmenter la capacité de charges de l’infrastructure Créez un serveur à la demande
  28. • permettre aux devs de créer des environnements rapidement •

    faciliter l’évolution de l’architecture • augmenter la capacité de charges de l’infrastructure Créez un serveur à la demande vagrant plugin install vagrant-openstack vagrant up --provider openstack
  29. Exemple : comment faire pour que les devs soient attentifs

    aux perfs ? • ajouter la performance dans la dé!nition du Done • intégrer des outils de mesure dans le provisionning • faire des graphs visibles de loin Management visuel
  30. Pour résumer Automatisez, Automatisez, Automatisez ! Changez la culture dev

    vs ops Maîtrisez les outils que vous utilisez Inspirez-vous des leaders du web