Netflix qanday ishlaydi: har safar "Play" ni bosganda sodir bo'ladigan murakkab narsalar (juda soddalashtirilgan)

Rasm: Shutterstock

Yaqinda Kartalar Uyi beshinchi mavsumga qaytib keldi va nihoyat butun dunyodagi amerikalik siyosatchining prezidentlikka shafqatsiz ko'tarilishidan manfaatdor bo'lgan muxlislarni uzoq kutish bilan yakunladi. Ular uchun marafonni boshlash, qurilmangiz yoki masofadan turib qidirish, Netflix dasturini ochib, Play-ni urish kabi osondir. Oddiy, tezkor va darhol zavqlantiradi.

Bu shunchaki oddiy narsa emas: 190 mamlakatdagi 98 million to'laydigan abonentlarga kuniga 250 million soat video uzatuvchi Netflix xizmati ishga tushadi. Ushbu masshtabda bir necha soniya ichida har bir foydalanuvchiga sifatli o'yin-kulgilarni taqdim etish bu hazil emas. Va bundan oldin boshqa hech qanday Internet xizmati bo'lmagan miqyosda yuqori darajadagi infratuzilmani qurish degani, bu shuningdek tajribadagi ko'plab ishtirokchilar bilan muzokaralar olib borilishi kerakligini anglatadi - tarkibni etkazib beruvchi ishlab chiqaruvchi kompaniyalardan tortib to to'yguncha. Netflix tarmoq trafigi bilan shug'ullanadigan Internet-provayderlar ularni o'zlariga jalb qilishadi.

Bu, qisqasi va eng aniq aytganda, Netflix qanday ishlaydi.

Netflixning Ishlash va Ishonchlilik bo'limining katta muhandisi Deyv Han bir oqim diagrammasida Netflix-ning barcha arxitekturasini namoyish etadi. (Amazon veb-servislari / YouTube)

Yuzlab mikroservislar, bitta ulkan xizmat

Keling, Netflix qanday texnologik tomondan oddiy misol bilan tuzilganligini tushunishga harakat qilaylik.

Aytaylik, telefoningizdagi Xaritalar ilovasi har doim sizning manzilingizni kuzatib boradi va har qanday faylga kirsangiz, joylar.txt haqida murakkab ma'lumotlarni saqlaydi. Va siz telefoningizda Xaritalar ilovasi mavjud bo'lsa, manzillar.txt faylini qidirib, ushbu faylda qayd etilgan barcha joylarni oddiy ro'yxatda ko'rsatadigan LocoList deb nomlangan dastur yaratasiz. U benuqson ishlaydi.

Endi, shunchaki aytaylik, Xaritalar ilovasini ishlab chiquvchilar sizning joylashuvingiz haqidagi barcha ma'lumotlarni o'sha joylar.txt faylida emas, balki boshqa joyda saqlash yaxshiroq ekanligini anglaydilar va ilova endi ushbu faylni telefoningizda yaratmasligi yoki saqlamasligi uchun yangilaydilar. Endi LocoList u o'zining barcha ma'lumotlari uchun o'ziga bog'liq bo'lgan location.txt faylini topolmayotgandek tuyuladi va xaritalar ilovasidan bu ma'lumotlarni olib tashlashning boshqa usuli yo'q. LocoList endi ishlamaydi. Siz vidolashdingiz.

LocoList-dagi barcha ishlaringiz axlatga tashlandi, chunki ilovangizni buzgan Xaritalarda o'zgarishlar kiritildi. Netflix singari ulkan xizmatda bu erda juda katta muammo bo'lib tuyulmasa ham, butun dastur ishlamay qolmoqda, chunki uning bir qismiga o'zgartirish kiritilsa, bu nafaqat foydalanuvchilar uchun tajribani buzishi, balki boshqa qismlarning ham qismlarini buzishi mumkinligini anglatadi. ilova dasturning bir qismiga kiritilgan kichik o'zgarishlarni qondirish uchun dasturni qayta yozish kerak. Bunday struktura biz monolitik arxitektura deb ataydigan narsadir.

