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

79637b39737f884d090cac0d7c768351?s=128

Benjamin Grandfond

November 19, 2013
Tweet

Transcript

  1. En dev exactement comme en prod créez un environnement de

    développement Devops
  2. Benjamin Grandfond Architect & Team Manager benjaM1 benja-M-1

  3. None
  4. None
  5. None
  6. Qu’est-ce que Devops ?

  7. Les devs et les ops sont di!érents

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

    de nouvelles fonctionnalités pour permettre au business d’aller plus vite
  9. 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
  10. Rassembler les devs et les ops Devs Ops

  11. Rassembler les devs et les ops Equipe au service du

    business
  12. Pourquoi adopter Devops ?

  13. SCRUM permet de créer un produit «potentially shippable» plani!cation

  14. SCRUM permet de créer un produit «potentially shippable» plani!cation développement

    sprint 1 à 2 sem.
  15. SCRUM permet de créer un produit «potentially shippable» plani!cation développement

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

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

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

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

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

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

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

    monitoring plani!cation développement sprint 1 à 2 sem. test & validation
  23. Devops est de plus en plus adopté http://info.puppetlabs.com/2013-state-of-devops-report.html

  24. 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%
  25. 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
  26. 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
  27. 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
  28. actuellement 29 développeurs 9 projets en même temps 3 déploiements

    par jour par projets environ 30 déploiements par jour
  29. None
  30. Comment avons-nous fait ?

  31. Automatisez le déploiement

  32. Automatisez le déploiement FTP

  33. Automatisez le déploiement git pull FTP

  34. Automatisez le déploiement git pull FTP action manuelle !

  35. Automatisez le déploiement git pull FTP script shell action manuelle

    !
  36. Automatisez le déploiement git pull FTP Capistrano (ruby) Fabric (python)

    script shell action manuelle !
  37. 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 !
  38. Surveillez votre application • découvrir les erreurs 500 au plus

    tôt • tenir compte des performances
  39. 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
  40. Agrégez vos logs • agréger et visualiser les logs en

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

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

    MySQL, Symfony 1.4...) • instructions d’installation • troubleshootings Facilitez l’installation
  43. 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
  44. • Rien n’est automatique ! • Ca prend du temps

    • Vite obsolète Facilitez l’installation
  45. • 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
  46. Simple configuration PHP Une ligne de commande pour avoir un

    web server fonctionnel Symfttpd : automatisez la con"guration du server web
  47. • 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
  48. • 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
  49. en 2 secondes :)

  50. • documentation exécutable • gestion de la con!guration automatisée •

    mise à jour des serveurs automatique Distribuez la con"guration du serveur
  51. Distribuez la con"guration du serveur

  52. Distribuez la con"guration du serveur

  53. Distribuez la con"guration du serveur

  54. Distribuez la con"guration du serveur

  55. Distribuez la con"guration du serveur

  56. • 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
  57. • 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
  58. • 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
  59. 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
  60. Cherchez à être toujours plus rapide Itérez, testez, mesurez, améliorez

    , recommencez
  61. 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
  62. A vous de jouer ;)

  63. Questions ? benjaM1 benja-M-1 https://speakerdeck.com/benjam1/en-dev-comme-en-prod-creez-un-environnement-de-developpement-devops https://joind.in/talk/view/9357