Paghimo og plataporma sa video sulod sa 90 ka adlaw

Karong tingpamulak nakaplagan namo ang among mga kaugalingon sa malipayon kaayo nga mga kahimtang. Tungod sa pandemya, nahimong klaro nga ang among mga komperensya sa ting-init kinahanglan nga ibalhin online. Ug aron mapahigayon kini sa online nga episyente, ang andam nga mga solusyon sa software dili angay alang kanamo; kinahanglan namon nga isulat ang among kaugalingon. Ug kami adunay tulo ka bulan sa pagbuhat niini.

Klaro nga kulbahinam ang tulo ka bulan. Apan gikan sa gawas dili kini hingpit nga klaro: unsa ang platform sa komperensya sa online? Unsa nga mga bahin ang naglangkob niini? Busa, sa katapusan sa mga komperensya sa DevOops sa ting-init, gipangutana nako ang mga responsable niini nga buluhaton:

  • Nikolay Molchanov - teknikal nga direktor sa JUG Ru Group;
  • Si Vladimir Krasilshchik usa ka pragmatic Java programmer nga nagtrabaho sa backend (makita usab nimo ang iyang mga taho sa among mga komperensya sa Java);
  • Si Artyom Nikonov ang responsable sa tanan namong video streaming.

Pinaagi sa dalan, sa mga komperensya sa tingdagdag-tingtugnaw mogamit kami usa ka gipaayo nga bersyon sa parehas nga plataporma - daghang mga magbabasa sa habra ang mahimong tiggamit niini.

Paghimo og plataporma sa video sulod sa 90 ka adlaw

Ang dako nga litrato

— Unsa ang komposisyon sa grupo?

Nikolay Molchanov: Kami adunay usa ka analista, usa ka tigdesinyo, usa ka tester, tulo ka mga front-end, ug usa ka back-end. Ug, siyempre, usa ka T-shaped nga espesyalista!

— Unsa ang hitsura sa proseso sa kinatibuk-an?

Nikolay: Hangtud sa tunga-tunga sa Marso, wala kami andam alang sa online. Ug kaniadtong Marso 15, ang tibuuk nga online carousel nagsugod sa pagtuyok. Nagtukod kami og daghang mga repository, nagplano, naghisgot sa batakang arkitektura ug gibuhat ang tanan sulod sa tulo ka bulan.

Kini, siyempre, miagi sa mga klasiko nga yugto sa pagplano, arkitektura, pagpili sa bahin, pagboto alang sa mga bahin, palisiya alang sa mga bahin, ilang disenyo, pag-uswag, pagsulay. Ingon usa ka sangputanan, kaniadtong Hunyo 6, gi-roll out namon ang tanan sa produksiyon. TechTrain. Adunay 90 ka adlaw alang sa tanan.

— Natuman ba nato ang atong gisaad?

Nikolay: Tungod kay kami karon nag-apil sa komperensya sa DevOops online, kini nagpasabut nga kini nagtrabaho. Ako personal nga mipasalig sa nag-unang butang: Ako magdala sa mga kustomer og usa ka himan diin sila makahimo og online nga komperensya.

Ang hagit mao kini: hatagi kami usa ka himan diin mahimo namon i-broadcast ang among mga komperensya sa mga naghupot sa tiket.

Ang tanan nga pagplano gibahin sa daghang mga yugto, ug ang tanan nga mga bahin (mga 30 ka global) gibahin sa 4 nga mga kategorya:

  • nga atong buhaton (dili kita mabuhi nga wala sila),
  • nga atong buhaton sa ikaduha,
  • nga dili gyud namo buhaton,
  • ug nga dili gayud namo buhaton.

Gihimo namo ang tanang bahin gikan sa unang duha ka mga kategoriya.

— Nahibal-an ko nga adunay kinatibuk-an nga 600 ka mga isyu sa JIRA ang nahimo. Sa tulo ka bulan, nakahimo ka og 13 ka microservice, ug ako nagduda nga sila gisulat dili lamang sa Java. Migamit ka ug lain-laing mga teknolohiya, aduna kay duha ka Kubernetes clusters sa tulo ka availability zones ug 5 RTMP streams sa Amazon.

Atong tan-awon karon ang matag bahin sa sistema nga gilain.

Pag-streaming

— Magsugod kita sa kung naa na kita usa ka imahe sa video, ug kini gipasa sa pipila nga mga serbisyo. Artyom, isulti kanamo kung giunsa kini nga streaming?

Artyom Nikonov: Ang among kinatibuk-ang laraw ingon niini: imahe gikan sa camera -> among control room -> lokal nga RTMP server -> Amazon -> video player. Dugang detalye misulat mahitungod niini sa Habré niadtong Hunyo.

Sa kinatibuk-an, adunay duha ka global nga mga paagi sa pagbuhat niini: bisan sa hardware o base sa software nga mga solusyon. Gipili namo ang ruta sa software tungod kay mas sayon ​​sa kaso sa mga remote speaker. Dili kanunay posible ang pagdala sa hardware ngadto sa usa ka mamumulong sa laing nasud, apan ang paghatud sa software ngadto sa mamumulong daw mas sayon ​​ug mas kasaligan.

Gikan sa punto sa hardware, kami adunay usa ka piho nga gidaghanon sa mga camera (sa among mga studio ug sa mga hilit nga speaker), usa ka piho nga gidaghanon sa mga hilit nga kontrol sa studio, nga usahay kinahanglan nga ayohon sa ilawom sa lamesa sa panahon sa sibya.

Ang mga signal gikan niini nga mga device mosulod sa mga kompyuter nga adunay mga capture card, input/output card, ug sound card. Didto ang mga signal gisagol ug gitigum sa mga layout:

Paghimo og plataporma sa video sulod sa 90 ka adlaw
Pananglitan sa usa ka layout alang sa 4 nga mga mamumulong

Paghimo og plataporma sa video sulod sa 90 ka adlaw
Pananglitan sa usa ka layout alang sa 4 nga mga mamumulong

Dugang pa, ang padayon nga pagsibya gihatag sa tabang sa tulo ka mga kompyuter: adunay usa ka punoan nga makina ug usa ka pares nga nagtrabaho sa baylo. Ang unang kompyuter nagkolekta sa unang report, ang ikaduha - ang break, ang una - ang sunod nga report, ang ikaduha - ang sunod nga break, ug uban pa. Ug ang nag-unang makina nagsagol sa una sa ikaduha.

Naghimo kini og usa ka matang sa triyanggulo, ug kung ang bisan kinsa niini nga mga node mapakyas, mahimo dayon namon ug wala’y pagkawala sa kalidad nga magpadayon sa paghatud sa sulud sa mga kliyente. Kami adunay ingon nga kahimtang. Atol sa unang semana sa mga komperensya, among giayo ang usa ka makina, gi-on/i-off kini. Daw nalipay ang mga tawo sa atong kalig-on.

Sunod, ang mga sapa gikan sa mga kompyuter moadto sa usa ka lokal nga server, nga adunay duha ka buluhaton: ruta sa mga sapa sa RTMP ug pagrekord sa mga backup. Mao nga kami adunay daghang mga punto sa pagrekord. Ang mga video stream dayon ipadala sa bahin sa among sistema nga gitukod sa mga serbisyo sa Amazon SaaS. Gigamit namo MediaLive:,S3,CloudFront.

Nikolay: Unsay mahitabo didto sa dili pa maabot sa mamiminaw ang video? Kinahanglan nimo kini putlon bisan unsang paagiha, di ba?

Artyom: Among gi-compress ang video sa among bahin ug ipadala kini sa MediaLive. Naglunsad kami og mga transcoder didto. Gi-transcode nila ang mga video sa tinuud nga oras sa daghang mga resolusyon aron ang mga tawo makatan-aw niini sa ilang mga telepono, pinaagi sa dili maayo nga Internet sa nasud, ug uban pa. Unya kini nga mga sapa giputol sa mga tipak, mao kini ang paagi sa pagtrabaho sa protocol HLS. Nagpadala kami usa ka playlist sa frontend nga adunay mga punto sa kini nga mga tipik.

— Gigamit ba namo ang 1080p nga resolusyon?

Artyom: Ang gilapdon sa among video parehas sa 1080p - 1920 pixels, ug ang gitas-on gamay ra, ang litrato mas elongated - adunay mga hinungdan niini.

Magdudula

- Gihubit ni Artyom kung giunsa ang video nasulod sa mga sapa, kung giunsa kini giapod-apod sa lainlaing mga playlist alang sa lainlaing mga resolusyon sa screen, giputol sa mga tipak ug nasulod sa player. Kolya, karon isulti kanako kung unsa kini nga klase nga magdudula, kung giunsa kini nag-ut-ut sa sapa, ngano nga HLS?

Nikolay: Adunay kami usa ka magdudula nga matan-aw sa tanan nga mga tumatan-aw sa komperensya.

Paghimo og plataporma sa video sulod sa 90 ka adlaw

Sa tinuud, kini usa ka wrapper sa palibot sa librarya hls.js, diin gisulat ang daghang uban pang mga magdudula. Apan kinahanglan namon ang labi ka piho nga pag-andar: pag-rewind ug pagmarka sa lugar kung diin ang tawo, kung unsang taho ang iyang gitan-aw karon. Nagkinahanglan usab kami sa among kaugalingon nga mga layout, tanan nga mga lahi sa mga logo ug tanan nga butang nga gitukod uban kanamo. Busa, nakahukom kami sa pagsulat sa among kaugalingong librarya (usa ka wrapper sa HLS) ug i-embed kini sa site.

Kini ang root functionality, mao nga kini gipatuman hapit una. Ug unya ang tanan mitubo sa palibot niini.

Sa tinuud, pinaagi sa pagtugot, ang magdudula makadawat gikan sa backend usa ka playlist nga adunay mga link sa mga chunks nga may kalabotan sa oras ug kalidad, gi-download ang mga kinahanglanon ug gipakita kini sa tiggamit, nga naghimo sa pipila nga "magic" sa dalan.

Paghimo og plataporma sa video sulod sa 90 ka adlaw
Pananglitan sa timeline

- Ang usa ka buton gihimo mismo sa player aron ipakita ang timeline sa tanan nga mga taho...

Nikolay: Oo, nasulbad dayon namo ang problema sa user navigation. Sa tunga-tunga sa Abril, nakahukom kami nga dili namo i-broadcast ang matag usa sa among mga komperensya sa usa ka bulag nga website, apan hiusahon ang tanan sa usa. Aron ang mga tiggamit sa tiket sa Tibuok Pass mahimong gawasnon nga magbalhinbalhin tali sa lainlaing mga komperensya: pareho nga live broadcast ug pagrekord sa mga nangagi.

Ug aron mas dali alang sa mga tiggamit sa pag-navigate sa kasamtangan nga sapa ug pagbalhin sa taliwala sa mga track, nakahukom kami nga maghimo usa ka buton nga "Tibuok nga broadcast" ug pinahigda nga mga kard sa report alang sa pagbalhin tali sa mga track ug mga taho. Adunay kontrol sa keyboard.

— Aduna bay bisan unsang teknikal nga kalisud niini?

Nikolay: Adunay sila usa ka scroll bar diin gimarkahan ang mga punto sa pagsugod sa lainlaing mga taho.

— Sa katapusan, gipatuman ba nimo kini nga mga marka sa scroll bar sa wala pa gibuhat sa YouTube ang parehas nga butang?

Artyom: Naa nila kini sa beta kaniadto. Ingon og kini usa ka medyo komplikado nga bahin tungod kay ilang gisulayan kini nga bahin sa mga tiggamit sa miaging tuig. Ug karon niabot na sa sale.

Nikolay: Apan sa tinuud nakuha namon kini sa pagbaligya nga mas paspas. Sa tinuud, luyo niining yano nga bahin adunay daghang kantidad sa backend, frontend, kalkulasyon ug matematika sa sulod sa magdudula.

Frontend

— Atong mahibal-an kung giunsa kini nga sulud nga among gipakita (speech card, mga mamumulong, website, iskedyul) nakaabut sa unahan?

Vladimir Krasilshchik: Kami adunay daghang mga internal nga sistema sa IT. Adunay usa ka sistema diin ang tanan nga mga taho ug ang tanan nga mga mamumulong gisulod. Adunay usa ka proseso diin ang usa ka mamumulong moapil sa usa ka komperensya. Ang mamumulong nagsumite sa usa ka aplikasyon, nakuha kini sa sistema, unya adunay usa ka piho nga linya sa tubo nga kung diin gihimo ang taho.

Paghimo og plataporma sa video sulod sa 90 ka adlaw
Ingon niini ang pagtan-aw sa mamumulong sa pipeline

Kini nga sistema mao ang atong internal nga kalamboan.

Sunod, kinahanglan nimo nga maghimo usa ka iskedyul gikan sa indibidwal nga mga taho. Sama sa imong nahibal-an, kini usa ka lisud nga problema sa NP, apan bisan unsang paagi masulbad namon kini. Aron mahimo kini, maglunsad kami og laing component nga makamugna og iskedyul ug i-upload kini sa third-party cloud service Contentful. Didto, ang tanan morag usa ka lamesa diin adunay mga adlaw sa komperensya, sa mga adlaw adunay mga time slot, ug sa mga slot adunay mga taho, break o sponsorship nga mga kalihokan. Mao nga ang sulud nga among nakita nahimutang sa usa ka serbisyo sa ikatulo nga partido. Ug ang tahas mao ang paghatud niini sa site.

Ingon og ang site usa ra ka panid nga adunay usa ka magdudula, ug wala’y komplikado dinhi. Gawas nga dili. Ang backend sa luyo niini nga panid moadto sa Contentful, makuha ang eskedyul gikan didto, makamugna og pipila ka mga butang ug ipadala kini sa frontend. Gamit ang koneksyon sa websocket, nga gihimo sa matag kliyente sa among plataporma, nagpadala kami kaniya og update sa iskedyul gikan sa backend hangtod sa frontend.

Tinuod nga kaso: ang mamumulong nagbag-o sa trabaho sa panahon mismo sa komperensya. Kinahanglan namong ilisan ang iyang amo nga company badge. Giunsa kini mahitabo gikan sa backend? Ang usa ka update gipadala sa tanan nga mga kliyente pinaagi sa websocket, ug dayon ang frontend mismo ang nag-redraw sa timeline. Kining tanan mahitabo nga walay hunong. Ang kombinasyon sa serbisyo sa panganod ug ubay-ubay sa among mga sangkap naghatag kanamo ug higayon sa paghimo niining tanan nga sulud ug ihatag kini sa atubangan.

Nikolay: Mahinungdanon nga ipatin-aw dinhi nga ang among site dili usa ka klasiko nga aplikasyon sa SPA. Kini usa ka layout-based, gihubad nga website ug usa ka SPA. Gitan-aw gyud sa Google kini nga site ingon gihubad nga HTML. Maayo kini alang sa SEO ug alang sa paghatud sa sulud sa tiggamit. Wala kini maghulat sa 1,5 megabytes sa JavaScript nga ma-load sa dili pa makita ang panid, makita dayon niini ang na-render nga panid, ug mabati nimo kini sa matag higayon nga imong ibalhin ang taho. Ang tanan mahitabo sa tunga sa segundo, tungod kay ang sulud andam na ug gibutang sa husto nga lugar.

— Magdrowing kita ug linya ubos sa tanan sa ibabaw pinaagi sa paglista sa mga teknolohiya. Si Tyoma miingon nga kami adunay 5 ka Amazon stream, ug kami naghatod ug video ug tingog didto. Adunay kami mga bash script didto, gigamit namon kini sa paglansad ug pag-configure ...

Artyom: Nahitabo kini pinaagi sa AWS API, adunay daghan pang mga teknikal nga serbisyo sa kilid didto. Gibahin namo among mga responsibilities para ihatud nako CloudFront, ug ang front-end ug back-end developers nagkuha niini gikan didto. Kita adunay usa ka gidaghanon sa atong kaugalingon nga mga bindings aron sa pagpayano sa layout sa sulod, nga atong gihimo sa 4K, ug uban pa. Tungod kay higpit kaayo ang mga deadline, halos tanan namong gihimo sa AWS.

— Unya kining tanan moadto sa player gamit ang backend system. Naa mi TypeScript, React, Next.JS sa among player. Ug sa backend kami adunay daghang mga serbisyo sa C #, Java, Spring Boot ug Node.js. Kining tanan gi-deploy gamit ang Kubernetes gamit ang Yandex.Cloud infrastructure.

Gusto usab nako nga timan-an nga kung kinahanglan nako nga masinati ang plataporma, nahimo’g dali: ang tanan nga mga repositoryo naa sa GitLab, ang tanan maayo nga ngalan, gisulat ang mga pagsulay, adunay dokumentasyon. Sa ato pa, bisan sa emergency mode, giatiman nila ang ingon nga mga butang.

Mga Limitasyon sa Negosyo ug Analytics

— Gipunting namon ang 10 nga tiggamit base sa mga kinahanglanon sa negosyo. Panahon na aron hisgutan ang mga pagdili sa negosyo nga naa namo. Kinahanglan namon nga masiguro ang usa ka taas nga karga sa trabaho, siguruha ang pagsunod sa balaod sa pagpreserba sa personal nga datos. Ug unsa pa?

Nikolay: Sa sinugdan, nagsugod kami sa mga kinahanglanon sa video. Ang labing hinungdanon nga butang mao ang pag-apod-apod sa pagtipig sa video sa tibuuk kalibutan alang sa paspas nga pagpadala sa kliyente. Ang uban naglakip sa 1080p nga resolusyon, ingon man usab sa pag-rewind, nga daghan sa uban wala ipatuman sa live mode. Sa ulahi among gidugang ang abilidad nga makapahimo sa 2x nga tulin, uban sa tabang niini mahimo nimong "makaapas" sa live ug magpadayon sa pagtan-aw sa komperensya sa tinuud nga oras. Ug sa kadugayan, nagpakita ang pag-andar sa pagmarka sa timeline. Dugang pa, kinahanglan kami nga dili matugoton sa sayup ug makasukol sa karga sa 10 ka koneksyon. Gikan sa backend nga punto sa panglantaw, kini gibana-bana nga 000 ka koneksyon nga gipadaghan sa 10 nga mga hangyo alang sa matag panid nga pag-refresh. Ug kini kay 000 RPS/sec. Medyo sa.

— Aduna bay laing mga kinahanglanon alang sa usa ka “virtual exhibition” uban sa online stands of partners?

Nikolay: Oo, kini kinahanglan nga buhaton sa madali ug sa tanan. Kami adunay hangtod sa 10 ka kauban nga mga kompanya alang sa matag komperensya, ug silang tanan kinahanglan makompleto sa usa o duha ka semana. Bisan pa, ang ilang sulud lahi gamay sa pormat. Apan usa ka piho nga template nga makina ang gihimo nga nag-assemble niini nga mga panid sa langaw, nga halos wala’y dugang nga pag-apil sa pag-uswag.

— Adunay usab mga kinahanglanon alang sa pag-analisa sa mga pagtan-aw sa tinuud nga oras ug estadistika. Nahibal-an ko nga gigamit namon ang Prometheus alang niini, apan sultihi kami sa mas detalyado: unsa nga mga kinahanglanon ang among nahimamat alang sa analytics, ug giunsa kini gipatuman?

Nikolay: Sa sinugdan, kami adunay mga kinahanglanon sa pagpamaligya alang sa pagkolekta alang sa pagsulay sa A/B ug pagkolekta sa kasayuran aron masabtan kung giunsa ang husto nga paghatud sa labing kaayo nga sulud sa kliyente sa umaabot. Adunay usab mga kinahanglanon alang sa pipila nga pag-analisa sa mga kalihokan sa kauban ug ang pag-analisar nga imong nakita (bisitaha ang counter). Ang tanan nga impormasyon nakolekta sa tinuod nga panahon.

Mahatag namo kini nga impormasyon sa aggregated nga porma bisan sa mga mamumulong: pila ka tawo ang nagtan-aw kanimo sa usa ka punto sa panahon. Sa samang higayon, aron matuman ang Federal Law 152, ang imong personal nga account ug personal nga data dili masubay sa bisan unsang paagi.

Ang plataporma aduna nay mga himan sa pagpamaligya ug ang among mga sukdanan sa pagsukod sa kalihokan sa tiggamit sa tinuod nga panahon (kinsa ang nagtan-aw kung unsa ang ikaduha sa report) aron makahimo og mga graph sa pagtambong sa mga taho. Pinasukad sa kini nga datos, gihimo ang panukiduki nga maghimo sa mga sunod nga komperensya nga labi ka maayo.

Panglimbong

— Aduna ba kitay mga mekanismo batok sa pagpanglimbong?

Nikolay: Tungod sa higpit nga time frame gikan sa usa ka punto sa negosyo, ang buluhaton wala una gitakda aron mapugngan dayon ang dili kinahanglan nga mga koneksyon. Kung ang duha ka tiggamit naka-log in ubos sa parehas nga account, mahimo nilang tan-awon ang sulud. Apan nahibal-an namon kung pila ang dungan nga pagtan-aw gikan sa usa ka account. Ug gidili namo ang ubay-ubay nga malisyosong mga malapason.

Vladimir: Sa kredito niini, usa sa mga gidili nga tiggamit nakasabot nganong nahitabo kini. Miabot siya, nangayo og pasaylo ug misaad nga mopalit og tiket.

— Aron mahitabo kining tanan, kinahanglan nimo nga hingpit nga masubay ang tanan nga mga tiggamit gikan sa pagsulod hangtod sa paggawas, nahibal-an kanunay kung unsa ang ilang gibuhat. Giunsa kini nga sistema molihok?

Vladimir: Gusto nako nga hisgutan ang bahin sa analytics ug estadistika, nga among analisahon alang sa kalampusan sa taho o mahimo dayon ihatag sa mga kauban. Ang tanan nga mga kliyente konektado pinaagi sa usa ka koneksyon sa websocket sa usa ka piho nga backend cluster. Nagbarog kini didto hazelcast. Ang matag kliyente sa matag yugto sa panahon nagpadala sa iyang gibuhat ug unsa nga track ang iyang gitan-aw. Unya kini nga impormasyon giipon gamit ang paspas nga mga trabaho sa Hazelcast ug gipadala balik sa tanan nga nagtan-aw niini nga mga track. Nakita namo sa suok kung pila ka tawo karon ang kauban namo.

Paghimo og plataporma sa video sulod sa 90 ka adlaw

Ang sama nga impormasyon gitipigan sa Mongo ug moadto sa among data lake, diin kami adunay oportunidad sa paghimo og mas makapaikag nga graph. Ang pangutana mitungha: pila ka mga talagsaon nga tiggamit ang nagtan-aw niini nga taho? Adto mi sa Mga postgres, adunay mga ping sa tanan nga mga tawo nga miabut pinaagi sa id niini nga taho. Among gikolekta, gihugpong ang mga talagsaon, ug karon nasabtan na namo.

Nikolay: Apan sa samang higayon, nakadawat usab kami og real-time nga datos gikan sa Prometheus. Gitakda kini batok sa tanang serbisyo sa Kubernetes, batok sa Kubernetes mismo. Gikolekta niini ang tanan, ug sa Grafana makahimo kami sa bisan unsang mga graph sa tinuud nga oras.

Vladimir: Sa usa ka bahin, among gi-download kini alang sa dugang nga pagproseso sa OLAP. Ug alang sa OLTP, ang aplikasyon nag-download sa tibuuk nga butang sa Prometheus, Grafana ug ang mga graph bisan nag-converge!

- Mao kini ang kaso kung ang mga graph nagtagbo.

Dinamikong mga Kausaban

— Sultihi kami kung giunsa ang mga dinamikong pagbag-o gilusad: kung ang taho gikansela 6 minuto sa wala pa magsugod, unsa ang kadena sa mga aksyon? Unsang pipeline ang nagtrabaho?

Vladimir: Ang pipeline kay conditional kaayo. Adunay daghang mga posibilidad. Ang una mao nga ang programa sa paghimo sa iskedyul nagtrabaho ug giusab ang iskedyul. Ang giusab nga iskedyul gi-upload sa Contentful. Pagkahuman nasabtan sa backend nga adunay mga pagbag-o alang sa kini nga komperensya sa Contentful, gikuha kini ug gitukod pag-usab. Ang tanan gikolekta ug gipadala pinaagi sa websocket.

Ang ikaduha nga posibilidad, kung ang tanan mahitabo sa usa ka paspas nga tulin: ang editor mano-mano nga nagbag-o sa kasayuran sa Contentful (link sa Telegram, presentasyon sa mamumulong, ug uban pa) ug ang parehas nga lohika molihok sama sa una nga higayon.

Nikolay: Ang tanan mahitabo nga walay pag-refresh sa panid. Ang tanan nga mga pagbag-o mahitabo nga hingpit nga hapsay alang sa kliyente. Ang sama nga moadto sa pagbalhin sa mga taho. Pag-abot sa panahon, mausab ang report ug interface.

Vladimir: Usab, adunay mga cutoff sa oras alang sa pagsugod sa mga taho sa timeline. Sa sinugdanan pa lang walay bisan unsa. Ug kung imong i-hover ang imong mouse sa pula nga stripe, unya sa usa ka punto, salamat sa direktor sa broadcast, ang mga cutoff makita. Gitakda sa direktor ang husto nga pagsugod sa sibya, gikuha sa backend kini nga pagbag-o, gikalkula ang oras sa pagsugod ug pagtapos sa mga presentasyon sa tibuuk nga track sumala sa iskedyul sa komperensya, gipadala kini sa among mga kliyente, ug ang magdudula nagkuha mga cutoff. Karon ang user dali nga maka-navigate sa sinugdanan ug katapusan sa report. Kini usa ka estrikto nga kinahanglanon sa negosyo, sayon ​​​​kaayo ug mapuslanon. Dili ka mag-usik ug oras sa pagpangita sa aktuwal nga oras sa pagsugod alang sa taho. Ug kung maghimo kami usa ka preview, kini mahimong nindot kaayo.

Deployment

— Gusto kong mangutana bahin sa pag-deploy. Si Kolya ug ang team migugol ug daghang panahon sa sinugdanan sa pag-set up sa tibuok nga imprastraktura diin ang tanan nabuksan alang kanamo. Sultihi ko, sa unsa kining tanan?

Nikolay: Gikan sa teknikal nga punto sa pagtan-aw, kami sa sinugdan adunay usa ka kinahanglanon alang sa produkto nga mahimong abstract kutob sa mahimo gikan sa bisan unsang vendor. Pag-adto sa AWS aron maghimo mga script sa Terraform nga espesipiko gikan sa AWS, o espesipiko gikan sa Yandex, o gikan sa Azure, ug uban pa. wala gyud mohaom. Kinahanglan kaming mobalhin sa usa ka dapit sa usa ka punto.

Sa una nga tulo ka semana kanunay kaming nangita usa ka paagi aron mahimo kini nga labi ka maayo. Ingon usa ka sangputanan, nakahinapos kami nga ang Kubernetes sa kini nga kaso mao ang among tanan, tungod kay gitugotan kami nga maghimo mga serbisyo nga awtomatiko nga pag-scaling, pag-auto-rollout, ug pagkuha sa hapit tanan nga mga serbisyo gikan sa kahon. Siyempre, ang tanan nga mga serbisyo kinahanglan nga bansayon ​​​​sa pagtrabaho kauban ang Kubernetes, Docker, ug ang koponan kinahanglan usab nga magkat-on.

