izpis_h1_title_alt

Urejanje in dostava video posnetkov z oblačno arhitekturo mikrostoritev
ID Zoretič, Uroš (Author), ID Jakus, Grega (Mentor) More about this mentor... This link opens in a new window

.pdfPDF - Presentation file, Download (2,40 MB)
MD5: 377EB66892F1474A14085224DDC39C5E

Abstract
Učinkovita in hitra distribucija video posnetkov na različna spletišča je ključnega pomena z vidika prepoznavnosti posameznika in podjetij. Še posebej to velja za podjetja, ki se ukvarjajo s produkcijo različnih multimedijskih vsebin za končne uporabnike. Video posnetke je potrebno pred objavo urediti in jih spremeniti v ustrezen format za predvajanje na spletu. Problem obstoječih rešitev je, da so izdelane po klasičnem monolitnem arhitekturnem vzorcu, kar otežuje nadgradnjo, nameščanje, vzdrževanje, učinkovito izrabo strojne opreme in integracijo v že obstoječe aplikacije in platforme za dostavo video posnetkov. Ustreznejše od monolitnih aplikacij so aplikacije, ki se izvajajo v oblaku, kar je postalo de facto standard za razvoj najrazličnih rešitev, kot so to na primer spletne aplikacije, internet stvari in pogovorni roboti. Aplikacije, ki se izvajajo v oblaku, so porazdeljene, prilagodljive, horizontalno razširljive, odporne na napake, visoko razpoložljive, nastavljive in največkrat sestavljene iz samostojnih namestitvenih enot, specializiranih za natančno določeno nalogo, imenujemo jih mikrostoritve. Mikrostoritve so običajno tudi šibko sklopljene in ustvarjene na zahtevo. Za zagotovitev njihovega ustreznega delovanja je mikrostoritve potrebno nadzirati z zbiranjem različnih vrednosti telemetrijskih metrik, dnevniških zapisov in sledenjem zahtevkov. Da se lahko mikrostoritve izvajajo na različnih oblačnih platformah, je potrebno njihovo izvajanje ločiti od posebnosti uporabljenih programskih jezikov, knjižnic, arhitekturnih vzorcev, strojne in programske opreme različnih strežnikov. To dosežemo z različnimi virtualizacijskimi tehnikami, med katerimi je najbolj primerna t. i. lahka virtualizacija z vsebniki. Zaradi velikega števila vsebnikov, v katerih se izvajajo mikrostoritve in njihove kompleksne topologije, je vsebnike potrebno upravljati z orkestracijskimi platformami in zagotoviti zanesljivo komunikacijo s storitvenimi mrežami. Zaradi lažjega obvladovanja običajno velikega števila mikrostoritev je njihovo gradnjo, nameščanje, testiranje in nadziranje priporočljivo izvesti avtomatizirano. Zaradi vseh omenjenih prednosti smo se po principu računalništva v oblaku zgledovali tudi pri izdelavi aplikacije za urejanje in dostavo video posnetkov. Učinkovitejšo pripravo posnetka za ponovno objavo smo dosegli z neposredno manipulacijo s posameznimi za splet pripravljenimi video delčki. Takšno rezanje in sestavljanje novih video posnetkov je hitro, saj se v večini primerov spreminjajo samo metapodatki video posnetkov. Kadar sistem zazna potrebo po dejanski spremembi določenega video delčka (npr. prvega ali zadnjega v posnetku), je običajno takšna operacija hitra, saj so video delčki običajno dolžine samo nekaj sekund. Po koncu urejanja novega posnetka je njegova objava na drugih spletiščih enostavna, saj se spremenijo samo indeksni in statusni zapisi v podatkovnih shrambah. Video posnetka tako ni potrebno še enkrat pretvarjati za objavo na spletu. Aplikacijo smo razdelili na čelni in zaledni del. Zaledni del aplikacije smo razvili z arhitekturo mikrostoritev, pri čemer vsaka mikrostoritev opravlja natančno določeno nalogo, kot na primer nalaganje, rezanje, ustvarjanje, predvajanje in shranjevanje video delčkov in njihovih metapodatkov. Za medsebojno komunikacijo mikrostoritve v večini primerov uporabljajo komunikacijski vmesnik gRPC, v posameznih primerih pa tudi GraphQL in REST. Izvedbene podrobnosti razvitih mikrostoritev smo zakrili z lahko virtualizacijsko tehnologijo Docker z vsebniki, ki se izvajajo na različnih javnih oblakih. Vsebnike v javnih oblakih upravlja orkestracijska platforma Kubernetes. Za zanesljivo komunikacijo v kompleksni topologiji mikrostoritev skrbi storitvena mreža Istio z orodjema za zbiranje podatkov o delovanju aplikacije Prometheus in Jaeger za sledenje zahtevkom. Kompleksnost zalednega dela smo odjemalcem skrili z uporabo aplikacijskega prehoda Istio Ingress. Aplikacijo je mogoče uporabljati preko spletnega uporabniškega vmesnika, ki je bil razvit po principu spletne aplikacije na eni strani in se izvaja kot brez-strežniška storitev v javnem oblaku.

