SlideShare a Scribd company logo
1 of 26
Download to read offline
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
Stand Espace de networking
www.lazerdrive.io
Ce soir à 18h10 dans l’amphi

More Related Content

What's hot

Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epitaNoel GUILBERT
 
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Tony Galmiche
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyXavier Gorse
 
Symfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesSymfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesAbdelkader Rhouati
 
Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Philippe Gamache
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2Hugo Hamon
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfonyJeremy Gachet
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overviewSymfonyMu
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkHugo Hamon
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les ProfessionnelsFabien Potencier
 
Symfony2 Presentation
Symfony2 PresentationSymfony2 Presentation
Symfony2 Presentationyllieth
 
Formation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsFormation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsKNP Labs
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonyVincent Composieux
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3Nicolas Lœuillet
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIRomain Cambien
 
Active Server Pages (ASP)
Active Server Pages (ASP)Active Server Pages (ASP)
Active Server Pages (ASP)Saïd Radhouani
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Guillaume Sautereau
 

What's hot (20)

Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epita
 
Symfony 2 et le Web
Symfony 2 et le WebSymfony 2 et le Web
Symfony 2 et le Web
 
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
 
Symfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulairesSymfony 2 : chapitre 4 - Les services et les formulaires
Symfony 2 : chapitre 4 - Les services et les formulaires
 
Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009Une application en deux heure - PHP Québec Janvier 2009
Une application en deux heure - PHP Québec Janvier 2009
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Presentation du framework symfony
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfony
 
Symfony3 overview
Symfony3 overviewSymfony3 overview
Symfony3 overview
 
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend FrameworkExposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
Exposer des services web SOAP et REST avec symfony 1.4 et Zend Framework
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnels
 
Symfony2 Presentation
Symfony2 PresentationSymfony2 Presentation
Symfony2 Presentation
 
Formation Symfony2 par KNP Labs
Formation Symfony2 par KNP LabsFormation Symfony2 par KNP Labs
Formation Symfony2 par KNP Labs
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3
 
PHP5 et Zend Framework
PHP5 et Zend FrameworkPHP5 et Zend Framework
PHP5 et Zend Framework
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
Active Server Pages (ASP)
Active Server Pages (ASP)Active Server Pages (ASP)
Active Server Pages (ASP)
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 

Viewers also liked

Symfony Debug & VarDumper
Symfony Debug & VarDumperSymfony Debug & VarDumper
Symfony Debug & VarDumpernicolas.grekas
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditauto entrepreneur
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony Imad ZAIRIG
 
Conference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisConference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisChipway
 
Symfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur AzureSymfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur AzureStéphane ESCANDELL
 
Drupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteDrupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteVanessa David
 
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)Fabien Potencier
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ ekino
 
French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0XebiaLabs
 
Design patterns avec Symfony
Design patterns avec SymfonyDesign patterns avec Symfony
Design patterns avec SymfonyMohammed Rhamnia
 
Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Claude Falguiere
 
Symfony Live Paris 2016 - Ce que nous avons retenu
Symfony Live Paris 2016 - Ce que nous avons retenuSymfony Live Paris 2016 - Ce que nous avons retenu
Symfony Live Paris 2016 - Ce que nous avons retenuSooyoos
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 

Viewers also liked (20)

Presentation symfony
Presentation symfonyPresentation symfony
Presentation symfony
 
Symfony Debug & VarDumper
Symfony Debug & VarDumperSymfony Debug & VarDumper
Symfony Debug & VarDumper
 
Boostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpeditBoostez vos-developpements-symfony-avec-phpedit
Boostez vos-developpements-symfony-avec-phpedit
 
La Console Symfony
La Console Symfony La Console Symfony
La Console Symfony
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
 
Drupal 8
Drupal 8Drupal 8
Drupal 8
 
Conference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à ParisConference drupal 8 au Forum PHP 2013 à Paris
Conference drupal 8 au Forum PHP 2013 à Paris
 
Symfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur AzureSymfony live Paris 2014 - Symfony2 sur Azure
Symfony live Paris 2014 - Symfony2 sur Azure
 
Drupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnanteDrupal 8 + Symfony 2 = une équipe gagnante
Drupal 8 + Symfony 2 = une équipe gagnante
 
Symfonytn
SymfonytnSymfonytn
Symfonytn
 
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
symfony: Un Framework Open-Source pour les Entreprises (Solutions Linux 2008)
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0
 
Design patterns avec Symfony
Design patterns avec SymfonyDesign patterns avec Symfony
Design patterns avec Symfony
 
Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011
 
Symfony Live Paris 2016 - Ce que nous avons retenu
Symfony Live Paris 2016 - Ce que nous avons retenuSymfony Live Paris 2016 - Ce que nous avons retenu
Symfony Live Paris 2016 - Ce que nous avons retenu
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
B - Web Sites Story
B - Web Sites StoryB - Web Sites Story
B - Web Sites Story
 
Debra Brooker FR1
Debra Brooker FR1Debra Brooker FR1
Debra Brooker FR1
 

Similar to Orchestrez vos projets Symfony sans fausses notes

What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontZenika
 
Industrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPIndustrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPhalleck45
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureMarc Nazarian
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureJonathan Bonzy
 
Alphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NETAlphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NETAlphorm
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Normandie Web Xperts
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyFrançois Petitit
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...ALTER WAY
 
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfonyPerformance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfonyXavier Leune
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptMichael Akbaraly
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsZenikaOuest
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Camille Roux
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
symfony : Simplifier le développement des interfaces bases de données (PHP ...
symfony : Simplifier le développement des interfaces bases de données (PHP ...symfony : Simplifier le développement des interfaces bases de données (PHP ...
symfony : Simplifier le développement des interfaces bases de données (PHP ...Fabien Potencier
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Frederic Dewinne
 

Similar to Orchestrez vos projets Symfony sans fausses notes (20)

What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. Darmont
 
Industrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHPIndustrialiser le contrat dans un projet PHP
Industrialiser le contrat dans un projet PHP
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Alphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NETAlphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NET
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
 
Presentation
PresentationPresentation
Presentation
 
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfonyPerformance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
symfony : Simplifier le développement des interfaces bases de données (PHP ...
symfony : Simplifier le développement des interfaces bases de données (PHP ...symfony : Simplifier le développement des interfaces bases de données (PHP ...
symfony : Simplifier le développement des interfaces bases de données (PHP ...
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?
 

Orchestrez vos projets Symfony sans fausses notes

  • 1. Orchestrez vos projets Symfony sans fausses notes 28/10/2015 @xgorse Xavier Gorse
  • 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
  • 13. Elao Symfony Standard Tools • Mailcatcher • Supervisor • Log.io mais bascule sur Heka/rtail prévue • PhpMyAdmin
  • 14. Elao Symfony Standard Test • PHPUnit • Behat
  • 15. Elao Symfony Standard Make : Homogénéisation de l'interface projet • make setup • make test • make deploy@demo • make deploy@prod
  • 16. Elao Symfony Standard Au final c’est aussi simple que cela • composer create-project elao/symfony-standard • ou git clone • puis make setup
  • 18. Conventions • Make • Workflow git basé sur le Github Flow • Documentation • Technique dans le dépôt en markdown • Fonctionnelle dans Confluence
  • 19. Conventions • CodeReview systématique • CodingStandard • PSR-2 • hook de commits • SensioLabs Insight
  • 20. Deploy • Depuis hôte avec Capifony/Capistrano • On se penche sur la création de build par la stack CI
  • 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 ⚠
  • 25. Merci
  • 26. Stand Espace de networking www.lazerdrive.io Ce soir à 18h10 dans l’amphi