Notre client, Molotov.tv

Molotov, service de distribution de chaînes de télévision par Internet, s’est retrouvé lors des confinements confronté à des hausses de trafic importantes qui ont poussé son architecture à ses limites. La migration des multiples services qui sous-tendent Molotov sur le Cloud AWS, effectuée avec l’aide d’Ynpact, AWS Select Consulting Partner, a dé-risqué la plateforme, tout en permettant à Molotov de développer sa culture DevOps.

Molotov, la Télévision Nouvelle Génération

Molotov est un service de distribution de chaînes de télévision par Internet, qui veut rassembler les différentes formes de consommation de la télévision sous une seule interface : direct, replay, VOD, enregistrement, streaming et téléchargement. 5 ans après son lancement, Molotov propose l’offre la plus aboutie en matière de distribution et d’accès aux contenus télévisuels, plébiscitée par plus de 17 millions d’utilisateurs. L’innovation est au cœur du modèle Molotov : ergonomie et fluidité de l’interface, qualité de service, intégration poussée sur tous types d’appareils connectés, et les fonctionnalités les plus avancées du marché.

 

Une Migration Cruciale

Pour assurer toutes ces fonctionnalités, de nombreux services sont utilisés sur la plateforme : identification, préférences… Jusqu’à l’année dernière, Molotov fonctionnait avec une infrastructure sur des serveurs propres, sur site. Lors du confinement, cependant, Molotov s’est vue confrontée à des pics importants de trafic, que son architecture a eu du mal à supporter, menant parfois à des pertes de connexion. « L’architecture existante ne pouvait pas suivre, souligne Pablo Queixalos, vice president engineering chez Molotov. Nous avons subi des crashs. À cause du confinement, il était difficile d’acheter du matériel et de se le faire livrer en datacenter. Pour supporter notre croissance, il a fallu accélérer la migration de la VOD. » « Nous avions choisi Amazon Web Services (AWS) de manière à être le plus efficace possible ; non seulement AWS était à l’époque déjà disponible à Paris, mais il fait partie des providers qui proposent le plus de services. » Mais, point essentiel, la migration devait aussi aider Molotov à développer sa culture DevOps, et surtout être rapide, avec en ligne de mire la diffusion des matchs de l’Euro 2020.

 

Ynpact, le Bon Partenaire

Molotov a connu Ynpact par l’intermédiaire du startup acceleration program d’AWS et, attirée par sa connaissance préalable du milieu de l’OTT, leur avait confié une première mission, qui consistait notamment à identifier une architecture possible sur le Cloud AWS pour assurer la VOD. Face à l’urgence de la situation, et convaincue par les résultats et méthodes d’Ynpact, Molotov s’est adressée à eux pour les aider avec la migration, n’ayant pas suffisamment de ressources pour pouvoir le faire en interne. Et la collaboration s’est avérée fructueuse. « La philosophie d’Ynpact, c’est d’autonomiser le client, explique Manuel Michel-Tur, chief executive officer et acting chief acceleration officer chez Ynpact. Quand la mission est terminée, le client est libre de reprendre le projet, de continuer à le faire évoluer… » Une philosophie respectée à la lettre. « Nous avons beaucoup collaboré sur la façon de faire et nos objectifs ; et Ynpact a été très rigoureux dans la documentation, le respect des deadlines… », souligne Queixalos.

 

« Nous avons réussi à atteindre tous nos objectifs. La plateforme est dé-risquée, tout en embarquant le maximum de gens vers la culture DevOps et en assurant la sécurité et le contrôle coûts. » 

— Pablo Queixalos, VP Engineering chez Molotov.

Migration des Services : les Clés et les Outils

« Le projet était un challenge, car il s’agissait d’une migration d’envergure, et complexe, souligne Michel-Tur. Chaque service posait ses propres problèmes. » Autre contrainte : cette migration devait s’effectuer au fur et à mesure, sans interruption du trafic ou de l’offre, et surtout rapidement. Après s’être mis d’accord sur l’architecture—en s’appuyant sur les recommandations d’Ynpact effectuée lors d’une mission précédente, la première étape de la migration en tant que telle a consisté à identifier la cinquantaine de services et leurs interactions. « Cela a été l’étape la plus longue, décrit Benoît Sedoni, chief technology officer chez Ynpact. Puis nous avons commencé par migrer les services qui n’avaient pas de dépendance. Il a fallu plusieurs sprints pour migrer le premier service, mais ensuite, nous avons été de plus en plus rapide. » 

