Jan
29

Drupal Camp à Nantes

DrupalCamp à Nantes

Aujourd’hui je suis allé au premier Drupal Camp à Nantes. Je n’ai pas encore pratiqué Drupal (à part une install de Drupal 6 histoire de voir à quoi cela ressemblait) mais j’ai pensé qu’il pouvait être intéressant d’accompagner mes collègues.

C’est donc avec intérêt que je me suis rendu à cette journée de conférence qui se déroulait à l’Epitech de Nantes.

Une fois arrivé, on m’a remis mon pack de bienvenue : Un tee shirt spécial Drupal Camp, un joli petit badge et un tour de cou avec une petite carte pour mettre notre Pseudo, société et twitter.

Voici le programme de la journée (avec en gras les conférences auxquelles j’ai assisté) :

Aegir Adapter Drupal
Open Layers Introduction à GIT, nouvel outil indispensable
Mongo DB et NOSQL Petit traité de performances à l’usage de tous
Avenir du business Drupal pour les distributions Utiliser Drush pour administrer Drupal en ligne de commande
Panel – Contribuer à drupal.org
Gestion et optimisation d’un site Drupal à forte audience. Création d’une boutique avec Drupal Commerce
DrupalFr, point sur le projet, Chantiers et engagement Apprendre et prendre en main Drupal
Simplifiez-vous la vie avec ctools Entités & Fields – C’est Quoi ce Bordel ?
Présentation de Drupal 7 illustrée avec la réalisation de la nouvelle version de Rue89 ANNULE – truzZ, une nouvelle distribution orientée publication et collaboration multi-sites
Panel – Industrialisation des développements avec Drupal

Je ne vais pas parler de toutes les conférences auxquelles j’ai assisté car certaines m’ont moins intéressé que d’autres et certaines étaient un peu trop technique pour moi qui ne connait pas le CMS. Je ne vais pas rentrer dans les détails des outils présentés (car je ne les connais pas ou pas testé), je vais juste me contenter de vous partager les notes que j’ai prises.

Introduction à GIT

Pourquoi une conférence sur GIT alors que c’est le Drupal Camp ?! Tout simplement car le gestionnaire de version actuel (CVS) qui permet de gérer les versions de Drupal et de ses plugins officiels va être migré très prochainement sous GIT.

Git est un système de versionning comme SVN ou CVS. C’est un système décentralisé, ce qui le rend rapide et efficace.

Il a un fonctionnement à 3 états : (pour en savoir plus, allez voir ce site )

Comme les autres outils de versionning, GIT propose l’utilisation des branches, ce qui permet d’avoir différentes versions d’un projet à un instant T ou d’avoir des branches de « test » où vous testez l’ajout de nouvelles fonctionnalités. Encore une fois, pour en savoir plus, allez voir le même site que tout à l’heure

Git aurait une meilleure gestion des merges ce qui aurait pour conséquence d’avoir beaucoup moins de conflit qu’avec SVN ou CVS.

Ses avantages par rapport à ses concurrents :

  • Plus simple d’utilisation
  • Plus rapide (benchmark à l’appui)
  • Décentralisé
  • Syntaxe moins laborieuse

Il existe différentes interfaces graphiques

  • Gitk
  • Git-gui

Les 2 forges (système de gestion de développement collaboratif de logiciel) les plus connues pour GIT sont github et gitorious.

Si vous souhaitez passer d’un projet en cours versionné par SVN, il est tout à fait possible de l’importer dans GIT.

GIT peut s’interfacer avec des gestionnaires de bug comme Redmine.

Voilà pour cette conférence et des quelques notes que j’ai pu prendre. Passons maintenant à la conférence suivante.

Petit traité de performances à l’usage de tous

Celle-ci j’ai pas mal écouté et pas pris énormément de notes, déjà parce que la moitié de la conférence présentait les différents utilisateurs (le développeur, l’intégrateur et l’architecte logiciel) donc pas vraiment besoin de prendre de notes, mais aussi parce que ça allait assez vite.

Cette conférence traitait surtout des performances de Drupal, mais la plupart des cas peuvent s’appliquer à n’importe quel autre projet.

Une des causes évidentes  des soucis de performances serait l’absence de la connaissance du nombre d’utilisateurs potentiel (lors du développement d’un plugin par exemple), donc généralement, le développeur n’optimise pas vraiment son code (en tout cas pas optimisé à 100%).

Une autre cause est une mauvaise utilisation d’un plugin, et cela car le développeur ou l’intégrateur qui l’utilise ne sait pas comment fonctionne vraiment le code derrière. Et cette mauvaise connaissance est en partie due à un manque de documentation du plugin. De ce fait, l’utilisateur du plugin va essayer de le faire fonctionner selon sa propre logique alors que le développeur du module ne l’aura peut être pas pensé comme cela.

A priori, Drupal souffre de problèmes de performances à cause du trop grand nombre de requête qu’il effectue. Par exemple pour une dizaine d’articles sur une page d’accueil, une centaine de requêtes seraient exécutées. Donc lors du développement de votre module, évitez les requêtes inutiles et essayez de les optimiser un maximum.

Voici quelques solutions pour ces problèmes

  • Éviter les requêtes inutiles
  • Utiliser le cache statique
  • Connaître le fonctionnement des modules utilisés
  • Utiliser le cache binaire (qui soulage la BDD)