Netflix deyarli o'n yil oldin butun xizmatni ishga tushiradigan dasturlarni mikroservislar arxitekturasiga moslashtirish uchun qayta yozish orqali inqilobga kirdi - bu har bir dastur yoki mikroservis kodi va manbalari o'ziga xosdir. U biron-bir xususiyatini boshqa biron-bir ilova bilan baham ko'rmaydi. Ikkala dastur bir-biri bilan gaplashishga majbur bo'lganda, ular amaliy dasturlash interfeysidan (API) foydalanadilar - bu ikkala dastur ham boshqarishi mumkin bo'lgan qat'iy boshqariladigan qoidalar to'plami. Endi dasturchilar har bir dasturga kichik yoki katta hajmdagi o'zgartirishlar kiritishi mumkin, agar ular API bilan yaxshi o'ynashiga ishonch hosil qilsangiz. Bitta dastur boshqasining API-ni yaxshi bilgani sababli, hech qanday o'zgarish ma'lumot almashishni buzmaydi.

Netflix butun Netflix xizmatining tarkibiy qismlarini har birini boshqarish uchun 700 ga yaqin mikroservislardan foydalanadi, deb hisoblaydi: bitta mikroservis barcha ko'rgan narsalaringizni saqlaydi, biri kredit kartangizdan oylik to'lovni ushlab qoladi, biri qurilmangizni to'g'ri ta'minlaydi u o'ynashi mumkin bo'lgan videofayllar, kimdir tomosha qilish tarixingizni ko'rib chiqadi va sizga yoqadigan filmlar ro'yxatini topish uchun algoritmlardan foydalanadi va kimdir ushbu filmlarning nomlari va rasmlarini asosiy menyu ro'yxatida ko'rsatilishini ta'minlaydi. . Va bu aysbergning uchi. Netflix muhandislari dasturning istalgan qismiga o'zgartirishlar kiritishi va yangi o'zgarishlarni tezda kiritishi mumkin, shu bilan birga, butun xizmatda boshqa hech narsa buzilmasligini ta'minlaydi.

Xulosa qilish uchun, nega mikroservislar arxitekturasi Netflix uchun shunchalik muhim? Xo'sh, ular buni tanlash bilan nimaga erishdilar:

Amazon veb-servislari / YouTubeOddiy ma'lumotlar markazi, xususan, Germaniyaning Frankfurt shahrida joylashgan. (Nils Juenemann / nilsjuenemann.de)

Bu mikroservislarning barchasi qayerda ishlaydi?

Bularning barchasini bajarish uchun siz bir vaqtlar Netflix egalik qilgan kompyuter serverlarining ulkan tarmog'iga ega bo'lishingiz kerak, ammo ular o'zlarining vaqtlarini sarflaganlarida ular tez sur'atlar bilan o'sib borganliklari va buni davom ettirishlari kerakligini tushunishdi. dasturiy ta'minotini qo'llab-quvvatlaydigan va ularni ehtiyojlariga mos ravishda o'zgartirish va o'zgartirishni amalga oshiradigan kompyuter tizimlarini yaratish. Ular o'zlarining serverlarini saqlashdan qutulish va barcha narsalarni bulutga o'tkazish haqida jasorat bilan qaror qildilar - ya'ni hamma narsani apparatni saqlash bilan shug'ullangan boshqa birovning serverlarida ishga tushirishdi, Netflix muhandislari esa yuzlab dasturlarni yozib, uni o'rnatdilar. tezkor serverlar. Bulutga asoslangan infratuzilmani tanlagan yana bir kishi bu Amazon Web Services (AWS).

Kutmoq. Amazon? Axir bu eng yaxshi Video-ni boshqaradigan odamlarmi? Qanday qilib Netflix o'zlarining hamma narsalarini raqibga ishonishi mumkin?

Ko'pgina korxonalar bir xil toifalarda raqobatdosh bo'lishiga qaramay, bir-birlari uchun ishlaydigan janoblarning kelishuvlariga amal qilishadi - Samsungning Apple bilan qanday qilib telefonlarda raqobatlashayotgani va shu bilan birga iPhone-ning asosiy qismlari ishlab chiqaruvchilar tomonidan ishlab chiqarilgan. Koreys giganti. Prime Video ochilishidan oldin Netflix AWS mijozi edi, ammo bu ularning bir-biriga dushman bo'lishlarini anglatmaydi.

