Straumēšanas pakalpojumu sniedzējs Netflix glabā savus videoklipus, lai tos optimāli piegādātu dažādos interneta ātrumos un dažādās atskaņošanas ierīcēs. Izšķirtspējas, kvalitātes līmeņi un formāti. Izstrādāta bija kodēšanas platforma "Reloaded" apmēram septiņus gadus. Tomēr pa to laiku Netflix slodze ir desmitkārt palielinājusies, pateicoties paplašināšanai vairāk tirgos un ievērojami lielākam satura apjomam. Saskaņā ar Netflix inženierijas emuāra ziņām tas ir radījis problēmas. Tāpēc atbildīgie izstrādātāji ir izstrādājuši jaunu kodēšanas platformu ar nosaukumu "Cosmos" izveidots.
Kā Cosmos komandas vārdā skaidro Frenks San Migels, Reloaded vecā arhitektūra tika izstrādāta tikai un vienīgi, lai pēc iespējas labāk mērogotu audio un video saturu. Tomēr monolītā arhitektūra ievērojami apgrūtināja jaunu funkciju ieviešanu. Turklāt par kodēšanu atbildīgā komanda pēdējo gadu laikā ir ievērojami palielinājusies, un tas nozīmē, ka īpaši jaunajiem dalībniekiem praktiski nebija nekāda priekšstata par novecojušo Reloaded arhitektūru. Par to galvenokārt bija atbildīga lietojumprogrammas loģika ar infrastruktūras kodu.
Mikroservisu arhitektūras kā paraugs
Tā kā radās lielas problēmas, komanda nolēma nevis pārskatīt esošo arhitektūru, bet gan izstrādāt pilnīgi jaunu. Kā modelis tika izvēlēta moderna mikropakalpojumu arhitektūra. Papildus faktiskajiem kodēšanas uzdevumiem tas ļauj modulāri pievienot papildu pakalpojumus, tostarp uzraudzības rīku un nepārtrauktas piegādes cauruļvada rīkus. Tas ļaus izstrādāt jaunu kodu tieši ražošanas vidē.Iemaksas var importēt bez papildu iejaukšanās.
Neskatoties uz līdzībām, Cosmos pakalpojumi nav mikropakalpojumi. Arī lietojumprogrammas dati un to atkarības ir nodalītas no citām sistēmām Netflix kodēšanas rīkā, līdzīgi kā mikropakalpojumos, bet pakalpojumi izmanto skaidri definētas API datu apmaiņai.
Ļoti skaitļošanas ziņā intensīvs darbs, kas notiek līdztekus kodēšanai, ielādē tās atkarības kā Docker konteinerus. Atkarībā no uzdevuma lieluma, pie Netflix tie ir vairāki tūkstoši dažādu konteineru, kas tiek glabāti datubāzē. mākoņdatošana vide. Pēc izstrādātāju teiktā, īpaši lielu failu palaišana bieži vien aizņem vairākas dienas.
Cosmos izstrāde sākās 2018. gadā, un sākotnējie testi produkta vidē sāksies 2019. gadā. Faktiskā sistēmas ieviešana, kas pēc tam pilnībā aizstās Reloaded kodēšanas platformu, notiks 2021. gadā.