37
Les clés de la réussite d’un projet Drupal Marine Soroko, Quentin Delance

Drupagora - Les clés de la réussite d'un projet Drupal

Embed Size (px)

DESCRIPTION

Présentation du CMS Drupal pour l'évènement Drupagora du 9 novembre 2012. Ce diaporama donne les clés d'un démarrage projet réussi, les bonnes pratiques de développement ainsi que les outils et méthodes pour maintenir dans la durée un projet Drupal.

Citation preview

Page 1: Drupagora - Les clés de la réussite d'un projet Drupal

Les clés de la réussite d’un projet DrupalMarine Soroko, Quentin Delance

Page 2: Drupagora - Les clés de la réussite d'un projet Drupal

2

Sommaire

partie 1 Pourquoi Drupal est particulier

partie 2 Les clés d’un démarrage projet réussi

partie 3 Les bonnes pratiques de développement

partie 4 Les outils et méthodes pour maintenir dans la durée un projet Drupal

Page 3: Drupagora - Les clés de la réussite d'un projet Drupal

3 titre de la présentation

Pourquoi Drupal est si particulier

Page 4: Drupagora - Les clés de la réussite d'un projet Drupal

4

Un outil très riche…

La force de la communauté et la richesse modulaire

Des besoins de base non couverts par le core

Un outil extensible avec un certain niveau d’abstraction

Page 5: Drupagora - Les clés de la réussite d'un projet Drupal

5

Des méthodes de développement particulières

Utilisation de l’API et de hooks

Potentiellement très peu de développement

Des contraintes structurelles fortes

Page 6: Drupagora - Les clés de la réussite d'un projet Drupal

6

Une multitude de projets possibles

Internet

Communautaires

Extranet

Métier

Ecommerce

Page 7: Drupagora - Les clés de la réussite d'un projet Drupal

7

A compléter

La diversité Drupal

Page 8: Drupagora - Les clés de la réussite d'un projet Drupal

8

La diversité Drupal

Page 9: Drupagora - Les clés de la réussite d'un projet Drupal

9

La diversité Drupal

Page 10: Drupagora - Les clés de la réussite d'un projet Drupal

10

La diversité Drupal

Page 11: Drupagora - Les clés de la réussite d'un projet Drupal

11

La diversité Drupal

Page 12: Drupagora - Les clés de la réussite d'un projet Drupal

12 titre de la présentation

Les clés d’un départ réussi

Page 13: Drupagora - Les clés de la réussite d'un projet Drupal

13

4 points clefs

1 Connaître Drupal

3 Penser l’architecture

2 Eviter l’usine à gaz

4 Utiliser la communauté

Les règles d’or de la conception Drupal

Page 14: Drupagora - Les clés de la réussite d'un projet Drupal

14

Entités

Types de contenu

Blocs

Vues

Utilisateurs

Menus

Taxonomies

Panels

Contextes

Vocabulaire et contraintes à connaître

Page 15: Drupagora - Les clés de la réussite d'un projet Drupal

15

Penser les spécifications avec les contraintes et limites des modules utilisés

Définir tous les types de contenu

Définir toutes les vues

Définir les méthodes de gestion d’arborescence

Préciser les adaptations BO

Adapter la gestion d’utilisateurs et workflows au fonctionnement Drupalien

Des spécifications made in Drupal

Page 16: Drupagora - Les clés de la réussite d'un projet Drupal

16

Axure or not ?

Page 17: Drupagora - Les clés de la réussite d'un projet Drupal

17

L’extensibilité permet d’utiliser Drupal comme CMF

Plus puissant que d’autres CMS

Pas un « vrai » framework au même titre que Zend ou Symfony

Nécessité de s’adapter à la conception et au fonctionnement de Drupal

Rester sur du standard

Page 18: Drupagora - Les clés de la réussite d'un projet Drupal

18

+ de 5 000 modules

Attention à la qualité

Redondance des fonctionnalités

Choix des modules 1/2

Page 19: Drupagora - Les clés de la réussite d'un projet Drupal

19

Popularité

Dernières mises à jour et leurs fréquences

Quantité des « issues »

Choix des modules 2/2

Page 20: Drupagora - Les clés de la réussite d'un projet Drupal

20

2 versions Drupal supportées à un instant t

API incompatibles entre versions majeures

Ne pas adopter trop tôt une nouvelle version Drupal

Choisir la bonne version de Drupal

Page 21: Drupagora - Les clés de la réussite d'un projet Drupal

21

Combien de gabarits

Combien de vues

Combien de panels / context

Quels modules particuliers

Quels développements spécifiques

Les indicateurs de la charge de développement

Page 22: Drupagora - Les clés de la réussite d'un projet Drupal

22

Une structuration particulière du HTML

Des vues contraintes

Des contextes particuliers

Une ergonomie FO pas toujours adaptée