Netflix va Amazon hamkorligi ikkala kompaniya uchun ham katta yutuqli vaziyatga aylandi. Netflix AWS-ning eng ilg'or mijozlari bo'lib chiqdi, ular o'zlarining barcha imkoniyatlarini maksimal darajaga ko'tarib, turli maqsadlar uchun taqdim etilgan AWS-ning turli xil serverlaridan - mikroservislarni ishga tushirish, filmlarni saqlash, Internet-trafikni boshqarish - o'zlarining ixtiyorida bo'lishlariga intilib, doimo o'zlarining yangiliklariga intiladilar. o'z kaliti. O'z navbatida, AWS o'z tizimlarini takomillashtirdi va Netflix-ga o'z serverlariga katta hajmdagi yuklarni olishga imkon beradi, shuningdek turli AWS mahsulotlarini ishlatishni yanada moslashuvchan qiladi va minglab boshqa korporativ mijozlarning ehtiyojlarini qondirish uchun to'plangan tajribadan foydalanadi. AWS yuqori darajadagi mijoz sifatida Netflix-ni mag'rurlik bilan o'chiradi va Netflix AWS tufayli o'z xizmatlarini tezda yaxshilaydi va barqarordir. Netflix Prime Video-ning mashhurligini yo'qotib qo'ysa ham yoki aksincha.

ScaleScale / scalescale.com

G'altakdan ekranga qadar - uzoq sayohat

Albatta, televizor / filmlarni tomosha qilmasdan qandaydir TV / kino xizmati bo'lishi kerak? Netflix uchun ularni film prodyuseridan buyurtmachiga olib borish uzoq va mashaqqatli jarayon:

  • Agar bu shou / film Netflix o'z-o'zidan ishlab chiqmasa (ya'ni Netflix asl nusxasi emas), ular filmlar yoki teleshoularni tarqatish bilan shug'ullanadigan kompaniyalar bilan translyatsiya huquqlarini muhokama qilishlari kerak. Bu dunyoning turli mintaqalaridagi mijozlarga kino yoki teleko'rsatuvni namoyish qilish uchun qonuniy huquqni olish uchun katta miqdordagi pulni to'lashni anglatadi. Va ko'pincha tarqatish kompaniyasi (yoki hatto Netflixning o'zi) ba'zi mintaqalar uchun boshqa video xizmatlar yoki telekanallar bilan eksklyuziv bitimlar tuzishi mumkin, ya'ni Netflix ba'zi mijozlarga u erda ba'zi shoularni taqdim etmasligi mumkin yoki keyinchalik. sana - masalan, bu "Kartochkalar uyi" ning Yaqin Sharqdagi 5-mavsum premyerasi 30-iyunga qadar kutilmagan tarzda kechiktirildi, bu 30-may kuni uni qabul qilgan 150 mamlakat bilan solishtirganda to'liq oy keyin. buni hazil (inglizcha) videoda tushuntirish uchun:
  • Shou yoki filmning asl raqamli nusxasini AWS serverlarida saqlang. Asl nusxalari odatda yuqori sifatli kino standartlariga mos keladi va Netflix ularni har kim ko'rishi uchun ularni qayta ishlashga majbur qiladi.
  • Netflix minglab qurilmalarda ishlaydi va ularning har biri turli xil video va ovozli fayllarni o'ynaydi. AWS serverlarining yana bir to'plami ushbu asl kino faylini olib, uni yuzlab fayllarga aylantiradi, ularning har biri butun namoyish yoki filmni ma'lum bir turdagi yoki ma'lum ekran o'lchamida yoki video sifatida o'ynashga mo'ljallangan. Bitta fayl faqat iPad-da ishlaydi, bittasi to'liq HD telefonda, 4K videoni va Dolby ovozini ijro etadigan Sony televizorida, bitta Windows kompyuterida va hokazo. Ushbu fayllarning aksariyati turli xil video sifatlari bilan amalga oshirilishi mumkin, shuning uchun ular yomon tarmoq ulanishiga yuklanishi osonroq bo'ladi. Bu transkodlash deb nomlanuvchi jarayon. Ushbu fayllarga raqamli huquqlarni boshqarish yoki DRM deb nomlangan narsalar bilan blokirovka qilish uchun maxsus kod bo'lagi qo'shilgan - bu filmlarning qaroqchiligini oldini oladigan texnologik chora.
  • Netflix ilovasi yoki veb-sayti sizning qaysi qurilmangizni tomosha qilishingizni aniqlaydi va shu shou uchun aniq faylni sizning maxsus qurilmangizda maxsus ijro etish uchun mo'ljallangan faylni, shu vaqtning o'zida sizning Internetingiz qanchalik tez bo'lishiga qarab aniq video sifatiga ega.

