SlideShare a Scribd company logo
1 of 12
INDUSTRIALISATION (avec PHP) 
> Conférence MMI Connect 
> 06 Décembre 2014
Florent Denis 
Développeur PHP Sénior @Paris 
● Promo 2007/2009 SRC + 1 an licence SLIC + 2 ans PSM 
● 2 ans chez Ekino (Fullsix) 
● Depuis octobre chez Oxent. 
● 7 ans de PHP (depuis le lycée) 
● twitter.com/florentdenis 
● github.com/pokap 
Qui suis­je 
?
Standard > Devops > Intégration continue > Déploiement 
Pourquoi faire de l'industrialisation ? 
Et pourquoi du standard ? 
● Tout le monde connaît (normalement) les standards. 
● Ne pas réinventer la roue 
● Avoir un processus de travail valide 
● Projet collaboratif 
● Documentation 
● Le code en anglais 
Standard
Standard > Devops > Intégration continue > Déploiement 
PHP : www.php-fig.com 
PHP Framework Interop Group 
● Agavi - David Zülke (@dzuelke) 
● AWS SDK for PHP (Amazon Web Services) - Michael Dowling (@mtdowling) 
● Apache log4php - Ivan Habunek (@ihabunek) 
● Assetic and Buzz - Kris Wallsmith (@kriswallsmith) 
● Aura Project and Solar Framework - Paul M. Jones (@pmjones) 
● CakePHP - Larry Masters (@PhpNut) 
● Composer - Jordi Boggiano (@seldaek) 
● Concrete5 - Korvin Szanto (@korvinszanto) 
● Contao Open Source CMS - Leo Feyer (@leofeyer) 
● Doctrine - Guilherme Blanco (@guilhermeblanco) 
● Drupal - Larry Garfield (@Crell) 
● eZ Publish - Andre Romcke (@andrerom) 
● TYPO3 Flow - Karsten Dambekalns (@kdambekalns) 
● Jackalope - Lukas Kahwe Smith (@lsmith) 
● Joomla - Don Gilbert (@dilbert4life) 
● Laravel - Taylor Otwell (@taylorotwell) 
● Lithium - Nate Abele (@nateabele) 
● PEAR - Brett Bieber (@saltybeagle) 
● Phalcon - Andres Gutierrez (@phalconphp) 
● Phing - Michiel Rook (@michieltcs) 
● phpBB - Nils Adermann (@naderman) 
● phpDocumentor - Mike van Riel (@mvriel) 
● PPI Framework - Paul Dragoonis (@dr4goonis) 
● PrestaShop - Rémi Gaillard (@xtaz07) 
● Propel - William Durand (@couac) 
● PyroCMS - Phil Sturgeon (@philsturgeon) 
● Revive Adserver - Matteo Beccati (@mbeccati) 
● SabreDAV - Evert Pot (@evertp) 
● Sculpin - Beau D. Simensen (@beausimensen) 
● Stash - Robert Hafner (@tedivm) 
● SugarCRM - Filipe Guerra (@alias_mac) 
● Symfony2 - Bernhard Schussek (@webmozart) 
● The community at large - Cal Evans (@CalEvans) 
● Wikibase and Semantic MediaWiki - Jeroen De Dauw (@JeroenDeDauw) 
● Yii framework - Alexander Makarov (@sam_dark) 
● Zend Framework 2 - Pádraic Brady (@padraicb) 
● Zikula - Karma Dordrak (@zikuladrak)
Standard > Devops > Intégration continue > Déploiement 
Dépendances de librairie 
Avec composer 
● packagist.org 
● 43 408 packages registered 
● 177 225 versions available 
● 433 926 554 packages installed (since 2012-04-13) 
● Semantic Versioning : semver.org
Standard > Devops > Intégration continue > Déploiement 
Trop d'environnements 
● Quel runtime php choisir ? 
Devops 
php-cgi, php-fpm, mod_php5, hhvm, hippyvm, … 
● Quelle distribution ? 
Ubuntu, Debian, Redhat, Centos, Windows, … 
● Et quels logiciels nécessaires ? 
Mysql, Mariadb, Mongodb, Memcached, Redis, Varnish, Nginx, RabbitMQ, … 
● Combien de développeurs dans votre équipe ?
Standard > Devops > Intégration continue > Déploiement 
Vagrant 
Virtual environments 
Si ça marche en local, ça marche en prod. 
● Couche d'abstraction pour contrôler votre machine virtuel 
VirtualBox, VMWare, Docker ou Hyper-V 
● Un simple fichier de configuration (Vagrantfile) 
● Tous les développeurs travail sur la même base de travail 
● Utiliser des outils de provisioning 
Puppet ou Chef (ruby)
Standard > Devops > Intégration continue > Déploiement 
Intégration continue 
Ou Assurance qualité (QA) 
Ça commence avec les tests 
et les tests c'est pour ceux qui savent coder 
préambule (given) : place le système dans un état particulier (optionel) 
+ données (when) : test, exécute le système 
+ oracle (then) : établit le verdict 
= cas de test 
Valeurs du verdict : succès, échec ou inconclusif
Standard > Devops > Intégration continue > Déploiement 
Outils de tests 
● PHPUnit ou Atoum : Framework de tests unitaires 
● Behat : Outils de scénario 
– Behat + Mink = permet de faire des requêtes HTTP 
– Drivers : Goutte, Selenium, BrowserKit, Zombie, etc. 
● PHPSpec : Framework de spécification 
Jenkins : 
● Centralisation de tâches 
● Cycle de tests & build 
● Automatisation de déploiement
Standard > Devops > Intégration continue > Déploiement 
La mise en production 
Problèmes : 
● Envoyer le code du projet sur un ou plusieurs serveur(s) distant(s). 
● Lancer des tâches de mise à jour (assets, abonnements API, etc.) 
● Être sûr d'avoir votre projet commit sur tous vos serveurs en même temps. 
Solutions : 
● Capistrano 
● Fabric 
● Deployer 
Déploiement
Standard > Devops > Intégration continue > Déploiement 
Ce qui faut retenir : 
Conclusion 
● Respecter les standards 
● Ne réinventez pas la roue 
● Écrivez de la documentation 
● Valider vos travaux 
● Automatiser les tâches
Liste de chaîne youtube à suivre : 
● AFUP PHP 
● SensioLabs 
● ELAO – Lyon 
● DutchPHPConference 
● takeoffconference 
● Zend 
● ... 
Standard > Devops > Intégration continue > Déploiement 
Bonus : conférences

