SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

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

Notes de l'éditeur

  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