Suoratoistopalvelun tarjoaja Netflix tallentaa videoitaan, jotta ne voidaan toimittaa optimaalisesti eri Internet-nopeuksilla ja eri toistolaitteilla eri Resoluutiot, laatutasot ja formaatit. Kehitetty oli koodausalustan "Reloaded" noin seitsemän vuotta. Sillä välin Netflixin kuormitus on kuitenkin kymmenkertaistunut, koska se on laajentunut useammille markkinoille ja tarjonnut huomattavasti enemmän sisältöä. Netflixin teknisen blogin mukaan tämä on aiheuttanut ongelmia. Vastuulliset kehittäjät ovatkin kehittäneet uuden koodausalustan nimeltä "Cosmos" luotu.
Kuten Frank San Miguel kertoo Cosmos-tiimin puolesta, Reloadedin vanha arkkitehtuuri suunniteltiin yksinomaan audio- ja videosisällön skaalaamiseen mahdollisimman hyvin. Monoliittinen arkkitehtuuri kuitenkin vaikeutti uusien ominaisuuksien käyttöönottoa. Lisäksi koodauksesta vastaava tiimi on kasvanut merkittävästi viime vuosina, mikä tarkoitti sitä, että erityisesti uusilla jäsenillä ei ollut käytännössä minkäänlaista käsitystä vanhentuneesta Reloaded-arkkitehtuurista. Vastuu tästä oli ennen kaikkea sovelluslogiikan ja infrastruktuurikoodin välillä.
Mikropalveluarkkitehtuurit esikuvana
Suurten ongelmien vuoksi tiimi päätti täysin uudesta kehitystyöstä sen sijaan, että se olisi tarkistanut olemassa olevaa arkkitehtuuria. Malliksi valittiin moderni mikropalveluarkkitehtuuri. Varsinaisten koodaustehtävien lisäksi tämä mahdollistaa modulaaristen lisäpalvelujen lisäämisen, mukaan lukien seurantaväline ja työkalut jatkuvan toimituksen putkistoa varten. Tämän pitäisi mahdollistaa uuden koodin kehittäminen suoraan tuotantoympäristössä.Maksut voidaan tuoda ilman lisätoimenpiteitä.
Samankaltaisuudesta huolimatta Cosmos-palvelut eivät ole mikropalveluja. Sovelluksen tiedot ja niiden riippuvuudet on myös Netflix-koodaustyökalussa erotettu muista järjestelmistä, kuten mikropalveluissa, mutta palvelut käyttävät selkeästi määriteltyjä sovellusrajapintoja tietojen vaihtoon.
Koodauksen rinnalla tapahtuva hyvin laskentaintensiivinen työ lataa riippuvuudet Docker-kontteina. Tehtävän koosta riippuen Netflixissä näitä on useita tuhansia erilaisia säiliöitä, jotka tallennetaan pilvilaskenta ympäristö. Kehittäjien mukaan erityisen suurten tiedostojen ajo kestää usein useita päiviä.
Cosmoksen kehittäminen alkoi vuonna 2018, ja ensimmäiset testit tuoteympäristössä aloitetaan vuonna 2019. Järjestelmän varsinainen käyttöönotto, joka korvaa Reloaded-koodausalustan kokonaan, tapahtuu kuluvana vuonna 2021.