Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

l'Industrialisation (avec PHP) @MMIConnect

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 12 Publicité

l'Industrialisation (avec PHP) @MMIConnect

Télécharger pour lire hors ligne

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.

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.

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Similaire à l'Industrialisation (avec PHP) @MMIConnect (20)

Publicité

Plus récents (20)

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

Notes de l'éditeur

  • 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

×