Il n’y a pas longtemps, La Casa de Papel est revenue pour une quatrième saison, mettant fin à une longue attente pour les “netflixeurs” du monde entier. Pour les utilisateurs de Netflix, se plonger dans les aventures du professeur et de son équipe se résume à ouvrir l’application Netflix et à cliquer sur Play. C’est simple, rapide et instantané.
Ce qui n’est pas aussi simple, ce sont les stratégies business de Netflix, un service qui diffuse environ 250 millions d’heures de vidéo par jour à environ 98 millions d’abonnés payants dans 190 pays. À cette échelle, offrir un divertissement de qualité en quelques secondes à chaque utilisateur n’est pas une plaisanterie.
Et même si cela implique la mise en place d’une infrastructure de premier ordre à une échelle qu’aucun autre service Internet n’a atteint auparavant, cela signifie également qu’il faut négocier et satisfaire de nombreux participants à l’expérience – des sociétés de production qui fournissent le contenu aux fournisseurs d’accès Internet qui s’occupent du trafic réseau que Netflix leur apporte.
C’est, en bref et dans les termes les plus profanes, la façon dont fonctionne Netflix.
Des centaines de micro-services, un service géant



Essayons simplement de comprendre comment Netflix est structuré sur le plan technologique à l’aide d’un exemple simple.
Supposons simplement que l’application Maps de votre téléphone suit en permanence votre position et enregistre des informations complexes sur tous vos déplacements dans un fichier, locations.txt. Et vous finissez par créer une application appelée « XYZ » qui, à condition qu’il y ait une application Maps sur votre téléphone, recherche ce fichier locations.txt et affiche tous les lieux enregistrés dans ce fichier dans une simple liste. Cela fonctionne parfaitement.
Maintenant, disons que les développeurs de l’application Maps se rendent compte qu’il est préférable de stocker toutes vos informations de localisation ailleurs que dans ce fichier locations.txt, et mettent à jour l’application afin qu’elle ne crée plus ou ne stocke plus ce fichier sur votre téléphone.
Et maintenant, XYZ ne semble pas pouvoir trouver le fichier locations.txt dont il dépendait pour toutes ses données, et il n’y a pas d’autre moyen d’extraire ces informations de l’application Maps non plus. XYZ ne fonctionne plus maintenant. Vous êtes foutu.
Tout votre travail sur XYZ a été mis à la poubelle parce qu’une modification a été apportée à Maps qui a cassé votre application.
Et bien que cela ne semble pas être un problème ici, sur un service aussi important que Netflix, le fait que toute l’application tombe en panne parce qu’une modification a été apportée à une partie de celle-ci peut non seulement ruiner l’expérience des utilisateurs, mais cela signifie également que toutes les autres parties de l’application doivent être réécrites pour s’adapter à cette minuscule modification que vous avez apportée à une partie de l’application. Une telle structure est ce que nous appelons une architecture monolithique.
Comment Netflix anticipe les pannes ?



Netflix a littéralement inauguré une révolution il y a environ dix ans en réécrivant les applications qui font fonctionner l’ensemble du service pour les intégrer dans une architecture de microservices – ce qui signifie que chaque application, ou le code et les ressources du microservice, lui sont propres. Par nature, il ne partage aucune de ces ressources avec une autre application. Et lorsque deux applications ont besoin de se parler, elles utilisent une interface de programmation d’application (API) – un ensemble de règles étroitement contrôlées que les deux programmes peuvent gérer. Les développeurs peuvent désormais apporter de nombreuses modifications, petites ou grandes, à chaque application, à condition de s’assurer qu’elle fonctionne bien avec l’API. Et comme un programme connaît bien l’API de l’autre, aucune modification ne viendra rompre l’échange d’informations.
Netflix estime qu’il utilise environ 700 microservices pour contrôler chacune des nombreuses parties qui composent l’ensemble du service Netflix : un microservice stocke toutes les émissions que vous avez regardées, un autre déduit les frais mensuels de votre carte de crédit, un autre fournit à votre appareil les fichiers vidéo corrects qu’il peut lire, un autre encore jette un coup d’œil à votre historique de visionnage et utilise des algorithmes pour deviner une liste de films que vous aimerez, et un autre encore fournit les noms et les images de ces films qui seront affichés dans une liste sur le menu principal.
Et ce n’est que la partie visible de l’iceberg. Les ingénieurs de Netflix peuvent apporter des modifications à n’importe quelle partie de l’application et peuvent introduire rapidement de nouveaux changements tout en s’assurant que rien d’autre ne tombe en panne dans l’ensemble du service.
Mais où gèrent-ils tous ces micro-services ?



Faire fonctionner tout cela nécessite un énorme réseau de serveurs informatiques. Netflix en possédait autrefois en propre, mais ils ont réalisé que le rythme effréné auquel ils se développaient était difficile s’ils passaient leur temps à construire leurs propres systèmes informatiques.
Ils ont pris la décision courageuse de se débarrasser de la maintenance de leurs propres serveurs et de déplacer toutes leurs affaires vers le cloud – c’est-à-dire de tout faire fonctionner sur les serveurs de quelqu’un d’autre qui s’occupait de la maintenance du matériel tandis que les ingénieurs de Netflix écrivaient des centaines de programmes et les déployaient rapidement sur les serveurs.
La personne qu’ils ont choisie pour leur infrastructure basée sur le cloud est Amazon Web Services (AWS).
Attendez. Amazon ? Les gens qui s’occupent aussi de ce truc de Prime Video ? Comment Netflix peut-elle faire confiance à un rival de premier plan ?



