Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Industrialiser son ou ses projets WordPress - WordCamp Paris 2014

Amaury Balmer
January 17, 2014

Industrialiser son ou ses projets WordPress - WordCamp Paris 2014

WordPress est le CMS le plus utilisé sur Internet. Sa mythique installation en 5 minutes a permis de le démocratiser à un tel point qu’une grande majorité de ses utilisateurs sont des non-techniciens. Un CMS grand public, mais aussi un CMS de plus en plus apprécié et demandé par les professionnels.

Il devient alors nécessaire d’appliquer les méthodes d’industrialisation des projets web standards à son CMS préféré. La présentation veillera à présenter les mécanismes clefs de l’industrialisation d’un projet WordPress avec un discours adapté à l’ensemble des populations concernées par un projet web: le client, le chef de projet, le développeur et le devops (hébergeur/sysadmin).

Amaury Balmer

January 17, 2014
Tweet

More Decks by Amaury Balmer

Other Decks in Technology

Transcript

  1. + Votre orateur n  Amaury BALMER n  CTO de l’agence

    BE API n  Ancien de la team WP-FR n  Co-auteur du book WordPress by Pearson n  WP Addict since 2005 ! n  Twitter n  @herewithme n  @be_api n  Web n  herewithme.fr n  beapi.fr n  [email protected]
  2. + Pourquoi cette conférence ? n  5 ans de péripétie

    à BeAPI n  Taille d’équipe en constante évolution n  Nouvelles technologies n  Contraintes clientes n  La TMA prend une part de + en + importante
  3. + THE CHECKLIST n  Faire appel à des experts n 

    Former les équipes n  Appliquer une convention de programmation n  Utiliser un dépot de code n  Utiliser un framework n  Adopter un IDE de développement n  Outil de ticketing n  Tests unitaires n  Tests fonctionnels n  Analyse statique n  Intégration continue n  Déploiement automatisé
  4. + Pourquoi ? n  WP couvre un périmètre très large

    n  Budget n  Fonctionnalité n  Client n  Trouver le bon ratio n  Des méthodes applicables à tout type de projet
  5. + Au sommaire 1.  Un environnement de développement au TOP

    ! 2.  Combien d’environnements pour un projet ? 3.  Industrialiser les déploiements de son applicatif 4.  Comment recetter efficacement ses projets ? 5.  Quelle organisation pour la TMA ?
  6. +

  7. + Corruption de fichiers n  Prévoir le pire n  Incidents

    externe: n  Coupure de courant n  Coupure de connexion internet n  Plantage système n  Quota disque atteint n  Perte totale ou partielle de son travail
  8. +

  9. + Quel outil de SCM ? n  Centralisé n  Simple

    à apprendre n  Gestion des branches chaotique n  Merge catastrophique n  WordPress l’utilise… n  Décentralisé n  Plus complexe à maitriser n  Gestion des branches incroyable n  Merge qui fonctionne n  Github SVN GIT
  10. + Différences n  Système hôte (Windows/Linux/Mac OS) n  Version de

    PHP/Apache/MySQL n  Dimensionnement de la machine (RAM/CPU/DISK)
  11. + Dépendances n  Memcached n  Cache objet n  Elastic Search

    n  Recherche sémantique n  Il est parfois impossible d’installer ces softs sur Windows ou Mac !
  12. +

  13. + Pour commencer n  Genesis WordPress n  https://github.com/genesis/wordpress n  Salty

    WordPress n  https://github.com/humanmade/Salty-WordPress n  VIP Quickstart n  https://github.com/Automattic/vip-quickstart
  14. + Export / Import de la BDD n  Classique :

    PhpMyAdmin n  Alternative : Adminer n  Serveur : mysql / mysqldump n  Spécialisé : n  bigdump n  mysqldumper
  15. + Copie des fichiers n  Serveur à serveur : n 

    RSYNC n  LFTP n  CurlFTPS ! n  Alternative n  Création d’une archive, transfert, puis extraction n  Téléchargement en local puis renvoi… L
  16. + Méthodes à oublier n  Constantes n  define('WP_HOME','http://example.com');   n 

    define('WP_SITEURL','http://example.com');   n  Requêtes SQL n  Rechercher/remplacer dans le fichier d’export SQL n  Plugins
  17. + Méthodes à considérer n  Scripts PHP autonome & générique

    ! n  Search Replace DB n  https://github.com/interconnectit/Search-Replace-DB n  DBSR: Database Search & Replace n  https://github.com/DvdGiessen/DBSR n  Plus fiable, plus rapide
  18. + Automatisation d’actions n  Backup complète n  Vérifier que l’environnement

    est prêt à recevoir une nouvelle version (espace disque, charge serveur) n  Récupérer les modifications à appliquer n  Appliquer les modifications n  Nettoyer les caches applicatifs s’ils existent n  Et à tout moment : Rollback ! n  Prévoir le pire
  19. + Quels types d’accès ? 0 1 2 3 4

    5 6 0 2 4 6 8 10 Marge de manoeuvre Complexité
  20. + <?php   $blogs  =  get_blogs();     foreach  (

     $blogs  as  $blog  )  {    switch_to_blog(  $blog-­‐>blog_id  );      activate_plugin(  'bacf-­‐addon1/acf-­‐addon1.php',  true  );    activate_plugin(  'bacf-­‐addon2/acf-­‐addon2.php',  true  );    activate_plugin(  'bacf-­‐addon3/acf-­‐addon3.php',  true  );         }
  21. wp-­‐cli  plugin  enable  ‘acf-­‐addon1’  –-­‐network   wp-­‐cli  plugin  enable  ‘acf-­‐addon2’

     –-­‐network   wp-­‐cli  plugin  enable  ‘acf-­‐addon3’  –-­‐network  
  22. + Groupe Test Réussi Espace utilisateur Créer un compte sans

    FB Oui Créer un compte avec FB Non Modifier son avatar Oui Modifier ses informations personnelles Oui Modifier son mot de passe Oui Supprimer son compte Oui Créer une galerie Oui Ajouter une photo Non Etc…
  23. + Kesako ? n  Extension Firefox n  Enregistrer un scénario

    n  Créer un compte utilisateur n  Ajouter une photo n  Ajouter un commentaire n  Exécuter un scénario ponctuellement n  Application Java n  Executer massivement des scénarios n  Firefox n  Chrome n  IE Selenium IDE Selenium WebDriver
  24. +

  25. + 1 ticket n  Date de création n  Rapporteur n 

    Sujet n  Description n  Captures d’écran n  Navigateurs affectés n  Etc.