Orchestrez vos projets Symfony
sans fausses notes
28/10/2015
@xgorse
Xavier Gorse
Contexte
Elao
• Agence Web qui fait du dev web sur mesure depuis 10 ans

• 25 personnes avec 3 tribus (Lyon, Paris, Montpe...
But
• Maximiser la valeur ajoutée du dev.

• Limiter la dette technique

• Remontée rapide et simple sur le projet

• Faci...
Env de dev
• Homogène : 100% Mac / OSX

• Performant : SSD avec pas mal de RAM

• Virtualisation complète avec Vagrant et ...
Infra
• Provisioning avec Ansible

• Gestion des envs iso ( dev, demo, prod…)

• Base linux ( Debian / CentOs)

• Socle hé...
Architecture Applicative
Architecture Applicative
• Approche DDD : Orienté Domain / Métier

• Découplage du code métier du framework au maximum 

•...
Architecture Applicative
Bundles
• Les plus léger et autonomes possible

• Orchestration entre le Domain et le framework

...
Elao Symfony Standard
Elao Symfony Standard
• Base de tous les nouveaux projets symfony

• Basée sur une 2.7.x avec une arbo "Symfony 3"

• Imag...
Elao Symfony Standard
Vagrant
• Partage NFS

• Récup des configs Git du l'hôte

• Récup des infos auth composer de l'hôte

...
Elao Symfony Standard
Ansible
• Même rôle que les envs de demo et prod

• Que des rôles maisons 

• Open Source et dispo s...
Elao Symfony Standard
Tools
• Mailcatcher

• Supervisor

• Log.io mais bascule sur Heka/rtail prévue

• PhpMyAdmin
Elao Symfony Standard
Test 

• PHPUnit 

• Behat
Elao Symfony Standard
Make : Homogénéisation de l'interface projet
• make setup

• make test

• make deploy@demo

• make d...
Elao Symfony Standard
Au final c’est aussi simple que cela 

• composer create-project elao/symfony-standard 

• ou git clo...
Conventions
Conventions
• Make

• Workflow git basé sur le Github Flow

• Documentation 

• Technique dans le dépôt en markdown

• Fonc...
Conventions
• CodeReview systématique

• CodingStandard

• PSR-2

• hook de commits

• SensioLabs Insight
Deploy
• Depuis hôte avec Capifony/Capistrano

• On se penche sur la création de build par la stack CI
Conclusion
Conclusion
• Pas mal de souci avec vagrant/virtualbox (DNS, NFS)

• Beaucoup d'énergie sur la couche infra

• Ne pas tout ...
Conclusion
• Objectif atteint

• Montée en compétences rapide et cadrées sur les projets

• Stack infra carrée -> Offre Hos...
Conclusion
• Les technos vont plus vite que les projets

• Résister aux sirènes des nouvelles techno, mais pas trop

• Pra...
Merci
Stand Espace de networking
www.lazerdrive.io
Ce soir à 18h10 dans l’amphi
Prochain SlideShare
Chargement dans…5
×

Orchestrez vos projets Symfony sans fausses notes

659 vues

Publié le

Retour d'expériences sur tout le processus d'ingénierie logicielle de projets Symfony que nous avons construits au fil du temps depuis nos premiers projets en 2006. Nous aborderons toutes les phases de l'industrialisation nous ayant permis d'accroître la qualité et la réactivité d’intervention sur les projets

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
659
Sur SlideShare
0
Issues des intégrations
0
Intégrations
53
Actions
Partages
0
Téléchargements
7
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Orchestrez vos projets Symfony sans fausses notes

  1. 1. Orchestrez vos projets Symfony sans fausses notes 28/10/2015 @xgorse Xavier Gorse
  2. 2. Contexte Elao • Agence Web qui fait du dev web sur mesure depuis 10 ans • 25 personnes avec 3 tribus (Lyon, Paris, Montpellier) • +200 projets symfony initiés depuis 2006 • Partenaire officiel SensioLabs
  3. 3. But • Maximiser la valeur ajoutée du dev. • Limiter la dette technique • Remontée rapide et simple sur le projet • Facilitation reprise d'existant par un tiers • Laisser un projet comme on aimerait le trouver
  4. 4. Env de dev • Homogène : 100% Mac / OSX • Performant : SSD avec pas mal de RAM • Virtualisation complète avec Vagrant et Virtualbox
  5. 5. Infra • Provisioning avec Ansible • Gestion des envs iso ( dev, demo, prod…) • Base linux ( Debian / CentOs) • Socle hétérogène • Dev : Virtualbox/Vagrant • CI : Docker pour les tests avec Jenkins • Prod : OpenVz
  6. 6. Architecture Applicative
  7. 7. Architecture Applicative • Approche DDD : Orienté Domain / Métier • Découplage du code métier du framework au maximum • Plus facile à tester • Plus serein lors des mises à jour du framework • Event - CommandBus
  8. 8. Architecture Applicative Bundles • Les plus léger et autonomes possible • Orchestration entre le Domain et le framework • De la glue entre interface et metier
  9. 9. Elao Symfony Standard
  10. 10. Elao Symfony Standard • Base de tous les nouveaux projets symfony • Basée sur une 2.7.x avec une arbo "Symfony 3" • Image Vagrant sur Debian Wheezy • Open et dispo sur Github : https://github.com/Elao/symfony-standard
  11. 11. Elao Symfony Standard Vagrant • Partage NFS • Récup des configs Git du l'hôte • Récup des infos auth composer de l'hôte • Forward Agent SSH
  12. 12. Elao Symfony Standard Ansible • Même rôle que les envs de demo et prod • Que des rôles maisons • Open Source et dispo sur github sur l’organisation ElaoInfra
  13. 13. Elao Symfony Standard Tools • Mailcatcher • Supervisor • Log.io mais bascule sur Heka/rtail prévue • PhpMyAdmin
  14. 14. Elao Symfony Standard Test • PHPUnit • Behat
  15. 15. Elao Symfony Standard Make : Homogénéisation de l'interface projet • make setup • make test • make deploy@demo • make deploy@prod
  16. 16. Elao Symfony Standard Au final c’est aussi simple que cela • composer create-project elao/symfony-standard • ou git clone • puis make setup
  17. 17. Conventions
  18. 18. Conventions • Make • Workflow git basé sur le Github Flow • Documentation • Technique dans le dépôt en markdown • Fonctionnelle dans Confluence
  19. 19. Conventions • CodeReview systématique • CodingStandard • PSR-2 • hook de commits • SensioLabs Insight
  20. 20. Deploy • Depuis hôte avec Capifony/Capistrano • On se penche sur la création de build par la stack CI
  21. 21. Conclusion
  22. 22. Conclusion • Pas mal de souci avec vagrant/virtualbox (DNS, NFS) • Beaucoup d'énergie sur la couche infra • Ne pas tout changer en même temps 🙀
  23. 23. Conclusion • Objectif atteint • Montée en compétences rapide et cadrées sur les projets • Stack infra carrée -> Offre Hosting Elao • Qualité augmentée sans impact pour le projet 😺
  24. 24. Conclusion • Les technos vont plus vite que les projets • Résister aux sirènes des nouvelles techno, mais pas trop • Pragmatisme, se focus sur ce qui apporte le plus de valeur ajoutée ⚠
  25. 25. Merci
  26. 26. Stand Espace de networking www.lazerdrive.io Ce soir à 18h10 dans l’amphi

×