Eh bien, beaucoup d’entreprises suivent une sorte de « gentleman’s agreement » où elles travaillent les unes pour les autres malgré la concurrence dans les mêmes catégories.
Un bon exemple étant la façon dont Samsung est en concurrence avec Apple dans les téléphones et fabrique en même temps les principales pièces de l’iPhone.
Netflix était un client d’AWS avant l’arrivée de Prime Video, mais cela ne signifie pas qu’ils seront hostiles l’un envers l’autre.
Il s’avère que le partenariat entre Netflix et Amazon s’est avéré être une énorme situation gagnant-gagnant pour les deux entreprises. Netflix s’est avéré être le client le plus avancé d’AWS, poussant toutes ses capacités au maximum et innovant constamment sur la manière dont il peut utiliser les différents serveurs fournis par AWS à des fins à son propre avantage.
AWS a à son tour amélioré ses systèmes pour permettre à Netflix de prendre des charges massives sur ses serveurs, ainsi que pour rendre son utilisation des différents produits AWS plus flexible. Il a utilisé l’expertise acquise pour servir les besoins de milliers d’autres entreprises clientes. AWS est fier de présenter Netflix comme son meilleur client, et Netflix peut rapidement améliorer ses services tout en les maintenant stables grâce à AWS.
Même si Netflix enlève la popularité de Prime Video (ou vice versa.)
La course contre la montre



L’ensemble des opérations qui constituent l’écosystème Netflix (logiciels, contenu et technologie ) est rendu inutile si la connexion Internet de l’utilisateur final est trop faible pour gérer la qualité vidéo.
Voici comment fonctionne fondamentalement tout sur Internet : lorsque vous faites quelque chose qui nécessite un accès au réseau, une demande est envoyée à votre fournisseur de services Internet (ISP).
Pour Netflix et d’autres sites de premier plan, où des millions d’heures de contenu vidéo sont relayées sur Internet entre leurs serveurs et tous les utilisateurs, un réseau de serveurs beaucoup plus important est nécessaire pour maintenir les performances. Pour ce faire, ils construisent un réseau de diffusion de contenu (CDN).
En gros, les CDN prennent le site web original et le contenu médiatique qu’il contient, et le copient sur des centaines de serveurs répartis dans le monde entier. Ainsi, lorsque, par exemple, vous vous connectez à partir de Budapest, au lieu de vous connecter au serveur principal de Netflix aux États-Unis, il charge une copie de celui-ci à partir d’un serveur CDN qui est le plus proche de Budapest.
Cela réduit considérablement la latence (le temps qui s’écoule entre une demande et une réponse, et tout se charge très rapidement). Les CDN sont la raison pour laquelle les sites web comptant un grand nombre d’utilisateurs comme Google, Facebook ou YouTube parviennent à se charger très rapidement, indépendamment de l’endroit où vous vous trouvez ou de la vitesse de l’internet.
Netflix utilisait auparavant divers réseaux CDN – exploités par des géants tels qu’Akamai, Level 3 et Limelight Networks pour diffuser son contenu. Mais une base d’utilisateurs croissante signifie qu’ils doivent diffuser un plus grand nombre de contenus à un plus grand nombre d’endroits tout en réduisant les coûts – et cela les a amenés à construire leur propre CDN, appelé Open Connect.
Ici, au lieu de s’appuyer sur des serveurs AWS, ils installent leurs propres serveurs partout dans le monde. Mais ce réseau n’a qu’un seul but : stocker intelligemment le contenu et le diffuser aux utilisateurs. Netflix fait des affaires avec les fournisseurs de services Internet et leur fournit gratuitement la boîte rouge que vous avez vue ci-dessus.
Ces boîtes Open Connect téléchargent la bibliothèque Netflix pour leur région à partir des principaux serveurs aux États-Unis – s’il y en a plusieurs, chacun d’entre eux stockera plutôt le contenu qui est plus populaire auprès des utilisateurs de Netflix dans une région afin de privilégier la vitesse.
Ainsi, un film rarement regardé peut prendre plus de temps à charger qu’un épisode de Stranger Things. Désormais, lorsque vous vous connecterez à Netflix, la boîte Open Connect la plus proche de chez vous vous fournira le contenu dont vous avez besoin, ainsi les vidéos se chargeront plus rapidement que si votre application Netflix essayait de le charger à partir des principaux serveurs aux États-Unis.
Imaginez que des disques durs du monde entier stockent des vidéos, et plus ils sont proches, plus vite vous pouvez les atteindre et charger la vidéo. Il y a beaucoup plus de ruses qui se passent en coulisses : comme l’explique cette interview, chaque fois que vous appuyez sur play on a show, Netflix va localiser les 10 boîtes Open Connect les plus proches sur lesquelles le show est chargé. Votre application/site Netflix essaiera alors de détecter laquelle d’entre elles est la plus proche ou fonctionne le plus rapidement sur votre connexion Internet, puis chargera la vidéo à partir de là. C’est pourquoi les vidéos commencent de manière floue, puis s’affinent soudainement – c’est-à-dire que Netflix change de serveur jusqu’à ce qu’il se connecte à celui qui vous donnera la meilleure qualité de vidéo.



En un mot…
Voici ce qui se passe quand vous appuyez sur le bouton “Play” :
- Des centaines de micro-services, ou de minuscules programmes indépendants, travaillent ensemble pour créer un grand service Netflix.
- Le contenu légalement acquis ou sous licence est converti en une taille qui correspond à votre écran, et protégé contre la copie.
- Des serveurs du monde entier en font une copie et la stockent de manière à ce que le plus proche de vous la diffuse avec une qualité et une rapidité maximales.
- Lorsque vous sélectionnez une émission, votre application Netflix choisit le serveur sur lequel elle va charger la vidéo.
Ça avait l’air si simple avant, non ?
Vous souhaitez en savoir plus sur le fonctionnement du système de recommandation de Netflix ?