Kodėl Apple renginio transliacija striginėjo

Tema: Apple

Dažnas, stebėjęs Apple iPhone 6 ir Apple Watch renginio transliaciją internetu visaip maigė savo įrenginius stengdamasis suprasti kodėl rugsėjo 9 vykusio Apple renginio transliacija striginėja, nutrūksta rodydama klaidos pranešimą, o kai pagaliau vaizdas pasirodo – kokybė šokinėja.

Tiesioginė, rugsėjo 9 dieną vykusio Apple renginio transliacija buvo katastrofiška nuo pačios jos pradžios. Daugelis iš pat pradžių negalėdamas patikėti, kad šitaip gali nutikti Apple bandė kaltinti savo internetą, įrenginius ir „šokinėjo“ nuo Apple TV, prie iPhone ar iPad ir Mac’o visais būdais stengdamasis išgirsti visus renginio metu pasakytus žodžius. Bet veltui - visuose įrenginiuose ir visiems pasaulio vartotojams renginio transliacija buvo nekokybiška.

Antroji į galvą šaunanti mintis buvo, kad trukdžiai gali vykti dėl nepakankamo tinklų pralaidumo ir vertė kurti piktus epitetus Akamai adresu.

Pradėjus gilintis į problemą ir pasidairius po Apple renginio transliacijai skirtos svetainės kodą pasirodė, kad problema greičiausiai yra tame, kad Apple neteisingai sukonfigūravo Amazon S3 paslaugos pajėgumus.

Priešingai, nei ankstesnių savo renginių tiesioginių transliacijų internetu atvejais, šį kartą Apple nusprendė savo, transliacijai skirtame apple.com svetainės puslapyje, patalpinti JSON (JavaScript Object Notation) kodą, kurio pagalba puslapiui buvo suteikta daugiau interaktyvumo - žemiau video tranalsiacijos buvo rodomos Twitter žinutės susijusios su renginiu. Šito pasekoje puslapis buvo verčiamas persikrauti kas kelias milisekundes ir tai sukūrė problemą, dėl kurios apple.com svetainė tapdavo neprieinama.

Apple sprendimas panaudoti JSON kodą puslapio informaciją padarė netinkamą kešuoti. Anksčiau Apple visada naudojo Akamai kešavimo paslaugas, tačiau šį kartą, galimybės kešuoti informaciją Akamai neturėjo. Kadangi Apple renginio video įdiegė tiesiogiai į internetinį puslapį, bet kokios problemos darančios įtaką puslapio rodymo našumui, tiesiogiai veikė ir to puslapio pagalba transliuojamą video medžiagą.

Dėl nepaprastai dažnų, JSON kodo inicijuotų puslapio informacijos atnaujinimo užklausų video medžiagos kokybė automatiškai prastėjo (kokybė automatiškai parenkama pagal prisijungimo prie transliacijos greitį). Kalbant apie vertimą, kuris buvo girdimas pirmas 27 transliacijos minutes tai čia visiškai Apple kaltė. Aiškiai kažkas iš Apple, neteisingai sureguliavo pirminio ir atsarginio transliacijos srauto enkoderį, nes buvo girdimas ne tik papildomas vertimas, bet ir garsas nebuvo susinchronizuotas su vaizdu. Problemos šalinimu buvo užsiimta jau prasidėjus transliacijai ir, matyt, enkoderiai buvo ne kartą perkraunami, nes tuo metu ekrane pasirodydavo „could not load movie“ ir „you don’t have permission to access“ klaidos.

Pasižvalgę po renginio transliacijai skirto svetainės puslapio meta-duomenis pamatytumėte, kad Apple interaktyvių transliacijos elementų tiekimui naudojo Amazon S3 debesų paslaugą ir greičiausiai kešavimas buvo nepaprastai trumas arba jo nebuvo visai. Kas link Akamai, tai panašu, kad tai buvo vienintelis Apple naudotas CDN, nes traceroute iš skirtingų pasaulio šalių rodė, kad Apple patikėjo visą transliacijos srautą vienintelei Akamai, o kadangi pastaroji negalėjo Apple informacijos kešuoti - Apple svetainė gavo nepaprastai didelį krūvį. Visos CDN architektūros yra pagrįstos informacijos kešavimu, kurio šiuo atveju, Akamai negalėjo atlikti.

Žemiau pateiktas Cedexis grafike atvaizduotas Akamai paslaugų prieinamumas Rytų Europoje Apple renginio metu. Nieko stebėtino, kad paslaugos prieinamumas buvo sumažėjęs ir 98,5% paslaugos srauto buvo užimta, nes nebuvo naudojamas kešavimas.

Grafike atvaizduotas Akamai paslaugų prieinamumas Rytų Europoje Apple renginio metu. Šaltinis: Cedexis
Grafike atvaizduotas Akamai paslaugų prieinamumas Rytų Europoje Apple renginio metu.
Šaltinis: Cedexis

Apibendrinant galiu pasakyti, kad nekokybiškos transliacijos priežastimi buvo enkodingas, JavaScript kodas, vienintelės S3 talpos naudojimas bei internetinės svetainės transliacijai skirto puslapio informacijos atnaujinimas kas kelias milisekundes. Ir nors galėtų pasirodyti, kad tai buvo tinklo pralaidumo problema, atrodo, kad pralaidumo pajėgumų trūkumas nelabai su šia problema susijęs - Apple paprasčiausiai prastai pasiruošė šio renginio tiesioginei transliacijai.

Jei kartais norėtumėte pažiūrėti kokybiškos, tokios kokia turėjo būti tiesioginė Apple 2014 metų rugsėjo 9 renginio transliacija, tai padaryti galite žemiau esančiame kiek daugiau nei 2 valandas trunkančiame video.

Apytikslis skaitymo laikas (neskaičiuojant vaizdo įrašų žiūrėjimo)3 minutės.
Pasidalinti straipsniu:

Apie Ramūną Blavaščiūną

Fotografijos, geros technikos ir kavos mylėtojas, didelę savo laisvalaikio dalį skiriantis straipsnių „Mac Arena“ rašymui.

Komentarų: 8 | Ačiū, kad rašote lietuviškai

  1. Gal ir gerai, kad trukinejo transliacija, si karta kaip niekada turbut nuobodziausias pristatymas apples istorijoje. Bent jau turejau galimybes atitrukti nuo kompo :)
    Net saleje ovaciju mazai buvo, ne taip kaip ankciaus kas 20 zodi ovacijos aidedavo.

  2. Pilnas internetas niekinantis naujuosius iPhone, baisu net ziureti ;)

Parašykite komentarą

Jūsų elektroninio pašto adresas nebus viešinamas. Būtini laukai pažymėti *

*