VT2021 CDN fiche

From air
Jump to navigation Jump to search

Netflix Cosmos

C'est quoi ?

Plateforme qui fournis des microservices avec des workflow asynchrone et des fonctions serverless.
workflow asynchrone
Utilisé pour séparer les requêtes d’une tâche. Implémentation : Un message-queue et un service qui lit les messages de cette queue et réagit à la requête associé.

serverless
Modèle de cloud qui permet au fournisseur de serveur d’allouer dynamiquement des ressources selon la demande du client. Les développeurs d’application serverless n’auront pas à gérer les configurations, fault tolerance, VM, mémoire physique… Lorsque l’application n’est pas utilisé les ressources sont automatiquement désalloué.

Origine et objectif

Les 3 générations suivent une architecture monolithique.
1er génération
Un système permettant de traiter les media files provenant des partenaires et des studios de netflix. Il permet aux clients d’effectuer la lecture de ses fichiers sur tous les appareils.

2e génération
Ajout de la fonctionnalité de scalabilité (qualité vidéo…)

3e génération
Reloaded plateforme qui se focalise sur le traitement de vidéo/audio. Traitement est fait par pipeline. La plateforme est construite avec une architecture monolithic ce qui rend le déploiement de nouvelle fonctionnalités compliqué.

Architecture Monolitique VS Architecture Microservice

Monolithic-vs-microservice.jpg

L'architecture monolitique ne permet pas la scalabilité de l'application. De plus, elle requiert beaucoup trop d'expertise sur la connaissance du code.
La solution au problème est donc de créer une nouvelle plateforme avec une architecture simialaire à l'architecture microservice. La plateforme est nommé Netflix Cosmos. Cosmos Plateform est basé sur le workflow-driven (une méthode d’approche qui permet de définir les besoins du système selon les évenements que le workflow client génére) et fournir des microservice médiacentrique.
Les principaux points que Cosmos veut couvrir sont :
- Observalibility : built-in, traving, monitoring ...
- Modularity : Fournir des fonctionnalités modulable (compile-time & run-time modularity)
- Productivity : Outil pour exécution de tests, générateur de code, interface de commande
- Deliery : Système de livraison continue.

Microservice VS Cosmos Service

Le service Cosmos est similaire à un microservice

Micorservice

C’est une API avec un statless business logic qui s’ajuste selon le nombre de requête effecuté sur cette API. L’application est structuré de façon à regrouper plusieurs services. Chaque services ont leurs propre base de données et peuvent être déployer indépendament des autres. Tous les services peuvent communiquer entre eux.

Microservice-api.png

Business logic
détermine comment les données sont créés, stockés et changé. Une couche qui permet les transactions avec la base de donnée.

Cosmos Service

Principe

Reprend le même concept de ségrégation entre données et dépendances du microservice mais rajoute d’autres étapes dont : fonctions serveless asynchrone.