Skip to content
Andrea Araldo edited this page Jun 11, 2020 · 13 revisions

This is the wiki for our Ressource-Allocation's fork of CDN-Transcode-Sample by OpenVisualCloud.

Go to the wiki of the original project

The goal with this project is to edit the source code and add the following features in order to take measures for research purposes:

  1. Transcoding modes
    • Offline: Automatically transcode the video in all the available representations (aka resolutions), directly when it is ingested by the CDN, and permanently store of these representations.
    • Online: Store only the best resolutions and transcode the video on-the-fly, when a client is watching it. In this way we save storage but we need more CPU
  2. Switch mode
    • aa: What is it?

Quick background

In 2018, more than 50% of the Internet's downstream traffic was dedicated to video content1. The number of content broadcasters, or content providers, such as Netflix, YouTube, Amazon Prime Video, is growing rapidly, and with the necessary resources in the core network to meet the growing demand for bandwidth. At the same time, the use of containerization to rapidly deploy and scale up programs developed as microservices is becoming more widespread. This practice allows for greater flexibility because the dependency of microservices on other programs is greatly reduced through the use of APIs, which guarantee a very high degree of flexibility in programming. One of the most commonly used frameworks for setting up this kind of environment is called Docker, an open-source solution that has been widely adopted by the industry.

Edge computing infrastructure
Figure 1 - Edge computing infrastructure

aa: Cette figure, c'est vous qui l'avez crée? Ou vous l'avez prise quelque part. Pour toute figure prise ailleur, je vous prie de spécifier la source dans le texte.

Thanks to the flexibility of microservices and in order to free up resources in the core network, the infrastructure generally adopted is edge computing. It consists in decentralizing part of the computing and storage units at the edge of the network, at the border of the access network. This reduces latency and frees up bandwidth in the core network.

In order to decentralize the load of their infrastructure, content providers set up or use Content Delivery Networks (CDNs) whose role is to move their content library to other areas. This principle is therefore taken up by edge computing, which goes further by deporting the CDN outside the core network.

Lines of study

Edge nodes being restricted in terms of resources, opposite to the cloud part of the CDN, a compromise must be made. By considering two opposite application cases, and by determining the key factors, we can present data which would allow content providers to implement their optimal solution.

Case 1 Case 2
Transcoding offline: the video is available in all the representations Transcoding online: the content is transcoded on-the-fly when requested by the client
Requires more storage Requires more calculation power

Note that in the current implementation, when transcoding online, the video is transcoded to all the available implementation. To save CPU computation and storage, transcoding to only a subset of resolution, or even just one resolution (the one actually requested by the client) is an interesting extension that could be explored

aa: le paragraphe ci-dessus, est-il correct?

The key factors which will be measured and used to compare these two cases are the following:

  • CPU load
    The CPU alone will be handling calculations for managing clients’ requests and transcoding the content. The system load is a measure of the amount of computational work that a computer system performs. More CPU power means higher costs, more generated heat, more electrical power consumed and less CPU available for other computations (in case of server shared by other applications)
  • Storage used
    The content must be stored and takes a lot of space. Data storage takes a lot of physical space, electrical power and must be maintained regularly.
  • Bandwidth used
    As content is delivered to the clients via the network, its size may vary depending on its characteristics (resolution, framerate, encoding, etc.) and therefore, the bandwidth used for the streaming process. We only currently consider downstream bandwidth, i.e., bandwidth consumed between the CDN and the clients. We may later want to also measure upstream bandwith, i.e., from the CDN to the origin server, from where the CDN retrieves the content. We currently neglect upstream bandwidth, since our CDN is not retrieving videos from origin servers, up to now: we just provide videos manually.
  • aa: est l'explication sur upstream/downstream que j'ai ajoutée correcte?
  • Quality of Experience
    The Quality of Experience (QoE) is the measure of the delight or annoyance of a customer's experiences with a service. This is generally a holistic measure which cannot be rationally quantified. However two key performance indicators can be considered:
    1. Image resolution: The better the streamed resolution, the better the quality of experience.
    2. Buffer length: In streaming applications, the buffer is the locally available seconds of video. When the buffer is empty, the client pauses and waits for enough data to be received before resuming (re-buffering), which impacts negatively the user experience. aa: For lack of time, we defer QoE measures as future work.

Edge Computing CDN - Simple Architecture
Figure 2 - General infrastructure

aa: In future work, these measures will be taken on the edge node of a minimal computing CDN infrastructure composed of one cloud node and one edge node (Figure 2). The first one will contain the entire video catalog though its bandwidth to the clients will be limited, as in real-life applications. The edge node will not be restricted in terms of bandwidth but will only have the most popular content of the catalog.

aa: But for now, we will just focus on the performance of one node only, corresponding of the edge node of Fig.2