Pour identifier un problème de lenteur (souvent lié à un plugin précis), il est conseillé de faire des benchmarks de votre site avant chaque installation de modules. Comme cela vous serez en mesure de savoir quel module est l’origine de vos problèmes de lenteurs.

Pour cela, vous pouvez utiliser des modules de profiling comme XDebug ou Zend Debugger

Voilà c’est tout pour cette conférence, l’auteur a beaucoup insisté sur l’utilisation des caches qui permettent vraiment des gains de performances.

Drush pour Drupal

Cette conférence est une de celle qui m’a le plus bluffé, car cet outil à l’air vraiment génial. Il était d’ailleurs appelé le « couteau suisse de Drupal ».

Drush (Drupal Shell) permet donc d’administrer vos sites Drupal en ligne de commande. J’ai bien dis VOS sites, car en effet comme c’est un shell, c’est une librairie qui s’installe sur votre serveur et peut servir pour tous vos sites Drupal. Bien sûr Drush est multi-plateforme.

Alors Drush, ça permet quoi ? Bah ca permet ceci :

  • Télécharger, installer, activer et désinstaller des modules et des thèmes (on peut aussi installer et configurer Drupal en quelques secondes)
  • Mettre à jour votre Drupal
  • Effacer le cache (apparemment très très utilisé quand on développe !)
  • Exécuter les crons de Drupal
  • Exporter une BDD (avec possibilité d’exclure des tables)

Pourquoi l’utiliser ? Parce que c’est génial ! Quoi ? Vous voulez des vrais arguments ? OK

Un gain de temps considérable.

Pour reprendre l’exemple donné lors de la présentation, lorsque vous voulez installez un module via l’interface d’admin, cela se fait en plusieurs actions :

  1. Aller sur le site de Drupal chercher votre module
  2. Télécharger l’archive
  3. La décompresser
  4. Mettre les fichiers dans le dossiers des modules
  5. Aller dans l’interface d’admin des modules et activer le module

En gros 5 actions à faire, imaginez que cela prenne 1 minutes pour chaque module et que vous en avez 10 à installer, cela vous prendra environ 10 minutes.

Avec Drush, vous pouvez faire cela :

$ drush dl cck views devel

Ici vous demandez à Drush de télécharger les modules cck, views et devel.

Ensuite vous devez les activer :

$ drush enable views cck devel

Voilà, 2 lignes de codes… Vous avez juste comme contrainte de connaitre le nom des modules que vous voulez installer. Donc si ça c’est pas un gain de temps considérable, je sais pas ce que c’est !!

Autre exemple où je ne rentrerai pas dans les détails, l’installation de Drupal. En effet, vous pouvez installer Drupal entièrement en ligne de commande, pas besoin des quelques minutes habituelles à remplir les formulaires d’installations. Il doit y avoir plein de tutos la dessus, donc si vous êtes intéressé, demandez à votre meilleur ami (je parle de Google hein, n’allez pas vraiment demander à votre meilleur ami, si ce n’est pas un développeur il comprendrait rien le pauvre !).

Petites précisions importantes : Lors d’une installation, si le module a des dépendances avec un autre module, une erreur vous le précisera. Lors de la désactivation d’un module, il prend en compte automatiquement les dépendances.

Simplifier certaines tâches

Comme par exemple exporter la base de votre site. C’est quoi la différence avec un mysqldump me direz vous ? Bonne question ! Alors la différence avec mysqldump c’est le fait que l’on puisse configurer dans un fichier de config les tables à ne pas exporter à chaque fois (comme les tables de cache par exemple). De plus, pas besoin de donner vos identifiants puisqu’il ira automatiquement les chercher dans vos fichiers de config.

Créer des scripts d’automatisations

Dans certains cas, il est plus facile de faire un script en shell plutôt que des faire des scripts PHP car ceux ci seront facilement applicables sur tous vos sites Drupal. Vous pouvez ensuite créer vos propres commandes pour exécuter vos scripts à partir de Drush.

En plus de tous les avantages que Drush peut apporter, il faut aussi noter qu’il est accessible à partir de n’importe quel dossier.

Une autre chose pratique si vous avez plusieurs sites Drupal à gérer : vous pouvez définir un fichier d’alias (en gros vous définissez le nom de votre alias, le dossier du site et son URL).

Ensuite vous pouvez exécuter une commande pour un de vos site en particulier.

Par exemple, si vous avez créé un alias MONSITESTROPGENIAL vous pouvez lancer une commande comme ceci

$ drush @MONSITESTROPGENIAL status

Si vous voulez plus d’infos sur les alias, vous pouvez aller voir cet article justement rédigé par le conférencier.

Sinon voici sa présentation :

Demain je ferai un article à part sur la dernière conférence que j’ai trouvé vraiment intéressante, celle sur l’optimisation d’un site à fort trafic.

Voilà, j’ai passé une bonne journée, cela m’a permis de découvrir un peu Drupal et sa communauté et ca m’a l’air assez intéressant. Peut-être que j’aurai l’occasion de tester Drupal 7 un jour professionnellement, dans ce cas je ne manquerai pas de vous faire part de mes impressions par rapport à Ez Publish que j’ai utilisé pendant 2 ans.

Sinon je regrette de ne pas avoir pu assister à la conférence sur MongoDB et NoSQL car j’aurais bien aimé découvrir un peu ce que cela apporte.



Poster un commentaire

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes