Video komunikÄcija ir galvenais saziÅas veids starp skolotÄju un skolÄnu Vimbox platformÄ. MÄs jau sen atteicÄmies no Skype, izmÄÄ£inÄjÄm vairÄkus treÅ”o puÅ”u risinÄjumus un galu galÄ izvÄlÄjÄmies WebRTC - Janus-gateway kombinÄciju. KÄdu laiku bijÄm ar visu apmierinÄti, bet tomÄr turpinÄja iezÄ«mÄties daži negatÄ«vie aspekti. RezultÄtÄ tika izveidots atseviŔķs video virziens.
Es lÅ«dzu Kirilu Rogovoju, jaunÄ virziena vadÄ«tÄju, pastÄstÄ«t par video komunikÄcijas attÄ«stÄ«bu Skyeng, atklÄtajÄm problÄmÄm, risinÄjumiem un kruÄ·iem, ko mÄs galu galÄ izmantojÄm. MÄs ceram, ka raksts bÅ«s noderÄ«gs uzÅÄmumiem, kas arÄ« paÅ”i veido video, izmantojot tÄ«mekļa lietojumprogrammu.
Nedaudz vÄstures
2017. gada vasarÄ Skyeng attÄ«stÄ«bas vadÄ«tÄjs Sergejs Safonovs uzstÄjÄs Backend Conf ar stÄstu par to, kÄ mÄs āatteicÄmies no Skype un ieviesÄm WebRTCā. Interesenti runas ierakstu var noskatÄ«ties plkst
Skyeng skolai video komunikÄcija vienmÄr ir bijusi prioritÄrs skolotÄju un studentu saziÅas veids. SÄkumÄ tika izmantots Skype, taÄu tas kategoriski nebija apmierinoÅ”s vairÄku iemeslu dÄļ, galvenokÄrt tÄpÄc, ka trÅ«ka žurnÄlu un nebija iespÄjams tieÅ”i integrÄt tÄ«mekļa lietojumprogrammÄ. TÄpÄc mÄs veicÄm visdažÄdÄkos eksperimentus.
Faktiski mÅ«su prasÄ«bas video saziÅai bija aptuveni Å”Ädas:
ā stabilitÄte;
ā zema cena par nodarbÄ«bu;
ā nodarbÄ«bu ierakstÄ«Å”ana;
ā izsekoÅ”ana, kurÅ” cik daudz runÄ (mums ir svarÄ«gi, lai stundÄs skolÄni runÄtu vairÄk nekÄ skolotÄjs);
ā lineÄrÄ mÄrogoÅ”ana;
- spÄja izmantot gan UDP, gan TCP.
Pirmais mÄÄ£inÄjums bija Tokbox ievieÅ”ana 2013. gadÄ. Viss bija labi, bet tas izrÄdÄ«jÄs ļoti dÄrgs - 113 rubļi par nodarbÄ«bu - un apÄda peļÅu.
PÄc tam 2015. gadÄ Voximplant tika integrÄts. Å eit bija funkcija, kas mums bija nepiecieÅ”ama, lai izsekotu, kurÅ” cik runÄ, un tajÄ paÅ”Ä laikÄ risinÄjums bija daudz lÄtÄks: ja tika ierakstÄ«ts tikai audio, tas maksÄja 20 rubļus par stundu. TomÄr tas darbojÄs tikai caur UDP un nevarÄja pÄrslÄgties uz TCP. TomÄr aptuveni 40% studentu to izmantoja.
Gadu vÄlÄk mums sÄka bÅ«t korporatÄ«vie klienti ar savÄm Ä«paÅ”Äm prasÄ«bÄm. PiemÄram, visam vajadzÄtu darboties caur pÄrlÅ«kprogrammu, uzÅÄmums atver tikai http un https; t.i., nav Skype vai UDP. KorporatÄ«vie klienti = nauda, āātÄpÄc viÅi atgriezÄs Tokbox, bet cenu problÄma nepazuda.
RisinÄjums - WebRTC un Janus
NolÄma izmantot
Ar parastu p2p savienojumu mums nepietiek, jo vÄlamies ierakstÄ«t nodarbÄ«bas tÄlÄkai analÄ«zei sÅ«dzÄ«bu gadÄ«jumÄ. TÄpÄc mÄs nosÅ«tÄm WebRTC straumes caur releju
2017. gada vasarÄ mums darbojÄs divi Janus serveri, kÄ arÄ« papildus serveris ierakstÄ«to neapstrÄdÄto audio un video failu apstrÄdei, lai nenoslogotu galveno procesorus. PieslÄdzoties, Janus serveri tika atlasÄ«ti pÄc nepÄra un pÄra principa (savienojuma numurs). Toreiz ar to pietika, pÄc mÅ«su izjÅ«tÄm tas deva aptuveni ÄetrkÄrtÄ«gu droŔības rezervi, realizÄcijas procents bija ap 80. TajÄ paÅ”Ä laikÄ cena tika samazinÄta lÄ«dz ~2 rubļiem par stundu, plus attÄ«stÄ«ba un atbalsts.
Atgriežoties pie video komunikÄcijas tÄmas
MÄs pastÄvÄ«gi uzraugÄm studentu un skolotÄju atsauksmes, lai savlaicÄ«gi identificÄtu un labotu problÄmas. LÄ«dz 2018. gada vasarai zvanu kvalitÄte bija pÄrliecinoÅ”i pirmajÄ vietÄ starp sÅ«dzÄ«bÄm. No vienas puses, tas nozÄ«mÄja, ka esam veiksmÄ«gi tikuÅ”i galÄ ar citiem trÅ«kumiem. No otras puses, vajadzÄja kaut ko darÄ«t steidzami: ja nodarbÄ«ba tiek traucÄta, mÄs riskÄjam zaudÄt tÄs vÄrtÄ«bu, dažreiz kopÄ ar nÄkamÄs paketes iegÄdes izmaksÄm, un, ja tiek traucÄta ievadnodarbÄ«ba, mÄs riskÄjam zaudÄt potenciÄlo klientu. vispÄr.
TobrÄ«d mÅ«su video komunikÄcija vÄl bija MVP režīmÄ. VienkÄrÅ”i sakot, viÅi to palaida, tas strÄdÄja, viÅi vienreiz palielinÄja to, viÅi saprata, kÄ to izdarÄ«t - nu, lieliski. Ja tas darbojas, nelabojiet to. Neviens apzinÄti nerisinÄja komunikÄcijas kvalitÄtes jautÄjumu. LÄ«dz augustam kļuva skaidrs, ka tas nevar turpinÄties, un mÄs sÄkÄm atseviŔķu virzienu, lai noskaidrotu, kas ir nepareizi ar WebRTC un Janus.
IevadÄ Å”is virziens saÅÄma: MVP risinÄjums, nav metriku, nav mÄrÄ·u, nav procesu uzlaboÅ”anai, savukÄrt 7% skolotÄju sÅ«dzas par komunikÄcijas kvalitÄti (arÄ« nebija datu par skolÄniem).
Notiek jauns virziens
Komanda izskatÄs apmÄram Å”Ädi:
- Nodaļas vadÄ«tÄjs, kurÅ” ir arÄ« galvenais izstrÄdÄtÄjs.
- QA palÄ«dz pÄrbaudÄ«t izmaiÅas, meklÄ jaunus veidus, kÄ radÄ«t nestabilus saziÅas apstÄkļus, un ziÅo par problÄmÄm no priekÅ”ÄjÄs lÄ«nijas.
- AnalÄ«tiÄ·is pastÄvÄ«gi meklÄ dažÄdas tehnisko datu korelÄcijas, uzlabo lietotÄju atsauksmju analÄ«zi un pÄrbauda eksperimentu rezultÄtus.
- Produktu vadÄ«tÄjs palÄ«dz ar vispÄrÄjo virzÄ«bu un resursu pieŔķirÅ”anu eksperimentiem.
- Otrs izstrÄdÄtÄjs bieži palÄ«dz ar programmÄÅ”anu un saistÄ«tiem uzdevumiem.
SÄkumÄ mÄs izveidojÄm salÄ«dzinoÅ”i uzticamu metriku, kas izsekoja komunikÄcijas kvalitÄtes novÄrtÄjumu izmaiÅas (vidÄji dienÄs, nedÄļÄs, mÄneÅ”os). Toreiz tÄs bija skolotÄju atzÄ«mes, vÄlÄk tÄm pievienoja skolÄnu atzÄ«mes. PÄc tam viÅi sÄka izvirzÄ«t hipotÄzes par to, kas darbojas nepareizi, to laboja un aplÅ«koja izmaiÅas dinamikÄ. MÄs izvÄlÄjÄmies zemu karÄjas augļus: piemÄram, nomainÄ«jÄm vp8 kodeku ar vp9, veiktspÄja uzlabojÄs. MÄÄ£inÄjÄm spÄlÄties ar Janus iestatÄ«jumiem un veikt citus eksperimentus ā vairumÄ gadÄ«jumu tie ne pie kÄ nenoveda.
OtrajÄ posmÄ parÄdÄ«jÄs hipotÄze: WebRTC ir vienÄdranga risinÄjums, un mÄs izmantojam serveri pa vidu. VarbÅ«t problÄma slÄpjas Å”eit? MÄs sÄkÄm rakt un atradÄm lÄ«dz Å”im bÅ«tiskÄko uzlabojumu.
TajÄ brÄ«dÄ« serveris no baseina tika izvÄlÄts, izmantojot diezgan muļķīgu algoritmu: katram bija savs āsvarsā, atkarÄ«bÄ no kanÄla un jaudas, un mÄs mÄÄ£inÄjÄm nosÅ«tÄ«t lietotÄju uz to, kuram ir vislielÄkais āsvarsā, bez pievÄrÅ”ot uzmanÄ«bu lietotÄja Ä£eogrÄfiskajai atraÅ”anÄs vietai . RezultÄtÄ skolotÄjs no PÄterburgas ar studentu no SibÄ«rijas varÄja sazinÄties caur Maskavu, nevis caur mÅ«su Janus serveri SanktpÄterburgÄ.
Algoritms ir pÄrveidots: tagad, kad lietotÄjs atver mÅ«su platformu, mÄs savÄcam no viÅa ping uz visiem serveriem, kas izmanto Ajax. Veidojot savienojumu, mÄs izvÄlamies ping pÄri (skolotÄjs-serveris un skolÄns-serveris) ar mazÄko summu. MazÄks ping nozÄ«mÄ mazÄku tÄ«kla attÄlumu lÄ«dz serverim; mazÄks attÄlums nozÄ«mÄ mazÄku pakeÅ”u zaudÄÅ”anas varbÅ«tÄ«bu; PakeÅ”u zudums ir lielÄkais negatÄ«vais faktors video komunikÄcijÄ. NegativitÄtes Ä«patsvars trÄ«s mÄneÅ”u laikÄ samazinÄjÄs uz pusi (taisnÄ«bas labad jÄsaka, ka Å”ajÄ laikÄ tika veikti arÄ« citi eksperimenti, taÄu Å”im gandrÄ«z noteikti bija vislielÄkÄ ietekme).
MÄs nesen atklÄjÄm vÄl vienu nepÄrprotamu, bet Ŕķietami svarÄ«gu lietu: viena jaudÄ«ga Janus servera vietÄ biezÄ kanÄlÄ labÄk ir izmantot divus vienkÄrÅ”Äkus ar mazÄku joslas platumu. Tas kļuva skaidrs pÄc tam, kad iegÄdÄjÄmies jaudÄ«gas maŔīnas, cerot tajÄs vienlaikus sabÄzt pÄc iespÄjas vairÄk telpu (saziÅas sesiju). Serveriem ir joslas platuma limits, ko varam precÄ«zi pÄrtulkot telpu skaitÄ ā zinÄm, cik var atvÄrt, piemÄram, pie 300 Mbit/s. TiklÄ«dz serverÄ« ir atvÄrts pÄrÄk daudz istabu, mÄs pÄrtraucam to izvÄlÄties jaunÄm aktivitÄtÄm, lÄ«dz slodze samazinÄs. Ideja bija tÄda, ka, iegÄdÄjoties jaudÄ«gu maŔīnu, mÄs maksimÄli ielÄdÄjam tajÄ kanÄlu, lai galu galÄ to ierobežotu procesors un atmiÅa, nevis joslas platums. Bet izrÄdÄ«jÄs, ka pÄc noteikta skaita atvÄrto telpu (420), neskatoties uz to, ka procesora, atmiÅas un diska slodze joprojÄm ir ļoti tÄlu no robežÄm, tehniskajÄ nodroÅ”inÄjumÄ sÄk nonÄkt negatÄ«visms. AcÄ«mredzot JanusÄ kaut kas kļūst sliktÄks, varbÅ«t arÄ« tur ir kÄdi ierobežojumi. MÄs sÄkÄm eksperimentÄt, pazeminÄjÄm joslas platuma ierobežojumu no 300 lÄ«dz 200 Mbit/s, un problÄmas pazuda. Tagad mÄs iegÄdÄjÄmies trÄ«s jaunus serverus uzreiz ar zemiem limitiem un parametriem, domÄjam, ka tas nodroÅ”inÄs stabilu komunikÄcijas kvalitÄtes uzlaboÅ”anos. Protams, mÄs necentÄmies saprast, kas tur notiek; mÅ«su kruÄ·i ir viss. AizstÄvot, teiksim, ka tajÄ brÄ«dÄ« bija nepiecieÅ”ams pÄc iespÄjas ÄtrÄk atrisinÄt aktuÄlo problÄmu, nevis to darÄ«t skaisti; turklÄt Janus mums ir melnÄ kaste, kas rakstÄ«ta ar C, ar to ir ļoti dÄrgi lÄpÄ«t.
Nu, Å”ajÄ procesÄ mÄs:
- atjauninÄtas visas atkarÄ«bas, kuras varÄja atjauninÄt gan serverÄ«, gan klientÄ (tie arÄ« bija eksperimenti, uzraudzÄ«jÄm rezultÄtus);
- novÄrstas visas identificÄtÄs kļūdas, kas saistÄ«tas ar konkrÄtiem gadÄ«jumiem, piemÄram, kad savienojums pÄrtrÅ«ka un netika automÄtiski atjaunots;
- BijÄm daudz tikÅ”anÄs ar uzÅÄmumiem, kas strÄdÄ video komunikÄcijas jomÄ un iepazinÄmies ar mÅ«su problÄmÄm: spÄļu straumÄÅ”ana, vebinÄru organizÄÅ”ana; izmÄÄ£inÄjÄm visu, kas mums Ŕķita noderÄ«gs;
- Veica skolotÄju aparatÅ«ras un komunikÄcijas kvalitÄtes tehnisko pÄrbaudi, no kuriem saÅemtas visvairÄk sÅ«dzÄ«bu.
Eksperimenti un tam sekojoÅ”Äs izmaiÅas ļÄva samazinÄt skolotÄju neapmierinÄtÄ«bu ar komunikÄciju no 7,1% 2018. gada janvÄrÄ« lÄ«dz 2,5% 2019. gada janvÄrÄ«.
Kas ir nÄkamais
MÅ«su Vimbox platformas stabilizÄÅ”ana ir viens no uzÅÄmuma galvenajiem projektiem 2019. gadÄ. MÄs ļoti ceram, ka spÄsim noturÄt tempu un vairs neredzÄsim video komunikÄciju galvenajÄs sÅ«dzÄ«bÄs. MÄs saprotam, ka bÅ«tiska daļa no Ŕīm sÅ«dzÄ«bÄm ir saistÄ«tas ar lietotÄju datoru un interneta nobÄ«dÄm, taÄu Ŕī daļa mums ir jÄnosaka un pÄrÄjÄ jÄatrisina. Viss pÄrÄjais ir tehniska problÄma, Ŕķiet, ar to mums vajadzÄtu tikt galÄ.
GalvenÄ grÅ«tÄ«ba ir tÄ, ka mÄs nezinÄm, lÄ«dz kÄdam lÄ«menim patiesÄ«bÄ ir iespÄjams uzlabot kvalitÄti. Å o griestu noskaidroÅ”ana ir galvenais uzdevums. TÄpÄc tika plÄnoti divi eksperimenti:
- salÄ«dziniet video caur Janus ar parasto p2p kaujas apstÄkļos. Å is eksperiments jau ir veikts, nav konstatÄta statistiski nozÄ«mÄ«ga atŔķirÄ«ba starp mÅ«su risinÄjumu un p2p;
- PiegÄdÄsim (dÄrgus) pakalpojumus no uzÅÄmumiem, kas pelna tikai ar video komunikÄcijas risinÄjumiem, un salÄ«dzinÄsim no tiem negatÄ«vo daudzumu ar esoÅ”o.
Å ie divi eksperimenti ļaus mums noteikt sasniedzamu mÄrÄ·i un koncentrÄties uz to.
TurklÄt ir vairÄki uzdevumi, kurus var atrisinÄt regulÄri:
- MÄs veidojam komunikÄcijas kvalitÄtes tehnisko metriku subjektÄ«vu atsauksmju vietÄ;
- MÄs veidojam detalizÄtÄkus sesiju žurnÄlus, lai precÄ«zÄk analizÄtu raduÅ”Äs kļūmes, saprastu, kad un kur tieÅ”i tÄs raduÅ”Äs un kÄdi Ŕķietami nesaistÄ«ti notikumi tajÄ brÄ«dÄ« notika;
- Pirms nodarbÄ«bas sagatavojam automÄtisku savienojuma kvalitÄtes pÄrbaudi, kÄ arÄ« dodam klientam iespÄju manuÄli pÄrbaudÄ«t savienojumu, lai samazinÄtu viÅa aparatÅ«ras un kanÄla radÄ«to negatÄ«vismu;
- izstrÄdÄsim un veiksim vairÄk video sakaru slodzes testu sliktos apstÄkļos, ar mainÄ«gu pakeÅ”u zudumu utt.;
- mÄs mainÄm serveru uzvedÄ«bu problÄmu gadÄ«jumÄ, lai palielinÄtu kļūdu toleranci;
- MÄs brÄ«dinÄsim lietotÄju, ja ar viÅa savienojumu vispÄr kaut kas nav kÄrtÄ«bÄ, kÄ to dara Skype, lai viÅÅ” saprastu, ka problÄma ir viÅa pusÄ.
KopÅ” aprīļa video komunikÄcijas virziens ir kļuvis par pilnvÄrtÄ«gu atseviŔķu projektu Skyeng ietvaros, kas nodarbojas ar savu produktu, nevis tikai Vimbox daļu. Tas nozÄ«mÄ, ka mÄs sÄkam meklÄt cilvÄkus
Un, protams, mÄs turpinÄm aktÄ«vi sazinÄties ar cilvÄkiem un uzÅÄmumiem, kas strÄdÄ ar video komunikÄciju. Ja vÄlies ar mums apmainÄ«ties pieredzÄ, bÅ«sim priecÄ«gi! KomentÄjiet, sazinieties - mÄs atbildÄsim visiem.
Avots: www.habr.com