Naa mi duha ka cluster. Pagsulay ug produksyon. Sila hingpit nga managsama sa mga termino sa hardware ug mga setting. Gipatuman namo ang imprastraktura isip code. Awtomatikong gilukot ang tanang serbisyo ngadto sa tulo ka palibot gikan sa mga feature branch, master branch, test branch, ug GitLab gamit ang automatic pipeline. Kini mao ang labing dako nga integrated ngadto sa GitLab, maximally integrated uban sa Elastic, Prometheus.

Nakuha namon ang oportunidad nga dali (alang sa backend sa sulod sa 10 minuto, alang sa frontend sa sulod sa 5 minuto) ilunsad ang mga pagbag-o sa bisan unsang palibot nga adunay tanan nga mga pagsulay, mga panagsama, pagpadagan sa mga pagsulay sa pag-andar, mga pagsulay sa panagsama sa palibot, ug pagsulay usab sa mga pagsulay sa pagkarga sa usa ka palibot sa pagsulay nga hapit parehas nga butang nga gusto namon makuha sa produksiyon.

Mahitungod sa mga pagsulay

— Gisulayan nimo ang halos tanan, lisud tuohan kung giunsa nimo gisulat ang tanan. Mahimo ba nimo isulti kanamo ang bahin sa mga pagsulay sa backend: kung pila ang nasakup sa tanan, unsang mga pagsulay?

Vladimir: Duha ka matang sa mga pagsulay ang gisulat. Ang una mao ang mga pagsulay sa sangkap. Lift level tests sa tibuok spring application ug base in Mga sudlanan sa pagsulay. Kini usa ka pagsulay sa labing taas nga lebel sa mga senaryo sa negosyo. Dili ko mosulay sa mga gimbuhaton. Gisulayan lang namo ang pipila ka dagkong butang. Pananglitan, diha mismo sa pagsulay, ang proseso sa pag-log in sa usa ka user gisundog, ang hangyo sa user alang sa mga tiket sa kung asa siya makaadto, ug usa ka hangyo alang sa access sa pagtan-aw sa sapa. Klaro kaayo nga mga senaryo sa tiggamit.

Gibana-bana nga parehas nga butang ang gipatuman sa gitawag nga mga pagsulay sa panagsama, nga tinuud nga nagdagan sa palibot. Sa tinuud, kung ang sunod nga pag-deploy sa produksiyon gilukot, ang tinuud nga sukaranan nga mga senaryo nagdagan usab sa produksiyon. Ang sama nga pag-login, paghangyo og mga tiket, paghangyo og access sa CloudFront, pagsusi nga ang sapa tinuod nga nagkonektar sa akong mga permiso, pagsusi sa interface sa direktor.

Sa pagkakaron aduna koy mga 70 ka component nga mga pagsulay ug mga 40 ka mga pagsulay sa panagsama nga sakay. Ang coverage hapit kaayo sa 95%. Kini alang sa mga sangkap, dili kaayo alang sa mga panagsama, wala’y kinahanglan. Sa pagkonsiderar nga ang proyekto naglakip sa tanan nga matang sa code generation, kini usa ka maayo kaayo nga timailhan. Walay laing paagi sa pagbuhat sa among gibuhat sulod sa tulo ka bulan. Tungod kay kung gisulayan namon ang mano-mano, naghatag mga bahin sa among tester, ug makit-an niya ang mga bug ug ibalik kini kanamo alang sa pag-ayo, nan kini nga pag-ikot nga pagbiyahe aron ma-debug ang code mahimong taas kaayo, ug dili kami makaabut sa bisan unsang mga deadline.

Nikolay: Sa naandan, aron mahimo ang usa ka pagbag-o sa tibuuk nga plataporma kung gibag-o ang usa ka function, kinahanglan nimo nga molingkod ug magdukdok bisan diin sulod sa duha ka adlaw.

Vladimir: Busa, kini usa ka dako nga kalampusan nga kung akong gibanabana ang usa ka bahin, giingon ko nga kinahanglan nako ang 4 ka adlaw alang sa duha ka yano nga mga pen ug 1 nga websocket, gitugotan kini ni Kolya. Naanad na siya sa kamatuoran nga kining 4 ka adlaw naglakip sa 2 ka matang sa mga pagsulay, ug unya, lagmit, kini molihok.

Nikolay: Aduna usab akoy 140 ka mga pagsulay nga gisulat: component + functional, nga nagbuhat sa samang butang. Ang tanan nga parehas nga mga senaryo gisulayan sa produksiyon, sa pagsulay, ug sa produksiyon. Bag-o lang usab namo nga gidugang ang functional basic nga mga pagsulay sa UI. Niining paagiha gitabonan namon ang labing sukaranan nga pagpaandar nga mahimong mabungkag.

Vladimir: Siyempre, angay nga maghisgot bahin sa mga pagsulay sa pagkarga. Gikinahanglan nga sulayan ang plataporma sa ilawom sa usa ka karga nga hapit sa tinuud aron masabtan kung unsa ang tanan, kung unsa ang nahitabo sa Rabbit, kung unsa ang nahitabo sa mga JVM, kung unsa kadaghan ang kinahanglan nga memorya.

— Dili ko sigurado kung gisulayan ba namon ang bisan unsang bahin sa sapa, apan nahinumdom ko nga adunay mga problema sa mga transcoder sa dihang nagkita kami. Nasulayan na ba nato ang mga sapa?

Artyom: Gisulayan pag-usab. Pag-organisar sa mga miting. Sa proseso sa pag-organisar sa mga meetup, adunay gibana-bana nga 2300 ka mga tiket sa JIRA. Mga generic lang kini nga mga butang nga gihimo sa mga tawo aron magkita. Gidala namo ang mga bahin sa plataporma ngadto sa usa ka separadong panid alang sa mga panagkita, nga gidumala ni Kirill Tolkachev (talkkv).