Yuklab olishning so'nggi qismi bu erda Netflix uchun juda muhimdir, chunki Internet tarmog'i videoni Netflix-ning AWS serverlaridan mijozning qurilmasiga uzatadi. Agar u yomon boshqarilsa yoki e'tibor berilmasa, demak, bu juda sekin yoki foydalanib bo'lmaydigan Netflix va kompaniya uchun deyarli yakunidir. Internet bu Netflix-ni o'z mijozlari bilan bog'laydigan kindik ichakchasidir va foydalanuvchi xohlagan tarkibni qisqa vaqt ichida etkazishi uchun ko'p vaqt talab etadi. Millionlab xizmatlar kosmos uchun raqobatlashadigan juda gavjum tarmoqda.

Tampon vaqtiga qarshi poyga

Qisqacha CDN (CDN sharhlari / cdnreviews.com)

Netflix ekotizimini yaratadigan barcha harakatlarning dasturi - dasturiy ta'minot, tarkib va ​​texnologiya - agar foydalanuvchining Internetga ulanishi video sifatini boshqarish uchun juda zaif bo'lsa, foydasiz bo'ladi. Internetda hamma narsa asosan shunday ishlaydi: tarmoqqa kirishni talab qiladigan biror narsa qilsangiz, Internet-provayderingizga so'rov yuboriladi. ISP uni veb-saytni ishlaydigan maxsus serverlarga yuboradi va serverlar javob qaytarib, sizning kompyuteringizga qaytariladi va natijani hosil qiladi. Netflix va boshqa serverlar va barcha foydalanuvchilar o'rtasida millionlab soatlik video-kontent Internet orqali uzatiladigan boshqa yuqori darajadagi saytlar uchun ishlashni ta'minlash uchun ancha katta serverlar tarmog'i kerak. Ular buni kontentni etkazib berish tarmog'i (CDN) yaratish orqali amalga oshiradilar.

Asosan CDN-lar bu asl veb-saytni va tarkibidagi media tarkibni olib, uni butun dunyo bo'ylab tarqalgan yuzlab serverlarga nusxalash. Shunday qilib, aytganda, siz Budapeshtdan tizimga kirasiz, Qo'shma Shtatlardagi asosiy Netflix serveriga ulanish o'rniga, uning nusxasi Budapeshtga eng yaqin bo'lgan CDN serveridan yuklanadi. Bu kutish vaqtini sezilarli darajada kamaytiradi - so'rov va javob o'rtasidagi vaqt va hamma narsa juda tez yuklanadi. Google, Facebook yoki YouTube kabi juda ko'p foydalanuvchilarga ega veb-saytlar qaerda bo'lishingizdan yoki Internet tezligidan qat'i nazar juda tez yuklanishiga sabab bo'lgan CDN-lar.

Internet-provayderlarga etkazib beriladigan Netflix-ning ochiq ulanish qutilari. (NDTV Gadgets360 / gadgets.ndtv.com)

Ilgari Netflix o'z tarkibini etkazib berish uchun turli xil CDN tarmoqlaridan foydalangan - Akamai, Level 3 va Limelight Networks kabi gigantlar tomonidan boshqariladi. Ammo o'sib borayotgan foydalanuvchilar bazasi xarajatlarni kamaytirgan holda ko'proq joylarga ko'proq miqdordagi tarkibni etkazib berishlari kerakligini anglatadi va bu ularga Open Connect deb nomlangan o'z CDNlarini yaratishga olib keldi.

