Table des matières[Cacher][Montrer]
Il y a une possibilité assez décente que vous ayez diffusé quelque chose si vous avez passé du temps en ligne.
Le streaming est l'une des utilisations les plus courantes des applications les plus connues d'Internet, que ce soit via YouTube, Spotify, Netflix ou une centaine d'autres.
Cependant, compte tenu de la banalité du streaming, il est simple de le prendre pour acquis. Par exemple : qu'est-ce que le streaming, exactement ?
Tout matériel multimédia, qu'il soit en direct ou enregistré, qui est envoyé sur Internet à des ordinateurs et à des appareils mobiles et lu en temps réel est appelé streaming.
Les types courants de contenu diffusé en continu comprennent les podcasts, les webémissions, les films cinématographiques, les émissions de télévision et les vidéos musicales.
Les éléments multimédias tels que la musique, la vidéo et d'autres types sont planifiés et transférés dans des paquets de données consécutifs afin qu'ils puissent être diffusés instantanément.
Un appareil adapté, un accès à un service ou une application de streaming et une connexion Internet haut débit rapide et fiable sont tout ce dont vous avez besoin pour diffuser.
Remarque : Nous utiliserons un service de streaming vidéo comme exemple.
Cet article examinera en profondeur la conception du système du service de streaming et les facteurs clés à prendre en compte lors du développement d'applications de streaming vidéo.
Configuration requise
Parmi les services de streaming vidéo les plus populaires au monde figurent YouTube et Netflix. Pour améliorer l'expérience utilisateur, leur architecture comprend un certain nombre d'éléments.
Un tel service comprend des films populaires, la facturation, des systèmes de recommandation basés sur l'IA et une fonctionnalité de visionnage ultérieur, mais nous nous concentrerons sur les éléments essentiels.
Qualités fondamentales
Nous avons inclus les capacités suivantes dans notre concept pour un le streaming vidéo service:
- Les créateurs de contenu peuvent publier des vidéos.
- Les téléspectateurs peuvent utiliser de nombreux appareils pour regarder des vidéos (mobile, TV, etc.).
- Sur les vidéos, les utilisateurs peuvent commenter, aimer ou ne pas aimer.
- Les titres des vidéos peuvent être utilisés pour les rechercher.
- Pour montrer ces statistiques aux utilisateurs, le système peut stocker les vues, les goûts et les aversions.
Objectifs du système
- Il ne devrait y avoir aucune mise en mémoire tampon afin que les téléspectateurs puissent regarder des vidéos en temps réel.
- Le stockage pour la vidéo doit être fiable. Vous ne devriez pas perdre les vidéos que vous avez téléchargées.
- Avec une augmentation du nombre d'utilisateurs, le système doit être évolutif.
- Une faible latence et une haute disponibilité devraient être les caractéristiques du système. Dans cette situation, la cohérence n'est pas aussi importante car il est acceptable pour un utilisateur d'attendre un certain temps avant de voir un film fraîchement soumis.
Un seul serveur ne peut pas gérer le volume de données car le système doit gérer régulièrement un trafic important. Un groupe de serveurs sera utilisé pour entretenir le système.
Il ne devrait pas y avoir d'impact notable sur la vitesse des clients, même si un serveur tombe en panne.
Architecture de haut niveau
Un programme de streaming vidéo peut accepter l'un des trois types de requêtes suivants :
- Télécharger (écrire)
- Rechercher (lire)
- Voir (lire)
Étant donné que les requêtes de lecture (recherche et affichage) seront souvent plusieurs fois plus fréquentes que les requêtes d'écriture (téléchargement), chacune d'elles est gérée par un cluster de serveurs distinct.
Étant donné que le programme est gourmand en lecture, vous devrez configurer plus de serveurs pour gérer les demandes de lecture que les téléchargements.
Chaque demande faite par un client est acheminée vers le microservice approprié par le équilibreur de charge lorsqu'il est reçu.
Service de téléchargement
Le service de téléchargement, qui traite la vidéo, la télécharge sur les serveurs Open Connect et la rend accessible à tous les utilisateurs, répond à une demande de téléchargement.
Service de recherche
L'équilibreur de charge envoie la demande de recherche au microservice de recherche, qui l'envoie ensuite à la recherche élastique de Netflix. Le client reçoit la réponse de la recherche Elastic.
La recherche élastique, un moteur de recherche open source en texte intégral incroyablement évolutif, est utilisée par Netflix pour rechercher parmi des millions de vidéos.
La recherche élastique est utilisée par Netflix pour analyser les opérations du service client.
Voir le service
La majorité des demandes de vue ne seront pas envoyées à l'équilibreur de charge ou aux serveurs de Netflix. Au lieu de cela, les utilisateurs se connecteront aux FAI locaux et seront alimentés directement depuis le serveur Open Connect le plus proche.
Cependant, si la vidéo demandée n'est pas accessible, elle sera envoyée à l'équilibreur de charge et au microservice de visualisation.
La vidéo est ensuite recherchée dans la base de données de métadonnées, extraite du chemin spécifié dans les métadonnées et transmise au client.
Bien sûr, cette technique inclut la latence, c'est pourquoi pratiquement toutes les demandes de vue sont fournies via Open Connect.
Télécharger des vidéos
L'objectif principal de YouTube est de télécharger un film ou une vidéo. Un service de streaming vidéo doit surmonter un certain nombre d'obstacles avant de rendre une vidéo accessible à ses consommateurs.
Garder en morceaux
Chaque vidéo soumise sera divisée en plusieurs fichiers plus petits plutôt que d'être conservée comme un seul fichier volumineux.
Ceci est essentiel car les producteurs de contenu peuvent soumettre d'énormes vidéos. Un seul gros fichier peut prendre un certain temps à traiter ou à diffuser.
Le spectateur n'aura pas à télécharger la vidéo complète pour la lire si elle est enregistrée et mise à sa disposition en morceaux.
Afin de s'assurer qu'il y a peu de latence entre les morceaux et que l'utilisateur a une expérience de visionnage fluide, le client demandera d'abord le premier morceau au serveur, puis demandera le morceau suivant pendant la lecture de ce morceau.
File d'attente de traitement
Chaque vidéo a de nombreux morceaux, et Netflix utilisera plusieurs travailleurs simultanés pour les analyser, donc une file d'attente de traitement est nécessaire. En les ajoutant à la file d'attente, cela est simplifié.
Les travaux seront collectés par les travailleurs (ou les encodeurs, que nous aborderons ensuite), encodés dans différents formats, puis stockés dans le stockage de fichiers distribué.
Encodage vidéo
Il est crucial de convertir et d'enregistrer les morceaux vidéo dans plusieurs formats afin que les téléspectateurs puissent y accéder en utilisant la technologie et la connexion Internet qui leur conviennent le mieux.
La vidéo peut être visionnée sur un ordinateur portable, un téléphone, un téléviseur ou d'autres gadgets par les téléspectateurs. Les formats optimaux pour divers appareils diffèrent les uns des autres.
Dans le même ordre d'idées, divers téléspectateurs pourraient utiliser diverses bandes passantes pour accéder à Internet.
Certains téléspectateurs pourraient être en mesure de diffuser facilement des films haute résolution en fonction de la vitesse de leur connexion Internet ou de leur bande passante, tandis que ceux qui disposent d'une bande passante moindre pourront diffuser des vidéos de faible qualité beaucoup plus facilement.
Ouvrir la connexion
Lorsque vous utilisez votre navigateur pour demander Netflix.com, votre FAI (fournisseur d'accès Internet) est en réalité invité à établir une connexion entre votre ordinateur et le serveur Netflix.
Votre FAI contacte l'adresse IP de Netflix en votre nom et vous renvoie le résultat. Le public d'un pays éloigné comme Tokyo connaîtra des retards importants dans la transmission et la réception des signaux en raison de la concentration de ces serveurs aux États-Unis.
Avec les vidéos, les retards sont beaucoup plus préoccupants car beaucoup de données doivent être transmises au spectateur, et si c'est le cas, le streaming sera retardé et l'expérience utilisateur en souffrira.
Netflix utilise une technique intelligente pour résoudre le problème. C'est ce qu'on appelle Open Connect (OC). Open Connect est le CDN utilisé par Netflix (Content Delivery Network).
Afin de mettre en cache les informations en ligne et de les livrer rapidement aux consommateurs en réduisant la distance physique entre l'utilisateur et le matériel, CDN est un réseau de serveurs répartis et de centres de données associés.
Load Balancing
A demande unique le serveur est incapable de gérer le volume de demandes (y compris les demandes de téléchargement, de recherche et d'affichage) qui arrivent chaque seconde.
Un équilibreur de charge doit être en place pour répartir efficacement la charge de travail sur les nombreux serveurs, car plusieurs serveurs sont impliqués.
Netflix utilise un hachage constant pour répartir les charges entre les serveurs, car il peut gérer les pannes de serveur et s'adapter facilement à l'installation de serveurs supplémentaires.
Étant donné que la popularité de chaque vidéo varie, les serveurs réels qui hébergent ces films peuvent subir une charge inégale. En utilisant des redirections HTTP dynamiques, qui permettent à un serveur occupé de détourner une nouvelle requête vers un serveur ouvert, nous pouvons résoudre ce problème.
Considérations lors du développement d'une application de streaming vidéo
Trouvez et développez votre créneau
Avec autant de types de matériel différents disponibles, du divertissement à l'éducation en passant par le fitness, il est essentiel de créer un différenciateur avec une spécialité spécialisée. Vous pouvez créer une plateforme pour des documentaires ou des films indépendants.
La monétisation de l'application
La perturbation des schémas de monétisation traditionnels peut se traduire par l'innovation et la croissance. Les plans doivent toujours être adaptés au public cible.
Parce que les opérateurs historiques ont déjà monopolisé le marché, vous pouvez essayer de monétiser les abonnements gratuits avec des publicités ou du placement de produit.
Parallèlement à cela, si vous souhaitez construire une plate-forme mondiale de services de streaming, vous devez tenir compte des besoins multidevises.
Meilleure expérience
Les performances du programme doivent être améliorées pour les circonstances extrêmes comme Internet lent ou les utilisateurs avec un accès restreint.
Vidéos en streaming
Non seulement Netflix diffuse du contenu, mais il utilise également des techniques d'ingénierie utilisateur et des suggestions personnalisées pour garder les utilisateurs accrochés au service.
Prévoyez d'établir un service de streaming similaire à Netflix en mettant l'accent sur l'analyse des données et la personnalisation des utilisateurs.
Gérer les nombreux rôles de l'application
Dans l'application Netflix, la vue utilisateur est simplement l'un des nombreux rôles d'utilisateur. La planification est requise pour une variété d'utilisateurs et leur accès, y compris l'administrateur, le propriétaire de la vidéo, les partenaires, les modérateurs, etc.
Conclusion
En conclusion, c'est ainsi que les services de streaming vidéo comme Netflix, YouTube et d'autres vidéos embarquées en gardent une trace et les montrent à des millions de consommateurs.
Bien que chacune de ces applications puisse avoir quelques fonctionnalités supplémentaires qui les distinguent, la fonctionnalité fondamentale est basée sur les mêmes algorithmes.
J'ai fait de mon mieux pour vous donner un aperçu général de l'architecture du système de service de streaming, mais il se passe beaucoup plus en arrière-plan.
J'espère sincèrement que vous trouverez ces connaissances précieuses et que vous les utiliserez.
Soyez sympa! Laissez un commentaire