Architecture multi-CDN de haut niveau avec CMCD
Qu’est-ce que CMCD ?
CMCD (Common Media Client Data) fait référence à la spécification ouverte CTA-5004 publiée en 2020. Qu’est-ce qu’une spécification ouverte ? La spécification ouverte fait référence à un ensemble d’exigences documentées et de normes accessibles au public. Le gros titre ici est que la spécification ouverte CMCD définit comment les lecteurs multimédias (appelés clients) génèrent des données de streaming vidéo et les partagent avec les CDN pour chaque demande multimédia. Avant que cette spécification ne soit définie, c’était l’ouest sauvage en ce qui concerne la façon dont les données des clients étaient envoyées, reçues et traitées avec les CDN. CMCD à sa base est juste un ensemble de clés avec des données précieuses. En utilisant le CTA-5004, j’ai résumé ces clés et ajouté des idées pour vous de créer une feuille de triche utile.Description | Clé | Définition | *Utilisation |
---|---|---|---|
Débit binaire codé | br | Débit binaire codé de l'objet audio ou vidéo demandé. | Affiche le débit réel délivré et peut être utilisé par CDN pour déduire la taille de l'objet. |
Longueur du tampon | bl | Longueur de la mémoire tampon du joueur au moment de la demande. | Peut être utilisé par CDN pour déduire l'intégrité de la lecture. |
Saturation de la mémoire tampon | bs | Événement de saturation de la mémoire tampon. Indique la remise en mémoire tampon/le blocage de la lecture. | Le pourcentage de retampon est calculé comme le nombre total de sessions par rapport aux sessions avec au moins un événement de retampon sur une période donnée. |
ID de contenu | cid | Chaîne unique identifiant le contenu actuel. | Utile pour traquer le contenu problématique mais rarement utilisé par les joueurs. |
Durée de l'objet | d | Durée de lecture en millisecondes de l'objet demandé. |
Lorsqu'il est agrégé, il peut être utilisé comme une estimation du nombre d'heures regardées. Peut être utilisé pour déterminer si le contenu est dans une pause publicitaire et le type de vidéo regardé. Peut être utilisé pour déterminer la taille du bloc. |
Date limite | dl | La date limite entre la demande et le premier échantillon de ce segment/objet doit être disponible afin de ne pas créer de sous-exécution de la mémoire tampon ou d'autres problèmes de lecture | |
Mesurer le débit | mtp | Débit entre le client et le serveur, mesuré par le client. | Bande passante de débit estimée entre CDN et lecteur. Utile pour comparer les métriques CDN et externes. |
Demande d'objet suivante | ni | Chemin relatif de l'objet suivant à demander. | Utilisé pour la prélecture. |
Demande de plage suivante | nrr | Si la requête suivante est une requête d'objet partielle, cette chaîne indique la plage d'octets à demander. Si le champ 'NOR' n'est pas défini, l'objet est supposé correspondre à l'objet actuellement demandé. | Utilisé pour la prélecture. |
Type d'objet | ot |
Type de support de l'objet actuel demandé : m = fichier texte, tel qu'un manifeste ou une liste de lecture a = audio uniquement v = vidéo uniquement av = audio et vidéo muets i = segment init c = légende ou sous-titre tt = piste de texte temporisée ISOBMFF k = clé cryptographique, licence ou certificat. = autre Si le type d'objet demandé est inconnu, cette clé NE DOIT PAS être utilisée. |
Utilisé pour le dépannage. Peut être utilisé pour déterminer les problèmes d'encodage et de DRM. Les fournisseurs de DRM ont une visibilité limitée sur les versions / navigateurs actuellement utilisés / supportés et donc “k” est très utile.
« c » peut être utilisé pour alerter les problèmes potentiels de conformité. |
Vitesse de lecture | pr | 1 si temps réel, 2 si vitesse double, 0 si pas de lecture. Ne DOIT être envoyé que s'il n'est pas égal à 1. | Peut être utilisé pour déduire si le joueur ajuste la vitesse de lecture pour compenser d'autres problèmes (tels que l'origine ou CDN ne parvient pas à livrer les segments assez rapidement). |
Débit maximal demandé | rtp |
Débit maximum demandé que le client considère suffisant pour la livraison de l'actif.
***Le débit fait référence à la quantité de données transmises. |
Vous indiquera les performances du lecteur et du CDN. Cela peut être utilisé pour une gestion des données plus efficace et, en fait, économiser des ressources.
Cela peut profiter aux clients en empêchant la saturation de la mémoire tampon par le biais d'une livraison excessive et peut également apporter un avantage à la communauté par le biais d'une livraison équitable. Le concept est que chaque client reçoit le débit nécessaire pour de grandes performances, mais pas plus. |
Format de streaming | sf |
d = TIRET MPEG H = HTTP Live streaming (HLS) S = streaming fluide o = autre |
Aide à déterminer les problèmes liés au flux pour les joueurs qui prennent en charge DASH/HLS. Peut comparer les performances en fonction du format de streaming pour les lecteurs qui ont la prise en charge multiformat. |
ID de session | dsi | GUID identifiant la session de lecture en cours. Une session de lecture relie généralement des segments appartenant à un actif multimédia unique. La longueur maximale est de 64 caractères. Il est RECOMMANDÉ de se conformer à la spécification UUID. |
Il est toujours recommandé d'inclure cette clé dans la journalisation CMCD. C'est sans doute la clé la plus utile car elle est utilisée pour aligner les journaux ensemble.
Peut être utile pour résoudre les problèmes de mise en cache. Le même ID de contenu avec deux ID de session indique fortement un problème de mise en cache. |
Type de flux | st. |
v = tous les segments sont disponibles, par exemple, VSD l = les segments deviennent disponibles au fil du temps, par exemple, EN DIRECT |
Clé inestimable pour le dépannage. |
Démarrage | su | Signale le démarrage du contenu. |
Élimine le besoin de balisage. Les CDN connaissant le démarrage du contenu peuvent être utiles pour optimiser la lecture ultérieure. Cet indicateur est également envoyé après l'indicateur de tampon (bs). |
Débit binaire supérieur | tb | Rendu au débit binaire le plus élevé dans le manifeste ou la liste de lecture que le client est autorisé à lire. |
Utilisé pour déterminer le débit binaire ou les problèmes d'échelle de débit binaire. Affiche le débit binaire maximal que le lecteur peut lire à ce moment-là. Peut être utilisé pour comparer aux débits binaires disponibles. |
Version CMCD | v | Version de la spécification CMCD utilisée. | Cette clé permet le contrôle de version et indique qu'il y aura des versions CMCD futures disponibles. |
Clé personnalisée |
Les clés personnalisées nécessitent le préfixe « cmcd- ». Exemple fictif : cmcd-edgio |
Permet d'envoyer des clés CMCD uniques, ce qui étend CMCD pour être entièrement personnalisable. |
À l’heure actuelle, Edgio est le seul CDN qui déclare publiquement le support de toutes les clés CMCD. Les clés définies peuvent être transmises dans trois modes de livraison des joueurs aux CDN.
- En-tête HTTP personnalisé dans chaque requête. Les touches peuvent être utilisées avec quatre noms d’en-tête.
- CMCD-Request : clés dont les valeurs varient avec chaque requête.
- CMCD-Object : clés dont les valeurs varient en fonction de l’objet demandé.
- CMCD-Status : clés dont les valeurs ne varient pas avec chaque requête ou objet.
- CMCD-session : clés dont les valeurs sont censées être invariantes pendant toute la durée de vie de la session.
- Arguments de requête HTTP.
- Objet JSON indépendant de chaque requête HTTP.
Démarrage et démarrage de la mémoire tampon au format CMCD via trois modes de livraison.
Qui devrait utiliser CMCD ?
Les services de streaming de toute taille doivent utiliser CMCD dès que possible. Cependant, depuis sa publication, la connaissance et la mise en œuvre du CMCD ont été limitées. Les tendances que nous observons indiquent qu’il y a une adoption et un soutien croissants. Cela dit, nous aimerions vous parler de votre cas d’utilisation et de la façon dont CMCD peut élever votre entreprise.Pourquoi le CMCD est-il nécessaire ?
CMCD vise à s’assurer que les utilisateurs obtiennent la meilleure expérience de streaming possible chaque fois qu’ils cliquent sur Play. En tant qu’ingénieur solutions chez Edgio, mon travail consiste à examiner l’architecture technique d’un fournisseur de contenu pour m’assurer que notre CDN fonctionne de manière fluide et efficace pour la meilleure expérience utilisateur. Un élément clé de toute architecture technique est les données recueillies à partir des journaux, des métriques et des traces (également connues sous le nom de trois piliers de l’observabilité) pour y parvenir. Voici quelques autres raisons pour lesquelles CMCD vaut la peine d’être incorporé si vous n’y êtes pas déjà vendu.Standardisation
Les données sont collectées et analysées par un mélange d’outils tiers et propriétaires internes pour chaque élément d’architecture. La difficulté est que les données recueillies suivent chacune leur propre format. Les données non standard peuvent créer des effets secondaires tels que des incohérences, une qualité réduite, une évolutivité limitée et des efforts de maintenance accrus. Je vous mets au défi de trouver un ingénieur qui n’a jamais fait face à certains ou à tous ces problèmes auparavant. Pour résoudre ce problème, CMCD standardise les données côté client (lecteur) vers les données côté serveur (CDN), garantissant ainsi l’interopérabilité. C’est important car cela en fait le plus proche que CDN peut obtenir des données RUM (Real User Measurement) côté client.Personnalisation améliorée
Les touches CMCD personnalisées étendent à l’infini son utilité.Cas d’utilisation : Personnalisation du code d’état
Voici un code de statut personnalisé réel qu’Edgio utilise. “000 – Un code d’état spécifique à Edgio retourné lorsque l’origine n’envoie aucune réponse, donc il n’y a pas de code d’état à consigner (par exemple lorsque le client se déconnecte avant que l’origine ne livre la réponse).” Cette définition provient de la section champs du fichier journal de notre documentation Configuration du service de livraison des journaux .
Edgio pourrait créer une clé personnalisée cmcd-000.
Workflows simplifiés
Ces dernières années, les entreprises technologiques ont réduit leurs coûts, consolidé leurs outils et réduit la complexité globale. Les données gratuites générées par CMCD peuvent remplacer les services d’analyse de journaux internes et externes. Le résultat est un flux de travail simplifié et optimisé.Cas d’utilisation : flux de travail du lecteur
Ancien processus
Les analyses tierces sont largement utilisées par les entreprises de streaming aujourd’hui. Cependant, ces outils nécessitent un processus d’intégration étendu et continu, comme indiqué ci-dessous.
-
- Achats
- Chaque fournisseur d’analyses tiers dispose de son propre kit de développement logiciel (SDK) pour l’intégration de balises avec chaque lecteur. ExoPlayer d’Android (DASH), le lecteur d’Apple (HLS), PlayReady de Microsoft (Xbox/Windows), basé sur le Web (sites Web, téléviseurs), etc. Sont tous des exemples de lecteurs qui nécessitent des SDK distincts.
- Test et validation. Les métadonnées sont requises pour se conformer aux directives du fournisseur.
Il est à noter que ce processus complet peut facilement prendre un an ou plus.
Nouveau processus
L’activation est simple. Edgio peut capturer vos données CMCD en temps quasi réel via notre service de livraison de journaux. Cela signifie que le balisage des joueurs ou l’intégration de tiers n’est pas nécessaire pour déverrouiller l’analyse de données de nouvelle génération. Pour nos clients ayant une base d’utilisateurs importante, cela se traduit par des millions de dollars économisés chaque année.
Sécurité
La sécurité de l’information n’est peut-être pas la première chose à laquelle vous pensez lorsqu’il s’agit de streaming, mais elle reste un élément important.- CMCD n’a pas accès aux données de connexion ou ne contient pas d’informations personnelles identifiables (PII) parce qu’il compartimente l’expérience utilisateur à partir des informations. Il ne contient que des informations génériques sur les performances.
- Les données CMCD ne dépendent pas de services intermédiaires. Cela limite le partage de données avec des tiers gardant les données internes.
Observabilité
Les CDN peuvent désormais voir des données de session précises sur la façon dont le client ressent son service. Cette visibilité partagée peut être utilisée par les CDN et les fournisseurs de streaming pour :- Configurez une surveillance et des alertes plus précises.
- Accordez plus de temps pour les incidents majeurs.
- Diagnostiquer et résoudre les problèmes plus efficacement.
Cas d’utilisation : gestion des pannes
Ancien processus
Il s’agit du flux de processus typique de la façon dont la panne d’une société de streaming est résolue avec des journaux de lecteur et de CDN séparés.
-
- Une panne se produit. Malheureusement, la communication humaine ou l’intervention d’analyses tierces n’est généralement pas offerte.
- L’alerte interne est déclenchée par la chute des indicateurs de performance, les codes d’erreur, les tableaux de bord, etc
- L’alerte est triée en interne et remontée en fonction de facteurs tels que la personne de garde, les experts en la matière et la délégation de service.
- Les runbooks sont utilisés s’il s’agit d’un problème déjà rencontré et documenté.
- La décision est prise si le problème doit être transmis à des partenaires externes tels que CDN.
- Résolution atteinte.
- Une analyse interne des causes racines (RCA) est effectuée et communiquée aux clients.
En raison de la longue procédure d’escalade, cette panne met beaucoup de temps à trouver une solution.
Nouveau processus
Il s’agit du flux de processus de résolution d’une panne avec CMCD.
-
- Une panne se produit. L’accès aux données CMCD natives permet à chacun d’avoir une visibilité totale. Notre équipe Managed services vous contacte de manière proactive pour obtenir des mesures d’atténuation.
- La résolution est atteinte par Edgio collaborant en temps réel pour résoudre les pannes tout en regardant les mêmes données que vos ingénieurs.
- Edgio peut aider RCA et élaborer des stratégies avec vous en tant que partenaire pour prévenir les pannes futures.
La résolution des pannes est atteinte plus rapidement et nécessite moins de ressources d’ingénierie internes.
Gains de performances
Le but principal d’un CDN est d’augmenter la performance du contenu servi sur Internet.Préchargement
Nous voyons CMCD demandé le plus souvent à nos clients pour déverrouiller la prise en charge universelle du préchargement. Le préchargement consiste à charger des données de contenu dans le cache avant qu’elles ne soient nécessaires pour accélérer la diffusion du contenu.
Équilibrage de charge intelligent nouvelle génération
Notre CDN fournit automatiquement du contenu à partir du point de présence le plus optimal (POP) au sein de notre réseau privé mondial. Nous gérons l’équilibrage de charge réseau interne pour vous, mais lorsque plusieurs CDN sont utilisés, l’équilibrage de charge externe est plus compliqué et obscurci pour les fournisseurs de contenu à gérer. Le problème devient comment les entreprises de streaming peuvent-elles exploiter intelligemment les CDN dans leur pile . Chaque entreprise tente de résoudre ce problème d’une manière unique, mais pour la plupart, il est encore divisé manuellement par pourcentage ou disponibilité déléguée par le joueur. L’équilibrage de charge compatible CMCD est la réponse. Avoir des données CDN et Player dans des journaux unifiés permet une meilleure compréhension des performances de chaque CDN, ce qui est nécessaire pour un équilibrage de charge intelligent. C’est à ses débuts, mais c’est aussi la caractéristique la plus prometteuse. Les fournisseurs de streaming n’utilisent pas encore cette méthode dans leurs environnements de production. Je mentionne cela parce que cela signifie que son application est théorique. Plus d’informations à venir sur ce cas d’utilisation alors que nous voyons CMCD évoluer et grandir avec d’autres technologies de streaming émergentes telles que l’ai/ML.
Cas d’utilisation : équilibrage de charge géographique intelligent
Un fournisseur de streaming dispose de droits exclusifs de streaming pour le plus grand événement sportif en direct de l’année en Amérique latine. Pour préparer l’événement, l’équilibrage de charge compatible CMCD peut être utilisé. Pendant le jeu, les données sont utilisées en temps réel pour distribuer automatiquement le trafic au CDN avec les meilleures performances par région, locale et/ou POP out de la pile CDN. Cela évite le basculement manuel si un CDN dans la pile est sous-performant, à capacité ou rencontre des problèmes techniques. Dans ce scénario, notre CDN gérerait la plus grande part de trafic car Edgio surpasse généralement les autres CDN en Amérique latine en raison de notre priorité d’investir massivement dans les marchés émergents.
Optimisation adaptative du trafic
L’utilisation en temps réel de CMCD peut être utilisée pour des optimisations de trafic adaptatives telles que la stabilisation des débits binaires de lecture entre les téléspectateurs de streaming.
Comment activer CMCD ?
Avant de continuer, vous devez savoir qu’il existe deux exigences techniques : le lecteur et le CDN doivent tous deux prendre en charge l’utilisation de CMCD. La plupart des lecteurs et CDN ont aujourd’hui le support CMCD.Lecteur | En-têtes | Requête | JSON |
---|---|---|---|
THEOplayer | |||
Bitmovin | |||
Shaka Player | |||
Android ExoPlayer | |||
hls.js | |||
dash.js |
*Il convient de noter que le support des joueurs était déterminé par la disponibilité de la documentation publique et que cette liste n’est pas exhaustive. N’hésitez pas à contacter le support du lecteur CMCD et nous pouvons mettre à jour pour inclure cette information.
? = pas d’information publique au moment de la rédaction du présent rapport. N’hésitez pas à contacter le support CMCD CDN et nous pouvons mettre à jour pour inclure cette information.
Il y a aussi d’autres considérations:
- Pour des raisons de sécurité, HTTPS est fortement recommandé sur HTTP pour toutes les transmissions de données CMCD sur le Web.
- CORS et la protection du contenu ajoutent de la complexité aux configurations CDN. CORS doit être configuré pour permettre l’envoi des en-têtes CMCD-Request, CMCD-Object, CMCD-Status, CMCD-session du lecteur au CDN.
Activer pour Edgio CDN
Consultez la section de notre documentation CMCD Report intitulée Activer la journalisation CMCD pour obtenir des instructions. Si vous n’êtes pas déjà client, contactez-nous pour un essai de performance afin de travailler avec notre équipe d’ingénieurs solutions et de voir notre CDN en action.
Activer pour Uplynk
Edgio’s Uplynk est une plateforme de streaming perfectionnée avec CDN intégré pour les diffuseurs et les fournisseurs OTT. Le couplage de CMCD avec Uplynk augmentera sa visibilité de bout en bout qu’aucune autre plate-forme de streaming n’a. Si vous n’êtes pas déjà client, contactez-nous pour une démonstration Uplynk et parlez directement avec nos services gérés pour activer. Vous pouvez en savoir plus sur l’avenir d’Uplynk dans Edgio et Bitmovin unissent leurs forces pour optimiser l’expérience utilisateur .
Comment afficher CMCD ?
Les données CMCD se trouvent dans vos journaux CDN qui peuvent être inspectés. Les données peuvent être extraites dans des référentiels de journaux, des tableaux de bord et des rapports. Edgio est devenu un des premiers à adopter lorsque nous avons annoncé notre rapport CMCD qui est propulsé par EdgeQuery.
Exemple de rapport CMCD d’Edgio disponible sur le portail de contrôle CDN
Le rapport CMCD offre une vue d’ensemble visuelle et permet de consulter des informations détaillées à portée de main. Les données CMCD elles-mêmes sont envoyées à votre solution de stockage de journaux, qu’elles soient situées sur site, partagées avec un tiers ou conservées dans notre réseau sur Edgio’s Origin Storage.
En regardant vers l’avenir
Si vous ne l’avez pas déjà fait, vous devriez maintenant vous sentir bien familiarisé avec CMCD et comment il peut transformer le streaming aujourd’hui. En tant que leader de l’industrie avec CMCD, Edgio continuera à le prendre dans toute la mesure du possible. Restez à l’écoute !
Remerciements
Merci tout particulièrement à notre responsable de programme Anthony Karr pour ses commentaires et suggestions inestimables. Merci à notre architecte logiciel Yuri Nepyvoda pour son travail exceptionnel à la tête du développement de notre implémentation CMCD de pointe.
Terminologie
- Cors : partage de ressources inter-origines
- Interopérabilité : capacité des systèmes à fonctionner ensemble.
- Spécification ouverte : un ensemble d’exigences documentées et de normes accessibles au public pour tous.
- OTT : Over-the-top qui se réfère à la diffusion de contenu sur les services Internet.
- Préchargement : le préchargement consiste à charger des données dans le cache avant qu’elles ne soient nécessaires pour accélérer la diffusion du contenu. Le préchargement est également connu sous le nom de préchauffage ou de préchauffage du cache.
- RHUM : données de mesure utilisateur réelles
- SDK : Kit de développement logiciel
- Uplynk : une plate-forme de streaming perfectionnée avec CDN intégré pour les diffuseurs et les fournisseurs OTT.