Bu erda, AWS serverlariga ishonishning o'rniga, ular butun dunyo bo'ylab o'zlarining shaxsiy dasturlarini o'rnatadilar. Ammo uning bitta maqsadi bor - tarkibni oqilona saqlash va foydalanuvchilarga etkazish. Netflix ish tashlashlari Internet-provayderlar bilan shartnoma tuzadi va ularga yuqorida ko'rgan qizil qutini bepul taqdim etadi. Internet provayderlari ularni o'zlarining serverlari bilan birga o'rnatadilar. Ushbu Open Connect qutilari o'z mintaqalari uchun Netflix kutubxonasini AQShdagi asosiy serverlardan yuklab oladi - agar ularning soni ko'p bo'lsa, ularning har biri tezlikni belgilash uchun mintaqadagi Netflix foydalanuvchilari tomonidan ko'proq mashhur bo'lgan tarkibni saqlaydi. Shunday qilib, kamdan-kam tomosha qilinadigan film "Notanish narsalar" epizodidan ko'proq yuklash uchun vaqt talab qilishi mumkin. Endi siz Netflix-ga ulanganda sizga eng yaqin bo'lgan ochiq ulanish qutisi sizga kerakli tarkibni etkazib beradi, shu sababli sizning Netflix dasturingiz AQShdagi asosiy serverlardan yuklashga harakat qilganidan ko'ra videolar tezroq yuklanadi.

Videoni saqlaydigan butun dunyo bo'ylab qattiq disklar deb o'ylang, va ular qanchalik yaqin bo'lsa, siz ularga tezroq murojaat qilishingiz va videoni yuklab olishingiz mumkin. Sahna ortida yana hiyla-nayranglar mavjud: ushbu intervyu tushuntirganidek, har safar shoularga urganingizda, Netflix shou yuklangan 10 ta eng yaqin Open Connect qutisini topadi. Sizning Netflix ilovangiz / saytingiz ulardan qaysi biri Internetga ulanishda eng yaqin yoki eng tezkorligini aniqlashga harakat qiladi va u erdan videoni yuklaydi. Shuning uchun videolar xiralashadi, lekin keyin birdan keskinlashadi - ya'ni Netflix sizga eng yuqori sifatli video taqdim etadigan serverga ulanadi.

Skrinshot muallif

Qisqasini etkanda….

Ushbu "Play" tugmachasini bosganingizda shunday bo'ladi:

  • Netflix-ning bitta yirik xizmatini yaratish uchun yuzlab mikroservislar yoki kichik mustaqil dasturlar birgalikda ishlaydi.
  • Qonuniy ravishda sotib olingan yoki litsenziyaga ega bo'lgan tarkib ekraningizga mos keladigan hajmga aylantiriladi va nusxalanishdan himoyalanadi.
  • Dunyo bo'ylab serverlar uning nusxasini yaratadilar va eng yaqinlarini maksimal darajada va tezlikda etkazib berishlari uchun ularni saqlaydilar.
  • Agar shoularni tanlasangiz, Netflix ilovangiz olcha ushbu serverlardan qaysi biri videoni yuklab olishini tanlaydi.
  • Endi Frenk Undervudning hayajonli hiyla-nayranglari, BoJack Horseman-ning rolni tushirish davridagi tushkunlikka asoslangan va "None Master" da Dev tomonidan aytilgan va "Black Mirror" dagi hikoyalar texnologiyaning kelajagiga befarq bo'lgan. Sizning umringiz pasayadi, chunki sizning binging sizni divan kartoshkasiga aylantiradi.

Oldin juda oddiy ko'rinar edi, shunday emasmi?

[Yangilanish (2017 yil 21-noyabr): Ushbu maqoladagi rasm xato ravishda Amazon Web Services ma'lumotlar markazining tasviri deb baholandi. Germaniyadagi Amazon Web Services-dagi yaxshi odamlarga shaxsan yordam bergani va menga bu xato haqida xabar bergani uchun minnatdorman.]