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 (F...
Standard > Devops > Intégration continue > Déploiement 
Pourquoi faire de l'industrialisation ? 
Et pourquoi du standard ?...
Standard > Devops > Intégration continue > Déploiement 
PHP : www.php-fig.com 
PHP Framework Interop Group 
● Agavi - Davi...
Standard > Devops > Intégration continue > Déploiement 
Dépendances de librairie 
Avec composer 
● packagist.org 
● 43 408...
Standard > Devops > Intégration continue > Déploiement 
Trop d'environnements 
● Quel runtime php choisir ? 
Devops 
php-c...
Standard > Devops > Intégration continue > Déploiement 
Vagrant 
Virtual environments 
Si ça marche en local, ça marche en...
Standard > Devops > Intégration continue > Déploiement 
Intégration continue 
Ou Assurance qualité (QA) 
Ça commence avec ...
Standard > Devops > Intégration continue > Déploiement 
Outils de tests 
● PHPUnit ou Atoum : Framework de tests unitaires...
Standard > Devops > Intégration continue > Déploiement 
La mise en production 
Problèmes : 
● Envoyer le code du projet su...
Standard > Devops > Intégration continue > Déploiement 
Ce qui faut retenir : 
Conclusion 
● Respecter les standards 
● Ne...
Liste de chaîne youtube à suivre : 
● AFUP PHP 
● SensioLabs 
● ELAO – Lyon 
● DutchPHPConference 
● takeoffconference 
● ...
Prochain SlideShare
Chargement dans…5
×

l'Industrialisation (avec PHP) @MMIConnect

886 vues

Publié le

Survole de l'industrialisation pour les étudiants pour http://src-media.com/ et d'anciens étudiants.

Inspirez de http://hoa-project.net/Fr/Event/Phptour14.html pour le Slide 8.

Publié dans : Formation
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
886
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Documentation fonctionnel & technique
  • Standard = partage (privée ou open source)
  • Faites du mirror
  • Évite les régressions
  • Goutte : PHP
    Selenium : Navigateur en Java
    BrowserKit : PHP
    Zombie : Navigateur en nodejs
  • l'Industrialisation (avec PHP) @MMIConnect

    1. 1. INDUSTRIALISATION (avec PHP) > Conférence MMI Connect > 06 Décembre 2014
    2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

    ×