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
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. 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. Env de dev
• Homogène : 100% Mac / OSX
• Performant : SSD avec pas mal de RAM
• Virtualisation complète avec Vagrant et Virtualbox
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
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. Architecture Applicative
Bundles
• Les plus léger et autonomes possible
• Orchestration entre le Domain et le framework
• De la glue entre interface et metier
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. 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. 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
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. 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. 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
⚠