Sa tinuod lang, walay dagkong mga problema. Sa literal sa pipila ka mga higayon nga nasakpan namo ang pag-cache sa mga bug sa CloudFront, dali ra namo kining nasulbad - gi-reconfigure ra namo ang mga polisiya. Adunay labi ka daghang mga bug sa mga tawo, sa mga sistema sa streaming sa site.

Atol sa mga komperensya, kinahanglan kong magsulat og daghang mga eksporter aron masakop ang daghang kagamitan ug serbisyo. Sa pipila ka mga dapit kinahanglan kong maghimo ug akong kaugalingong mga bisikleta para lang sa sukdanan. Ang kalibutan sa AV (audio-video) nga hardware dili kaayo rosy - ikaw adunay usa ka matang sa "API" sa mga kagamitan nga dili nimo maimpluwensyahan. Ug kini layo sa usa ka kamatuoran nga imong makuha ang impormasyon nga imong gikinahanglan. Ang mga vendor sa hardware hinay kaayo, ug halos imposible nga makuha ang imong gusto gikan kanila. Sa kinatibuk-an adunay labaw pa sa 100 ka piraso sa hardware, dili nila ibalik ang imong gikinahanglan, ug gisulat nimo ang mga katingad-an ug sobra nga mga exporter, salamat nga mahimo nimo labing menos sa usa ka paagi sa pag-debug sa sistema.

Kagamitan

— Nahinumdom ko kung giunsa sa wala pa magsugod ang mga komperensya nga partially mipalit kami dugang nga kagamitan.

Artyom: Mipalit mig mga kompiyuter, laptop, ug mga battery pack. Sa pagkakaron pwede na ta mabuhi nga walay kuryente sulod sa 40 minutos. Sa Hunyo adunay grabe nga mga thunderstorms sa St. Petersburg - mao nga kami adunay ingon nga blackout. Sa parehas nga oras, daghang mga provider ang mianhi kanamo nga adunay mga optical link gikan sa lainlaing mga punto. Kini mao ang tinuod nga 40 minutos sa pagtukod downtime, sa panahon nga kita adunay mga suga, tingog, camera, ug uban pa nga nagtrabaho.

— Kami adunay susama nga istorya sa Internet. Sa opisina diin nahimutang ang among mga estudyo, kami nagguyod sa usa ka mabangis nga pukot taliwala sa mga salog.

Artyom: Adunay kami 20 Gbit nga fiber taliwala sa mga salog. Dugang pa sa mga salog, sa usa ka lugar adunay mga optika, sa usa ka lugar nga wala’y mga optika, apan sa gihapon adunay gamay nga mga kanal kaysa sa gigabit - gipadagan namon ang video sa kanila taliwala sa mga track sa komperensya. Sa kinatibuk-an, sayon ​​​​kaayo nga magtrabaho sa imong kaugalingon nga imprastraktura; panagsa ra nimo kini mahimo sa mga offline nga komperensya sa mga site.

— Sa wala pa ako nagtrabaho sa JUG Ru Group, nakita nako kung giunsa ang mga kwarto sa hardware sa mga offline nga komperensya gipahimutang sa tibuok gabii, diin adunay usa ka dako nga monitor nga adunay tanan nga mga sukatan nga imong gitukod sa Grafana. Karon adunay usab usa ka lawak sa punoang buhatan diin naglingkod ang development team, nga sa panahon sa komperensya nag-ayo sa pipila ka mga bug ug nagpalambo sa mga bahin. Sa parehas nga oras, adunay usa ka sistema sa pag-monitor nga gipakita sa usa ka dako nga screen. Si Artyom, Kolya ug uban pang mga lalaki naglingkod ug siguruha nga kini tanan dili mahulog ug molihok nga matahum.

Mga kakuryuso ug mga problema

— Maayo ang imong gisulti bahin sa kamatuoran nga kami adunay streaming sa Amazon, adunay usa ka magdudula nga adunay web, ang tanan gisulat sa lainlaing mga sinultian nga programming, gihatag ang pagtugot sa sayup ug uban pang mga kinahanglanon sa negosyo, lakip ang usa ka personal nga account nga gisuportahan alang sa mga ligal nga entidad ug mga indibidwal, ug mahimo natong i-integrate ang usa ka tawo nga naggamit sa OAuth 2.0, adunay anti-fraud, pag-block sa user. Mahimo namon nga ilunsad ang mga pagbag-o nga dinamiko tungod kay nahimo namon kini nga maayo, ug kini tanan gisulayan.

Interesado ako nga mahibal-an kung unsang mga katingad-an ang nalambigit sa pagsugod sa usa ka butang. Aduna bay bisan unsa nga katingad-an nga mga sitwasyon sa diha nga ikaw nagpalambo sa usa ka backend, frontend, usa ka butang nga buang ug wala nimo masabtan kung unsa ang buhaton niini?

Vladimir: Sa akong tan-aw, nahitabo lang kini sa miaging tulo ka bulan. Kada adlaw. Sama sa imong nakita, ang tanan nakong buhok gibira.

Paghimo og plataporma sa video sulod sa 90 ka adlaw
Vladimir Krasilshchik human sa 3 ka bulan, sa diha nga ang usa ka matang sa dula nahimo ug walay usa nga nakasabut unsa ang buhaton niini