More Related Content

What's hot

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
 
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
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuAhmed Archive
 
Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3 Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3 Roland Benedetti
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteStephane Couzinier
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIHugo Hamon
 
Django pour les développeurs Symfony (et réciproquement)
Django pour les développeurs Symfony (et réciproquement)Django pour les développeurs Symfony (et réciproquement)
Django pour les développeurs Symfony (et réciproquement)Nicolas Perriault
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+ekino
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Firas Kouẞàa
 
Gulp fiction, Builder, tester, livrer, sans tomber dans les poms - breizhcam...
Gulp fiction, Builder, tester, livrer, sans tomber dans les poms  - breizhcam...Gulp fiction, Builder, tester, livrer, sans tomber dans les poms  - breizhcam...
Gulp fiction, Builder, tester, livrer, sans tomber dans les poms - breizhcam...mbrechet
 
Du Docker dans notre workflow de dev
Du Docker dans notre workflow de devDu Docker dans notre workflow de dev
Du Docker dans notre workflow de devKodo Kojo
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Ippon
 
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
 
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
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizonMicrosoft
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010JUG Lausanne
 

What's hot (20)

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
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
 
Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3 Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverte
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CI
 
Le nouveau portail
Le nouveau portailLe nouveau portail
Le nouveau portail
 
Django pour les développeurs Symfony (et réciproquement)
Django pour les développeurs Symfony (et réciproquement)Django pour les développeurs Symfony (et réciproquement)
Django pour les développeurs Symfony (et réciproquement)
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 
JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
 
Gulp fiction, Builder, tester, livrer, sans tomber dans les poms - breizhcam...
Gulp fiction, Builder, tester, livrer, sans tomber dans les poms  - breizhcam...Gulp fiction, Builder, tester, livrer, sans tomber dans les poms  - breizhcam...
Gulp fiction, Builder, tester, livrer, sans tomber dans les poms - breizhcam...
 
Du Docker dans notre workflow de dev
Du Docker dans notre workflow de devDu Docker dans notre workflow de dev
Du Docker dans notre workflow de dev
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
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
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
 