Language:Slovenian
Keywords:računalništvo v oblaku, mikrostoritve, video na zahtevo, spletno urejanje videa, video delčki, spletna aplikacija
Work type:Master's thesis
Typology:2.09 - Master's Thesis
Organization:FRI - Faculty of Computer and Information Science
FE - Faculty of Electrical Engineering
Year:2020
PID:20.500.12556/RUL-121581 This link opens in a new window
COBISS.SI-ID:34102787 This link opens in a new window
Publication date in RUL:16.10.2020
Views:1634
Downloads:248
Metadata:XML DC-XML DC-RDF
:
Copy citation
Share:Bookmark and Share

Secondary language

Language:English
Title:Editing and delivering videos with cloud based microservices architecture
Abstract:
Efficient and fast distribution of video clips on the Web is crucial to achieve the desired visibility of an organization. This is especially true for companies that produce various multimedia content for users. Before publishing, videos need to be edited and then converted into the appropriate format for playback on the Web. The problem with existing solutions is that they are built with the classic monolithic architectural pattern, which makes it difficult to upgrade, install, maintain, efficiently use hardware and integrate into existing applications and video delivery platforms. Better than monolithic applications are applications running in the cloud, which has become de facto standard for developing a wide variety of solutions, such as web applications, Internet of Things, and chat robots. Applications running in the cloud are distributed, adaptable, horizontally scalable, fault-tolerant, highly available, configurable, and most often consist of stand-alone units specializing in a specific task called microservices. Microservices are usually weakly coupled and created on demand. To ensure their proper functioning, microservices need to be monitored by collecting various values of telemetry metrics, log records and distributed requests tracing. In order for microservices to run on different cloud platforms, it is necessary to separate their execution from the specifics of the used programming languages, libraries, architectural patterns, hardware and software on different servers. This is achieved through a variety of virtualization techniques. The most appropriate is the container based lightweight virtualization. Due to the large number of containers in which microservices are executed and their complex topologies, the containers need to be managed by container orchestration platforms and ensure reliable communication with service meshes. In order to facilitate the management of a usually large number of microservices, it is recommended to perform their compiling, installation, testing and monitoring automatically. Due to all the mentioned advantages, we followed the principles of cloud computing in the creation of an application for editing and delivering videos. More efficient preparation of the video clips for republishing was achieved by direct manipulation of individual video chunks already prepared for the Web. Such cutting and editing of new videos is fast, as in most cases only the metadata of the video clip and their chunks change. When the system detects the need to actually change a particular video chunk (e.g., the first or last in a video clip), such operation is usually quick, as the video chunks are usually only a few seconds long. After editing a new video, publishing it to other sites is easy, as only the indexes and status records in the databases change. With this way of editing, video clips don’t have to be converted again into the appropriate format for playback on the Web. The application was divided into a frontend and backend. The backend is developed with a microservice architecture, with each microservice responsible for a specific task, such as uploading, cutting, creating, playing and storing video clips, video chunks and their metadata. In most cases, the microservices use the protocol gRPC to communicate with each other, and in individual cases microservices also use query language GraphQL and communication interface REST. Microservices implementation details are abstracted with container based lightweight virtualisation technology Docker. Docker containers runs on different public clouds. Containers in public clouds are managed by the orchestration platform Kubernetes. Reliable communication in a complex microservice topology is ensured by the service mesh Istio. We also used tool Prometheus for collecting application data and tool Jaeger for distributed requests tracking. We concealed the complexity of the backend from the clients using the application gateway Istio Ingress. The application can be used via web graphical user interface, which was developed as as single page web application. The web-application run as a serverless service in the public cloud.

Keywords:cloud computing, microservices, video on demand, web video editing, video chunks, web application

Similar documents

Similar works from RUL:
Similar works from other Slovenian collections:

Back