CONTEXTE



Appli’Farm est une startup du domaine de la santé animale dont les fondateurs ont levé des fonds auprès de Néovia et du consortium Innoval, spécialisé dans la génétique. La plateforme qu’ils ont mise en place exploite diverses sources de données qui permettent aux entreprises de la filière ruminante de créer de nouveaux services pour les éleveurs : gestion, alimentation, laiterie, conseil en élevage, reproduction, suivi de performance, conseil sanitaire, etc. Ces derniers peuvent accéder en ligne à un tableau de bord qui décrit l’évolution de la santé de leurs animaux, de la production et d’autres indicateurs comme des ratios anonymisés concernant les fermes qui les entourent.

Dans l’optique de construire une architecture micro services, D2SI est intervenu pour optimiser, rendre scalable et flexible l’infrastructure d’Appli’Farm. Nous avons également pu mettre en place une chaîne de CI/CD qui permet aux développeurs de déployer leur code de manière automatisée.

DÉROULÉ DU PROJET



Approche


D2SI a dans un premier temps réalisé un certain nombre de workshops avec Appli’Farm pour mieux comprendre et identifier leur besoin.
Trois enjeux ont été identifiés :

  • Faciliter le travail entre des équipes différentes qui travaillent sur des sites éloignés
  • Simplifier et automatiser les processus de déploiement
  • Proposer une solution agnostique de la technologie du micro service sous jacent (différents langages : javascript, python, etc.)

Docker est apparu comme étant la solution la plus adaptée car celle qui permet d’encapsuler facilement un grand nombre de technologies différentes. Nous avons recommandé l’utilisation d’Amazon EC2 Container Service (Amazon ECS) pour orchestrer le déploiement de ces conteneurs, et de Consul comme outil de service discovery pour permettre aux conteneurs de s’identifier et de communiquer entre eux.

Pour répondre à l’exigence de résilience et de scalabilité d’Appli’Farm, nous avons recommandé de tirer profit des services muti-AZ, managés et autoscalabes de Amazon web service (EC2, auto Scaling Group, Load Balancer pour la partie calcul et RDS, DynamoDB, s3 pour la partie stockage).

Résultats


L’application est désormais en production avec un environnement de production scalable et résilient et un environnement de préproduction identique à la production. La résilience de l’application a été améliorée par l’introduction d’une infrastructure immuable grâce à l’utilisation de Docker, d’Amazon ECS et la centralisation des logs et des erreurs avec AWS Elasticsearch, Kibana et Sentry.

Le déploiement de l’infrastructure et de l’application ont été automatisés avec l’introduction de chaînes de CI/CD et d’outils d’automatisation (Circle CI, Terraform, Docker).

Poke


Nous restons à votre écoute pour toute question ou demande supplémentaire.