Similar to l'Industrialisation (avec PHP) @MMIConnect

Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continuneuros
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHPPierre MARTIN
 
Embarquer le web dans un smartphone Firefox OS - RMLL 2015
Embarquer le web dans un smartphone Firefox OS - RMLL 2015Embarquer le web dans un smartphone Firefox OS - RMLL 2015
Embarquer le web dans un smartphone Firefox OS - RMLL 2015Christophe Villeneuve
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxThomasParaiso1
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)LaNetscouade
 
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
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6Microsoft
 
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
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Jonathan Martin
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQubeVincent Biret
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenableLeTesteur
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
Introduction à Zend Framework
Introduction à Zend FrameworkIntroduction à Zend Framework
Introduction à Zend FrameworkGauthier Delamarre
 

Similar to l'Industrialisation (avec PHP) @MMIConnect (20)

Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
Introduction à CakePHP
Introduction à CakePHPIntroduction à CakePHP
Introduction à CakePHP
 
Embarquer le web dans un smartphone Firefox OS - RMLL 2015
Embarquer le web dans un smartphone Firefox OS - RMLL 2015Embarquer le web dans un smartphone Firefox OS - RMLL 2015
Embarquer le web dans un smartphone Firefox OS - RMLL 2015
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptx
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
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
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 
Installation open erp
Installation open erpInstallation open erp
Installation open erp
 
Pas possible en drupal, c'est faux
Pas possible en drupal, c'est fauxPas possible en drupal, c'est faux
Pas possible en drupal, c'est faux
 
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 !
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube
 
Code Sprint Odoo Montréal
Code Sprint Odoo MontréalCode Sprint Odoo Montréal
Code Sprint Odoo Montréal
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
Introduction à Zend Framework
Introduction à Zend FrameworkIntroduction à Zend Framework
Introduction à Zend Framework
 

Recently uploaded

presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 

Recently uploaded (16)

presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 

