Orchestrez vos projets Symfony sans fausses notes

26
Orchestrez vos projets Symfony sans fausses notes 28/10/2015 @xgorse Xavier Gorse

Transcript of Orchestrez vos projets Symfony sans fausses notes

Page 1: Orchestrez vos projets Symfony sans fausses notes

Orchestrez vos projets Symfony sans fausses notes

28/10/2015

@xgorse

Xavier Gorse

Page 2: Orchestrez vos projets Symfony sans fausses notes

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

Page 3: Orchestrez vos projets Symfony sans fausses notes

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

Page 4: Orchestrez vos projets Symfony sans fausses notes

Env de dev

• Homogène : 100% Mac / OSX

• Performant : SSD avec pas mal de RAM

• Virtualisation complète avec Vagrant et Virtualbox

Page 5: Orchestrez vos projets Symfony sans fausses notes

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

Page 6: Orchestrez vos projets Symfony sans fausses notes

Architecture Applicative

Page 7: Orchestrez vos projets Symfony sans fausses notes

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

Page 8: Orchestrez vos projets Symfony sans fausses notes

Architecture Applicative

Bundles

• Les plus léger et autonomes possible

• Orchestration entre le Domain et le framework

• De la glue entre interface et metier

Page 9: Orchestrez vos projets Symfony sans fausses notes

Elao Symfony Standard

Page 10: Orchestrez vos projets Symfony sans fausses notes

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

Page 11: Orchestrez vos projets Symfony sans fausses notes

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

Page 12: Orchestrez vos projets Symfony sans fausses notes

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

Page 13: Orchestrez vos projets Symfony sans fausses notes

Elao Symfony Standard

Tools

• Mailcatcher

• Supervisor

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

• PhpMyAdmin

Page 14: Orchestrez vos projets Symfony sans fausses notes

Elao Symfony Standard

Test

• PHPUnit

• Behat

Page 15: Orchestrez vos projets Symfony sans fausses notes

Elao Symfony Standard

Make : Homogénéisation de l'interface projet

• make setup

• make test

• make deploy@demo

• make deploy@prod

Page 16: Orchestrez vos projets Symfony sans fausses notes

Elao Symfony Standard

Au final c’est aussi simple que cela

• composer create-project elao/symfony-standard

• ou git clone

• puis make setup

Page 17: Orchestrez vos projets Symfony sans fausses notes

Conventions

Page 18: Orchestrez vos projets Symfony sans fausses notes

Conventions

• Make

• Workflow git basé sur le Github Flow

• Documentation

• Technique dans le dépôt en markdown

• Fonctionnelle dans Confluence

Page 19: Orchestrez vos projets Symfony sans fausses notes

Conventions

• CodeReview systématique

• CodingStandard

• PSR-2

• hook de commits

• SensioLabs Insight

Page 20: Orchestrez vos projets Symfony sans fausses notes

Deploy

• Depuis hôte avec Capifony/Capistrano

• On se penche sur la création de build par la stack CI

Page 21: Orchestrez vos projets Symfony sans fausses notes

Conclusion

Page 22: Orchestrez vos projets Symfony sans fausses notes

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

🙀

Page 23: Orchestrez vos projets Symfony sans fausses notes

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

😺

Page 24: Orchestrez vos projets Symfony sans fausses notes

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

Page 25: Orchestrez vos projets Symfony sans fausses notes

Merci

Page 26: Orchestrez vos projets Symfony sans fausses notes

Stand Espace de networking

www.lazerdrive.io

Ce soir à 18h10 dans l’amphi