orchestrez vos projets symfony sans fausses notes
Post on 14-Apr-2017
700 Views
Preview:
TRANSCRIPT
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, Montpellier)
• +200 projets symfony initiés depuis 2006
• Partenaire officiel SensioLabs
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
Env de dev
• Homogène : 100% Mac / OSX
• Performant : SSD avec pas mal de RAM
• Virtualisation complète avec Vagrant et Virtualbox
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
Architecture Applicative
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
Architecture Applicative
Bundles
• Les plus léger et autonomes possible
• Orchestration entre le Domain et le framework
• De la glue entre interface et metier
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"
• Image Vagrant sur Debian Wheezy
• Open et dispo sur Github : https://github.com/Elao/symfony-standard
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
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
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 deploy@prod
Elao Symfony Standard
Au final c’est aussi simple que cela
• composer create-project elao/symfony-standard
• ou git clone
• puis make setup
Conventions
Conventions
• Make
• Workflow git basé sur le Github Flow
• Documentation
• Technique dans le dépôt en markdown
• Fonctionnelle dans Confluence
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 changer en même temps
🙀
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
😺
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
⚠
Merci
top related