l'Industrialisation (avec PHP) @MMIConnect

  • 1. INDUSTRIALISATION (avec PHP) > Conférence MMI Connect > 06 Décembre 2014
  • 2. Florent Denis Développeur PHP Sénior @Paris ● Promo 2007/2009 SRC + 1 an licence SLIC + 2 ans PSM ● 2 ans chez Ekino (Fullsix) ● Depuis octobre chez Oxent. ● 7 ans de PHP (depuis le lycée) ● twitter.com/florentdenis ● github.com/pokap Qui suis­je ?
  • 3. Standard > Devops > Intégration continue > Déploiement Pourquoi faire de l'industrialisation ? Et pourquoi du standard ? ● Tout le monde connaît (normalement) les standards. ● Ne pas réinventer la roue ● Avoir un processus de travail valide ● Projet collaboratif ● Documentation ● Le code en anglais Standard
  • 4. Standard > Devops > Intégration continue > Déploiement PHP : www.php-fig.com PHP Framework Interop Group ● Agavi - David Zülke (@dzuelke) ● AWS SDK for PHP (Amazon Web Services) - Michael Dowling (@mtdowling) ● Apache log4php - Ivan Habunek (@ihabunek) ● Assetic and Buzz - Kris Wallsmith (@kriswallsmith) ● Aura Project and Solar Framework - Paul M. Jones (@pmjones) ● CakePHP - Larry Masters (@PhpNut) ● Composer - Jordi Boggiano (@seldaek) ● Concrete5 - Korvin Szanto (@korvinszanto) ● Contao Open Source CMS - Leo Feyer (@leofeyer) ● Doctrine - Guilherme Blanco (@guilhermeblanco) ● Drupal - Larry Garfield (@Crell) ● eZ Publish - Andre Romcke (@andrerom) ● TYPO3 Flow - Karsten Dambekalns (@kdambekalns) ● Jackalope - Lukas Kahwe Smith (@lsmith) ● Joomla - Don Gilbert (@dilbert4life) ● Laravel - Taylor Otwell (@taylorotwell) ● Lithium - Nate Abele (@nateabele) ● PEAR - Brett Bieber (@saltybeagle) ● Phalcon - Andres Gutierrez (@phalconphp) ● Phing - Michiel Rook (@michieltcs) ● phpBB - Nils Adermann (@naderman) ● phpDocumentor - Mike van Riel (@mvriel) ● PPI Framework - Paul Dragoonis (@dr4goonis) ● PrestaShop - Rémi Gaillard (@xtaz07) ● Propel - William Durand (@couac) ● PyroCMS - Phil Sturgeon (@philsturgeon) ● Revive Adserver - Matteo Beccati (@mbeccati) ● SabreDAV - Evert Pot (@evertp) ● Sculpin - Beau D. Simensen (@beausimensen) ● Stash - Robert Hafner (@tedivm) ● SugarCRM - Filipe Guerra (@alias_mac) ● Symfony2 - Bernhard Schussek (@webmozart) ● The community at large - Cal Evans (@CalEvans) ● Wikibase and Semantic MediaWiki - Jeroen De Dauw (@JeroenDeDauw) ● Yii framework - Alexander Makarov (@sam_dark) ● Zend Framework 2 - Pádraic Brady (@padraicb) ● Zikula - Karma Dordrak (@zikuladrak)
  • 5. Standard > Devops > Intégration continue > Déploiement Dépendances de librairie Avec composer ● packagist.org ● 43 408 packages registered ● 177 225 versions available ● 433 926 554 packages installed (since 2012-04-13) ● Semantic Versioning : semver.org
  • 6. Standard > Devops > Intégration continue > Déploiement Trop d'environnements ● Quel runtime php choisir ? Devops php-cgi, php-fpm, mod_php5, hhvm, hippyvm, … ● Quelle distribution ? Ubuntu, Debian, Redhat, Centos, Windows, … ● Et quels logiciels nécessaires ? Mysql, Mariadb, Mongodb, Memcached, Redis, Varnish, Nginx, RabbitMQ, … ● Combien de développeurs dans votre équipe ?
  • 7. Standard > Devops > Intégration continue > Déploiement Vagrant Virtual environments Si ça marche en local, ça marche en prod. ● Couche d'abstraction pour contrôler votre machine virtuel VirtualBox, VMWare, Docker ou Hyper-V ● Un simple fichier de configuration (Vagrantfile) ● Tous les développeurs travail sur la même base de travail ● Utiliser des outils de provisioning Puppet ou Chef (ruby)
  • 8. Standard > Devops > Intégration continue > Déploiement Intégration continue Ou Assurance qualité (QA) Ça commence avec les tests et les tests c'est pour ceux qui savent coder préambule (given) : place le système dans un état particulier (optionel) + données (when) : test, exécute le système + oracle (then) : établit le verdict = cas de test Valeurs du verdict : succès, échec ou inconclusif
  • 9. Standard > Devops > Intégration continue > Déploiement Outils de tests ● PHPUnit ou Atoum : Framework de tests unitaires ● Behat : Outils de scénario – Behat + Mink = permet de faire des requêtes HTTP – Drivers : Goutte, Selenium, BrowserKit, Zombie, etc. ● PHPSpec : Framework de spécification Jenkins : ● Centralisation de tâches ● Cycle de tests & build ● Automatisation de déploiement
  • 10. Standard > Devops > Intégration continue > Déploiement La mise en production Problèmes : ● Envoyer le code du projet sur un ou plusieurs serveur(s) distant(s). ● Lancer des tâches de mise à jour (assets, abonnements API, etc.) ● Être sûr d'avoir votre projet commit sur tous vos serveurs en même temps. Solutions : ● Capistrano ● Fabric ● Deployer Déploiement
  • 11. Standard > Devops > Intégration continue > Déploiement Ce qui faut retenir : Conclusion ● Respecter les standards ● Ne réinventez pas la roue ● Écrivez de la documentation ● Valider vos travaux ● Automatiser les tâches
  • 12. Liste de chaîne youtube à suivre : ● AFUP PHP ● SensioLabs ● ELAO – Lyon ● DutchPHPConference ● takeoffconference ● Zend ● ... Standard > Devops > Intégration continue > Déploiement Bonus : conférences

Editor's Notes

  1. Documentation fonctionnel & technique
  2. Standard = partage (privée ou open source)
  3. Faites du mirror
  4. Évite les régressions
  5. Goutte : PHP Selenium : Navigateur en Java BrowserKit : PHP Zombie : Navigateur en nodejs