Drupal As A Service

Drupal As A Service

Drupal est actuellement l’un des meilleurs système de gestion de contenus du marché.

Cependant, les pratiques ont changés et dans un contexte économique ultra concurrentiel les entreprises doivent faire preuve de plus d’agilité.

C’est dans ce contexte qu’est née le DaaS pour utiliser Drupal pour ce qu’il sait faire de mieux et proposer une archi compatible avec la philosophie DevOps.

 

Qu’est-ce que le modèle DaaS ?

Le modèle DasS est un acronyme (Drupal As A Service) que j’ai inventé pour mettre en exergue l’utilisation de Drupal non plus comme CMF (Content Management Framework) mais comme un simple service de gestion de contenus dans un SOA (Service Oriented Architecture).

En d’autre terme, le modèle DaaS est ni plus ni moins qu’une architecture n-tiers optimisée pour Drupal.

7 couches applicatives composent le DaaS :

  1. Reverse proxy :  Nginx
  2. API Gateway : KrakenD
  3. Serveur HTTP : nodeJS
  4. App : reactJS 
  5. Services : GraphQL
  6. CMF : Drupal 8
  7. Databases : MySQL

Le DaaS offre de nombreux avantages mais aussi quelques légers inconvénients.

 

Les avantages

Modularité - Les technologies et l’orientation des projets changent mais l’architecture reste. On peut par exemple décider de ne plus utiliser Nginx dans la stack “reverse proxy” et le remplacer par Varnish.

Performance - La charge est répartie entre les différentes couches, les appels aux services sont agrégés, les caches sont gérés sur plusieurs niveaux et l’archi est scalable. Les temps de réponses parlent d’eux mêmes.

Sécurité - L’ensemble de la stack technique étant Dockerisé, les containers communiquent qu’entre eux. La couche front est le seul point d’entré et les appels aux services sont contrôlés par une API Gateway.

DevOps - Les processus de CI / CD et l’hébergement dans le cloud sont adaptés au DaaS accélérant ainsi le TTM (Time To Market).

Productivité - Chaque membre de l’équipe intervient uniquement sur la stack correspondant à son domaine de compétence sans contrainte liée à son environnement de travail.

 

Les inconvénients

Être full stack - Le développeur Drupal devra avoir des compétences transversales. C’est à dire maîtriser aussi bien le back que le front et avoir une certaine appétence pour le DevOps.

Comprendre Docker - L’utilisation des “containers” est central dans le modèle DaaS, il est donc fondamental de comprendre le paradigme lié à Docker.

Non résilience - Si une couche ne fonctionne plus l’archi complète est impacté. Mais cela est perfectible avec une bonne gestion du cycle de vie des “containers” avec Kubernetes ou Swarm.

Un exemple de DAAS

Github : https://github.com/even42/daas

 

Conclusion

En utilisant Drupal pour ce qu’il sait faire de mieux, c’est à dire la gestion de contenu, on obtient un socle Drupal découplé permettant de remplir les exigences du DevOps.

Le modèle DaaS est une architecture n-tiers qui intrinsèquement apporte un gain énorme en performance, sécurité et productivité !

Cette archi me sert désormais de base dans tous mes projets Drupal.

Pour finir, la prochaine étape sera de faire un pas de plus vers le DevOps en rendant le DAAS Cloud Ready.

C’est à dire qu’en une ligne de commande, de pouvoir activer toute la stack permettant de builder, tester, déployer et monitorer le DAAS sur AWS.

 
1

Commentaires

au top, merci. 

Dites ce que vous pensez, laissez un commentaire !