Présentation ECP14 Ecritel - Hébergement à l'étranger : les clés de la réussite
Drupagora - Les clés de la réussite d'un projet Drupal
-
Upload
core-techs -
Category
Documents
-
view
6.659 -
download
0
description
Transcript of 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
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
3 titre de la présentation
Pourquoi Drupal est si particulier
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
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
6
Une multitude de projets possibles
Internet
Communautaires
Extranet
Métier
Ecommerce
…
7
A compléter
La diversité Drupal
8
La diversité Drupal
9
La diversité Drupal
10
La diversité Drupal
11
La diversité Drupal
12 titre de la présentation
Les clés d’un départ réussi
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
14
Entités
Types de contenu
Blocs
Vues
Utilisateurs
Menus
Taxonomies
Panels
Contextes
Vocabulaire et contraintes à connaître
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
16
Axure or not ?
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
18
+ de 5 000 modules
Attention à la qualité
Redondance des fonctionnalités
Choix des modules 1/2
19
Popularité
Dernières mises à jour et leurs fréquences
Quantité des « issues »
Choix des modules 2/2
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
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
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
23 titre de la présentation
Les bonnes pratiques de développement
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
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
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
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
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
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
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
31
Les outils et méthodes pour maintenir dans la durée
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
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
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
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
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
37
merci