MyDMAM : l’installation d’un DMAM

Suite des articles de présentation de MyDMAM. Le sujet va porter sur l’installation et le déploiement d’instances MyDMAM.

Publié le

MyDMAM est une technologie libre : la liberté de sa configuration est nécessaire pour permettre d’avoir une installation qui correspond au mieux à ses besoins, qui peuvent évoluer.

Comme les bases de données de MyDMAM reposent sur des technologies décentralisées et distribuées, chaque instance de MyDMAM est totalement autonome. Il n’y a pas de point central, pas de coordinateur, et donc pas de point de faiblesse. En fait, chaque instance est reliée aux bases qui lui sont le plus proche (à minima une instance de Cassandra et une instance d’Elasticsearch). Les communications entre les instances ne se font que part Cassandra, et sont limités aux besoins d’administration ponctuels (start / stop / status).

Vous pouvez donc déployer des instances comme vous le souhaitez, à partir du moment ou vos clusters de bases de donnés sont opérationnels ; que le ring et les datacenter soient cohérents avec la réalité pour Cassandra, et le statut green pour Elasticsearch (ou yellow dans le cas d’une seule instance).
La seule limitation « casse-pieds », c’est que vous devez avoir la même version de la JVM entre toutes les instances Elasticsearch et MyDMAM.

Les instances de MyDMAM

Actuellement, il y a trois types d’instances :

  • Server, pour démarrer un serveur Play! et vous donner l’accès à une interface web. Il n’y a pas de configuration particulière du serveur Play pour MyDMAM. Un simple play run dans le dossier racine d’une installation MyDMAM fonctionnera aussi. Server permet de l’encadrer dans un vrai service système comme Systemd.
  • Probe, l’instance qui « fait des choses », transcodage, indexation, analyse… le nom n’est pas génial, je le changerai un jour.
  • CLI, une petite interface en ligne de commande qui propose des fonctions dangereuses, tel des purges ; ou à lancer au bon vouloir dans un cron, comme des nettoyages.

Ces trois types d’instances partagent le même code et les mêmes dépendances. Seul ce qui est lancé diffère.

La structure du code respecte celle de Play (MyDMAM est un site Play) même si seul Server fonctionne avec Play. Tout le fonctionnement des Modules de Play est respecté. Il est donc possible d’étendre des fonctions internes de Play (en tout cas celles prévues) pour ajouter des Modules fait sur mesure, que sa soit des fonctions dans l’interface web ou dans Probe, comme des nouveaux moteurs de traitement. En fait, MyDMAM est une structure d’APIs qui sont plus ou moins dépendantes entre elles (des API de haut niveau dépendront d’API de plus bas niveau), et ce qu’il faut pour orchestrer le tout. Il est donc prévu de modifier, bidouiller et d’extraire des parties de codes pour des besoins autres que ce que propose MyDMAM à l’origine.