Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Automatisation des gestionnaires de contenus (CMS)

200 views

Published on

Présentation effectuée au Rencontres Mondiales du Logiciel Libre (RMLL) 2017 par Christophe Villeneuve sur "Automatisation des gestionnaires de contenus (CMS)".
Vous allez voir comment industrialiser et automatiser les CMS avec comme exemple le CMS Drupal

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Automatisation des gestionnaires de contenus (CMS)

  1. 1. Automatisation Gestionnaires de contenu CMS Christophe Villeneuve @hellosct1
  2. 2. Qui ??? Christophe Villeneuve mozilla reps - firefox os - B2GOS - ausy - afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – Libre@toi – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – elephpant - owasp -security
  3. 3. RMLL 2017 – 6 Juillet 2017 Les sites Webs à l'ancienne
  4. 4. RMLL 2017 – 6 Juillet 2017 Les sites Webs d'Aujourd'hui
  5. 5. RMLL 2017 – 6 Juillet 2017 Industrialisation ● = Usine à sites ● Répondre à 1 ou plusieurs objectifs – Le temps ● Délais court → Mise en production – Le coût ● Réduction du coût de fabrication – La maintenance ● Réduction du coût de maintenance – L'homogénéité ● Respect d'un catalogue de fonctionnalités ● Permettre une présence massive et cohérente
  6. 6. RMLL 2017 – 6 Juillet 2017 Les forces ● Ce n'est pas un outil de conception pour → Un seul et unique site ● Approche par couche ● Une gestion et utilisation simultanée pour plusieurs sites → Plusieurs méthodes → Plusieurs architectures possibles ● Point clé → Pas nécessaire d'installer plusieurs Drupal
  7. 7. RMLL 2017 – 6 Juillet 2017 Implémentation du contrôle d'accès !!! (1/2) ● Un pilotage des sites est unique ou non → Quel autonomie doit disposer chacun des sites ? ● Un visuel pour un visiteur : → Un site à part → Faisant partie d'un site unique
  8. 8. RMLL 2017 – 6 Juillet 2017 Implémentation du contrôle d'accès !!! (2/2) ● Le thème et la mise en page des contenus → Suivre une ligne éditorial précise ou non ● Un processus de publication → Unique ● Le contenu devra être partagé ou pas → Entre les différentes sites
  9. 9. RMLL 2017 – 6 Juillet 2017 Cas 1 : Installations distinctes (1/2) ● Approche autonome – Chaque utilisation unique – Contrôle complet ou presque complet ● Possibilité d'avoir des versions différentes du CMS ● Utilisation différentes ● Un fonctionnement différent ● Pas de mise à jour centralisée ● Connexion unique pour les modifications ● Impossible de partager de le même contenu sur plusieurs sites Avantages Inconvénients
  10. 10. RMLL 2017 – 6 Juillet 2017 Cas 1 : Installations distinctes (2/2) : Réalisation ● Réplication des nœuds ● Implémentations pour le référencement (SEO) ● La gestion des droits ● La gestion des profils ● La synchronisation ● Gestion – Noms de domaines distincts – Sous domaines
  11. 11. RMLL 2017 – 6 Juillet 2017 Cas 2 : Installations distinctes par Features (1/2) ● Variation de l'architecture ● Outil pour exporter la configuration d'un site ● Approche en micro- services ● Configuration mi- chemin : entre – Le contenu – La configuration Avantages Inconvénients
  12. 12. RMLL 2017 – 6 Juillet 2017 Cas 2 : Installations distinctes Features (2/2) ● Type de contenu ● Les vues ● La gestion des images ● La duplication de certaines fonctionnalités
  13. 13. RMLL 2017 – 6 Juillet 2017 Cas 3 :Multi-sites (1/3) ● 1 seul core ● Facilité la maintenance ● Economie au niveau mémoire vive des serveurs ● Une configuration unique Avantages Inconvénients
  14. 14. RMLL 2017 – 6 Juillet 2017 Cas 3 :Multi-sites (2/3) : Réalisations
  15. 15. RMLL 2017 – 6 Juillet 2017 Cas 3 : Multi-sites : Domain Access (1/3) ● 1 seul Drupal core ● Gestion unique ● Gestion des droits et uniques ● Gestion de plusieurs domaines ● Une seule structure – Type de contenu – Vues ● Les variations plus délicates Avantages Inconvénients
  16. 16. RMLL 2017 – 6 Juillet 2017 Cas 3 : Domain Access (2/3) : Réalisations
  17. 17. RMLL 2017 – 6 Juillet 2017 Environnement ● Linux – Debian, Ubuntu, Mint, CentOS, Redhat... ● Serveur : – Apache / Nginx ● Langage : – PHP 5.6 / PHP 7 ● Base de données : – MySQL / MariaDB / PostgreSQL ● Drupal – 7 ou 8 ● Cache externe : – Varnish / Akamaï
  18. 18. RMLL 2017 – 6 Juillet 2017 Outils ● Drush ● Drupal Console Drupal 7 et + Drupal 8
  19. 19. RMLL 2017 – 6 Juillet 2017 Drupal : en lignes de commande ● Composer ● YML ou classique ● Makefile ● Mode console ● Méthode Synfony $ drupal generate:module $ drupal generate:controller Drush Drupal Terminal
  20. 20. RMLL 2017 – 6 Juillet 2017 Install avec Drush (1/3) > drush dl drupal > cd drupal-8.2 > drush si standard -y --db-url=mysql://login:PWD@localhost/drupal_bdd --site-name="Drupal Ausy Nantes" --account-name=admin --account-pass=admin --account-mail=mail@mail.com
  21. 21. RMLL 2017 – 6 Juillet 2017 Install avec Drush (2/3) ● Download – Drupal – Modules contrib ● Install Drupal ● Update Drupal and contrib module versions ● Run updatedb ● Clear the cache ● Run cron ● Run Drupal with a lightweight web server ● Import, export and merge configuration ● Add users and set their roles ● Add permissions to roles ● Back up and restore Drupal ● Copy your database and files to a remote server ● Compile twig templates
  22. 22. RMLL 2017 – 6 Juillet 2017 Install avec Drush (3/3) Drupal 7 Drupal 8
  23. 23. RMLL 2017 – 6 Juillet 2017 Install avec Drupal console (1/3) > curl -sS https://getcomposer.org/installer | php > sudo mv composer.phar /usr/local/bin/composer > sudo composer create-project drupal-composer/drupal-project:$VERSION $DIR --stability dev –no-interaction > vendor/bin/drush si standard -y --db-url=$BDD_URL --site-mail=$MAIL --site-name=$NOMSITE --sites- subdir=$DIRMULTI --account-name=$LOGIN --account-pass=$PASSWORD --account-mail=$MAIL
  24. 24. RMLL 2017 – 6 Juillet 2017 Install avec Drupal Console (2/3) ● Installation à partir de 'composer' ● Produire du code – Console command – Content type – Controller – Entity – Form alter hook – Module – Field type, widget and formatter – Image effect – Rest resource – Service – Theme
  25. 25. RMLL 2017 – 6 Juillet 2017 Install avec Drupal Console (3/3) Drupal 8
  26. 26. RMLL 2017 – 6 Juillet 2017 Automatisation
  27. 27. RMLL 2017 – 6 Juillet 2017 Intégration continue Git Jenkins Behat Ansible ...
  28. 28. RMLL 2017 – 6 Juillet 2017 Behat Drive Développement (BDD) ● Framework de tests ● Axé sur le comportement Feature: Function to test description Free text Scenario: Scenario 1 Given preconditions When actions Then results Scenario: Scenario 2
  29. 29. RMLL 2017 – 6 Juillet 2017 Behat : exemple Scenario: Title Given I am on the homepage Then I should see "Drupal" Scenario: Log in Given I visit "/user" # fill the username and password input fields, and click submit When I fill in "Username" with "admin" And I fill in "Password" with "admin" And I press the "Log in" button Then I should get a "200" HTTP response And I should see text matching "Log out"
  30. 30. RMLL 2017 – 6 Juillet 2017 Test Drive Développement (TDD) ● Écrivez un test ● Exécutez le test ● Laissez le test échouer ● Écrire assez de code ● Exécutez votre test à nouveau ● Refactorez / nettoyer le code ● Exécutez le test à nouveau ● Répéter
  31. 31. RMLL 2017 – 6 Juillet 2017 Pourquuoi l'utiliser ? ● Meilleure compréhension → de ce que vous allez écrire ● Force la politique d'écriture → Un peu mieux ● Accélère le développement
  32. 32. RMLL 2017 – 6 Juillet 2017 Avantages de TDD ● Code testable ● Design propre ● Peut être refactoré avec confiance ● Le code minimal → Nécessaire pour satisfaire la carte d'histoire ● Une spécification personnelle → De fonctionnement du code ● Capable de soutenir un rythme → Soutenable de nouvelles fonctionnalités
  33. 33. RMLL 2017 – 6 Juillet 2017 Selenium
  34. 34. RMLL 2017 – 6 Juillet 2017 Automatisation ● Jenkins ● Hudson ● GitLab CI ● Travis CI
  35. 35. RMLL 2017 – 6 Juillet 2017 Merci @hellosct1 Questions

×