Kada adlaw adunay usa ka butang nga sama niini, kung adunay usa ka higayon nga gikuha nimo kini ug giputol ang imong buhok, o nahibal-an nga wala’y lain, ug ikaw ra ang makahimo niini. Ang among una nga dako nga kalihokan mao ang TechTrain. Niadtong Hunyo 6 sa alas 2 sa buntag wala pa namo gilusad ang palibot sa produksiyon, gilusad kini ni Kolya. Ug ang personal nga account wala molihok isip usa ka server sa pagtugot gamit ang OAuth2.0. Gihimo namo kini nga OAuth2.0 provider aron makonektar ang plataporma niini. Nagtrabaho ko tingali mga 18 ka oras nga diretso, nagtan-aw ako sa kompyuter ug wala’y nakita, wala nako kasabot kung ngano nga wala kini molihok, ug gitan-aw ni Kolya ang akong code sa layo, nangita usa ka bug sa configuration sa Spring , nakakaplag niini, ug ang LC nagtrabaho, ug sa produksyon usab.

Nikolay: Ug usa ka oras sa wala pa ang TechTrain ang pagpagawas nahitabo.

Daghang mga bituon ang gilinya dinhi. Kami swerte kaayo tungod kay kami adunay usa ka super team, ug ang tanan nadasig sa ideya sa pagbuhat niini online. Sa tanan niining tulo ka bulan nadasig kami sa kamatuoran nga kami "naghimo sa YouTube." Wala nako tugoti ang akong kaugalingon sa paggisi sa akong buhok, apan gisultihan ang tanan nga ang tanan mahuman, tungod kay sa pagkatinuod, ang tanan dugay nang gikalkula.

Mahitungod sa performance

— Mahimo ba nimo akong isulti kung pila ang naa sa site sa usa ka track? Aduna bay mga isyu sa performance?

Nikolay: Wala’y mga problema sa pasundayag, sama sa giingon na namon. Ang kinatas-ang ihap sa mga tawo nga mitambong sa usa ka taho mao ang 1300 ka tawo, kini sa Heisenbug.

— Aduna bay mga problema sa lokal nga pagtan-aw? Ug posible ba nga adunay usa ka teknikal nga paghulagway nga adunay mga diagram kung giunsa kini tanan molihok?

Nikolay: Maghimo kami usa ka artikulo bahin niini sa ulahi.

Mahimo nimong i-debug ang mga sapa sa lokal. Sa dihang nagsugod na ang mga komperensya, nahimong mas sayon, tungod kay ang mga sapa sa produksiyon nagpakita nga mahimo natong tan-awon sa tanang panahon.

Vladimir: Sa akong nasabtan, ang mga nag-develop sa atubangan nagtrabaho sa lokal uban ang mga pagbiaybiay, ug unya, tungod kay ang oras sa pag-roll out sa mga dev sa atubangan mubo ra usab (5 minuto), wala’y mga problema sa pagsusi kung unsa ang nahitabo sa mga sertipiko.

- Ang tanan gisulayan ug gi-debug, bisan sa lokal. Nagpasabut kini nga magsulat kami usa ka artikulo nga adunay tanan nga mga teknikal nga bahin, ipakita kanimo, isulti kanimo ang tanan nga adunay mga diagram, kung giunsa kini.

Vladimir: Mahimo nimong kuhaon ug balikon kini.

- Sa 3 ka bulan.

Ang resulta

— Ang tanan nga gihulagway nga magkauban morag cool, kung gikonsiderar nga kini gihimo sa usa ka gamay nga grupo sa tulo ka bulan.

Nikolay: Ang usa ka dako nga team dili mobuhat niini. Apan ang usa ka gamay nga grupo sa mga tawo nga suod ug maayo nga nakigsulti sa usag usa ug mahimo’g magkauyon. Wala sila'y bisan unsang mga panagsumpaki, ang arkitektura giimbento sa duha ka adlaw, natapos ug wala gyud mausab. Adunay usa ka higpit nga pagpadali sa umaabot nga mga kinahanglanon sa negosyo sa mga termino sa pagtapok sa mga hangyo ug pagbag-o sa bahin.

— Unsa ang naa sa imong listahan sa dugang nga mga buluhaton sa dihang ang mga komperensya sa ting-init nahitabo na?

Nikolay: Pananglitan, ang mga kredito. Nagkamang nga mga linya sa video, mga pop-up sa pipila ka mga dapit sa video depende sa sulod nga gipakita. Pananglitan, ang mamumulong gusto nga mangutana sa mamiminaw, ug usa ka boto ang mogawas sa screen, nga mobalik sa likod base sa mga resulta sa pagboto ngadto sa mamumulong mismo. Ang pila ka klase sa sosyal nga kalihokan sa porma sa mga gusto, kasingkasing, mga rating sa taho sa panahon sa presentasyon mismo, aron mapuno nimo ang feedback sa husto nga higayon nga dili mabalda sa ulahi sa mga porma sa feedback. Sa sinugdan sama niini.

Ug pagdugang usab sa tibuuk nga plataporma, gawas sa streaming ug komperensya, usa usab ka kahimtang sa post-conference. Kini ang mga playlists (lakip ang mga gihugpong sa mga tiggamit), posible nga sulod gikan sa uban nga nangaging mga komperensya, gihiusa, gimarkahan, ma-access sa tiggamit, ug magamit usab alang sa pagtan-aw sa among website (live.jugru.org).

— Guys, salamat kaayo sa inyong mga tubag!

Kung taliwala sa mga magbabasa adunay mga mitambong sa among mga komperensya sa ting-init, palihug ipaambit ang imong mga impresyon sa magdudula ug sibya. Unsa ang kombenyente, unsa ang nakapasuko kanimo, unsa ang gusto nimo nga makita sa umaabot?

Kung interesado ka sa plataporma ug gusto nimo nga makita kini "sa gubat", gigamit namon kini pag-usab sa among mga komperensya sa tingdagdag-tingtugnaw. Adunay usa ka bug-os nga han-ay niini, mao nga adunay hapit usa nga angay kanimo.

Source: www.habr.com

Idugang sa usa ka comment