Optimiser le BO ?

Les points de vigilance graphique et ergonomiques

Page 23: Drupagora - Les clés de la réussite d'un projet Drupal

23 titre de la présentation

Les bonnes pratiques de développement

Page 24: Drupagora - Les clés de la réussite d'un projet Drupal

24

… selon la complexité du projet

Développeurs Drupal

Thémeur

Profils fonctionnels pour les specs/tests d’intégration

Profil architecte sur sujets cache/perf/scripts/https

Attention à la courbe d’apprentissage Drupal !

La bonne composition d’une équipe

Page 25: Drupagora - Les clés de la réussite d'un projet Drupal

25

Ne pas toucher au core

Respecter les normes de codage Drupal

Requêtes et fonctionnalités hors du template

Distinguer le code custom des modules communautaires

Limiter les modification des modules communautaires

– Suivre les patchs créés ou appliqués– Soumettre les patchs créés à la communauté (« patch

management ») Utiliser les outils disponibles (Coder, Security Review,

Acquia Insight) pour s’améliorer

Les règles d’or du développement

Page 26: Drupagora - Les clés de la réussite d'un projet Drupal

26

Paramétrage & configuration

Intégration CSS

Tests

Et un peu de développement

Une répartition des tâches avec peu de développement

Page 27: Drupagora - Les clés de la réussite d'un projet Drupal

27

SVN / Git

Outil de développement bien configuré

Plateformes : Prod / Pré-prod / Test / Dév

Déploiement

Stratégie de test

Le bon environnement de développement

Page 28: Drupagora - Les clés de la réussite d'un projet Drupal

28

Outillage qualité et patch management

Tests unitaires avec SimpleTest ?

Tests d’intégration manuels ?

Jeu de données (BD + « files ») de référence

Les outils de tests avec Drupal ne sont pas simples à exploiter. Les tests avec Drupal sont un point de charge important

La méthodologie de tests

Page 29: Drupagora - Les clés de la réussite d'un projet Drupal

29

Activer les caches Drupal

Agréger les contenus statiques (CSS/JS) et toutes les autres bonnes patiques Web (sprites, tuner BD, …)

Ne pas logger en base de données

Déporter le search sur un composant externe Apache Solr

Mettre en place reverse proxy cache Varnish

Mettre en place APC

Faire des tests de performance(Jmeter)

Utiliser les nombreux outils disponibles (Yslow, Pagespeed, http://webpagetest.com) pour s’améliorer

Optimiser la sécurité et les performances

Page 30: Drupagora - Les clés de la réussite d'un projet Drupal

30

Architecture LAMP

A compléter avec Varnish voire Memcache (perf) ou Solr (recherche)

Intégrer la stratégie de cache à la conception

S’assurer l’hébergeur maîtrise le web et LAMP en particulier

Mettre en place le bon nombre de plateformes tôt dans le projet

Rapprocher l’environnement de développement sur celui de production

Mettre en place la bonne architecture

Page 31: Drupagora - Les clés de la réussite d'un projet Drupal

31

Les outils et méthodes pour maintenir dans la durée

Page 32: Drupagora - Les clés de la réussite d'un projet Drupal

32

Vérifier les logs

Mettre en place le monitoring de l’ensemble de l’architecture

Suivre les mises à jour des modules et alertes de sécurité

Disposer d’une procédure de livraison en urgence

S’assurer du bon fonctionnement

Page 33: Drupagora - Les clés de la réussite d'un projet Drupal

33

Drupal stocke dans une même base de données le contenu et la configuration

Complexifie les montées en version

BizTalkServer

Code Base de données « files »

Stockage des données Drupal

Page 34: Drupagora - Les clés de la réussite d'un projet Drupal

34

Impossible de restaurer la base de données d’un environnement à l’autre

Les montées en version doivent se faire sans livrer la base de données

Contenttest

Configv2

Content prod

Config v1

Dev

Prod

Contenttest

Configv2

Content prod

Config v2

Gérer les montées de version 1/2

Page 35: Drupagora - Les clés de la réussite d'un projet Drupal

35

Implémenter les modifications de configuration via code

Exporter les objets (Views, Panels etc) pour les réimporter via l’API Drupal

Activer les changements via hook_update lors du déploiement

Possibilité de packager des fonctionnalités via module Features

Processus délicat à valider avant d’arriver en production

titre de la présentation

Gérer les montées de version 2/2

Page 36: Drupagora - Les clés de la réussite d'un projet Drupal

36

Utiliser drush (Drupal Shell), l’outil en ligne de commande

Fournir script d’installation (appelant Drush…)

Valider les montées en version via le nombre de plateformes adéquat

Il faut être en capacité de relivrer vite de manière sécurisée

titre de la présentation

Industrialiser les livraisons

Page 37: Drupagora - Les clés de la réussite d'un projet Drupal

37

merci