Chaque service tourne sur un cluster Amazon Elastic Container Service (Amazon ECS), dans des containers construits avec AWSCodeBuild. Elastic Load Balancing répartit la charge entre les applications, et Amazon CloudFront est utilisé pour la diffusion du contenu. Pour factoriser la migration, Ynpact a créé des modules sur Terraform qui étaient ensuite réutilisés pour les services suivants. Cette factorisation assurait que le processus serait répétable, y compris par Molotov de façon indépendante, tout en évitant les erreurs et en permettant de maîtriser les deadlines.

« Nous distinguons deux étapes : la migration en tant que telle, du code d’infrastructure, et des pipelines de gestion applicatif ; et ensuite, il y a l’activation (la bascule vers la version migrée du service), qui est plus étalée dans le temps », explique Queixalos. À la fin de la mission, au bout de deux mois, plus de 70% des services étaient migrés, mais ils n’étaient pas tous activés. Depuis, Molotov a poursuivi la migration, en se basant sur les compétences et outils élaborés avec Ynpact.

 

Passer en Mode DevOps

« Notre produit est massivement basé sur de l’API, explique Queixalos. Chaque service a son périmètre de responsabilité qui lui est propre, et très limité. » Mais il y a une forte interaction entre eux ; donc apporter une évolution demande souvent de modifier plusieurs services en même temps. Et auparavant, une équipe de quatre personnes était chargée de la mise en production ; les développeurs n’avaient pas la main—ni les ressources—pour procéder autrement. Pour passer à l’échelle supérieure, il fallait changer d’organisation.

Molotov voulait ainsi créer un framework dans lequel les développeurs pourraient évoluer pour gérer l’infrastructure et le cycle de vie des applicatifs dont ils ont la charge et, à travers cela, développer la culture DevOps au sein de l’entreprise. Le choix a donc été fait de mettre en place l’outillage et les pratiques de développement d’infrastructure et de gestion des applicatif qui soient flexibles, multi-environnement, sécurisés et accessibles y compris par des neophytes.

« Avec le Cloud AWS, nous avons créé pour chaque développeur un workspace pour qu’il puisse tester ses modifications sans impacter le reste du système », décrit Sedoni. Pour faciliter le changement, Terraform et du tooling développé en interne ont été utilisés pour mettre en place des usages et interfaces qui existaient déjà sur la précédente plateforme de Molotov.

« Aujourd’hui, nous sommes en grande partie DevOps, explique Queixalos. Les développeurs ont la responsabilité de la mise en production ; ils ont pris possession des outils AWS, sont investis, et utilisent leurs workspaces quotidiennement. » Un changement réussi grâce à l’implication du management chez Molotov et à la rigueur et la richesse de la documentation fournie par Ynpact.

Un Projet Réussi

« Nous avons réussi à atteindre tous nos objectifs, souligne Queixalos. La plateforme est dé-risquée, tout en embarquant le maximum de gens vers la culture DevOps, en assurant la sécurité et en contrôlant les coûts. Tous les services n’ont pas encore été migrés, mais la plateforme est dé-risquée. » Aujourd’hui, Molotov dispose d’une infrastructure qui lui permet de faire face à des pics importants de trafic sans dégradation des services. « Le projet était achevé avant l’Euro 2020, souligne Queixalos. Et depuis que nous sommes passés sur AWS, nous n’avons eu aucun crash, en assurant ainsi la meilleure user experience. »

 

Depuis la fin de la migration menée avec Ynpact, d’autres services ont été migrés et activés, et des nouveaux services ont été construits, le tout en utilisant les outils et méthodes élaborés avec Ynpact. L’autre chantier principal est le refactoring, pour profiter au mieux des possibilités du cloud, plus d’efficacité et pour optimiser les coûts.