Di 90 rojan de platformek vîdyoyê pêşve bibin

Di vê biharê de me xwe di nav şert û mercên pir xweş de dît. Ji ber pandemiyê, eşkere bû ku konferansên me yên havînê hewce ne ku serhêl werin veguheztin. Û ji bo ku em wan bi serhêl bi bandor bimeşînin, çareseriyên nermalava amade ji bo me ne guncan bûn; hewce bû ku me ya xwe binivîsanda. Û me sê meh mabû ku em vê bikin.

Eşkere ye ku ev sê mehek balkêş e. Lê ji derve ve ew bi tevahî ne diyar e: platformek konferansa serhêl çi ye? Ji kîjan beşan pêk tê? Ji ber vê yekê, di dawiya konfêransên DevOops ên havînê de, min ji kesên ku ji vê peywirê berpirsiyar bûn pirsî:

  • Nikolay Molchanov - rêveberê teknîkî yê Koma JUG Ru;
  • Vladimir Krasilshchik bernamesazek ​​Java-ya pragmatîk e ku li ser piştê dixebite (hûn dikarin di konferansên me yên Java-yê de raporên wî jî bibînin);
  • Artyom Nikonov ji hemî weşana vîdyoya me berpirsiyar e.

Bi awayê, di konfêransên payizê de em ê guhertoyek baştir a heman platformê bikar bînin - ji ber vê yekê gelek xwendevanên Habra dê hîn jî bikarhênerên wê bin.

Di 90 rojan de platformek vîdyoyê pêşve bibin

Wêneyê mezin

- Pêkhateya tîmê çawa bû?

Nikolay Molchanov: Me analîstek, sêwiranerek, ceribandinek, sê pêş-endam, û paşînek me hene. Û, bê guman, pisporek T-shaped!

- Pêvajo bi giştî çawa bû?

Nikolay: Heya nîvê Adarê, me qet tiştek ji bo serhêl amade nebû. Û di 15ê Adarê de, tevahiya karûselê serhêl dest pê kir. Me gelek repositories saz kir, plan kirin, li ser mîmariya bingehîn nîqaş kirin û di sê mehan de her tişt kir.

Bê guman, ev qonaxên klasîk ên plansaziyê, mîmarî, hilbijartina taybetmendiyan, dengdana ji bo wan taybetmendiyan, siyaseta wan taybetmendiyan, sêwirana wan, pêşkeftin, ceribandina wan derbas bû. Di encamê de, di 6ê Hezîranê de, me her tişt derxist ber hilberînê. TechTrain. Ji bo her tiştî 90 roj hebûn.

- Me karî tişta ku me pê girêdabû pêk bîne?

Nikolay: Ji ber ku em naha beşdarî konferansa DevOops serhêl dibin, ev tê vê wateyê ku ew xebitî. Ez bi xwe bi ya sereke ve girêdayî me: Ez ê xerîdar amûrek bibînim ku ew dikarin konferansek serhêl çêbikin.

Pirsgirêk ev bû: amûrek ku em bikarin konferansên xwe ji xwediyên bilêtan re biweşînin bidin me.

Hemî plansazkirin di çend qonaxan de hate dabeş kirin, û hemî taybetmendiyên (nêzîkî 30 gerdûnî) li 4 kategoriyan hatin dabeş kirin:

  • ya ku em ê bê guman bikin (em nikarin bêyî wan bijîn),
  • ya ku em ê duyemîn bikin,
  • ya ku em ê tu carî nekin,
  • û ya ku em ê tu carî nekin.

Me hemî taybetmendî ji her du kategoriyên pêşîn çêkir.

— Ez dizanim ku bi giştî 600 hejmarên JIRA hatine çêkirin. Di sê mehan de, we 13 mîkroxizmet çêkir, û ez guman dikim ku ew ne tenê di Java de hatine nivîsandin. We teknolojiyên cihêreng bikar anîn, we du komikên Kubernetes li sê deverên berdestbûnê û 5 herikên RTMP li Amazon hene.

Ka em niha li her pêkhateyek pergalê ji hev cuda binihêrin.

Streaming

- Werin em dest pê bikin gava ku me berê wêneyek vîdyoyê heye, û ew ji hin karûbaran re tê veguheztin. Artyom, ji me re bêje ev weşan çawa dibe?

Artyom Nikonov: Plana meya giştî bi vî rengî xuya dike: wêne ji kamera -> odeya meya kontrolê -> servera RTMP ya herêmî -> Amazon -> lîstikvana vîdyoyê. Zêdetir hûrgulî li ser wê nivîsand li Habré di hezîranê de.

Bi gelemperî, du awayên gerdûnî hene ku vê yekê bikin: an li ser hardware an li ser bingeha çareseriyên nermalavê. Me riya nermalavê hilbijart ji ber ku ew di mijara axaftvanên dûr de hêsantir e. Her gav ne gengaz e ku meriv hardware li welatek din bîne ser axaftvanek, lê radestkirina nermalavê ji axaftvan re hêsantir û pêbawertir xuya dike.

Ji awirek hardware ve, me hejmarek kamerayan (li studyoyên me û li axaftvanên dûr) hene, di stûdyoyê de hejmarek kontrolên ji dûr ve, ku carinan divê di dema weşanê de rast li binê maseyê bêne tamîr kirin.

Signalên ji van amûran dikevin komputerên bi kartên girtina, kartên ketin/derketin û kartên deng. Li wir îşaret têne tevlihev kirin û di sêwiranan de têne berhev kirin:

Di 90 rojan de platformek vîdyoyê pêşve bibin
Mînakek ji bo 4 axaftvan

Di 90 rojan de platformek vîdyoyê pêşve bibin
Mînakek ji bo 4 axaftvan

Zêdetir, weşana domdar bi alîkariya sê komputeran tê peyda kirin: di dorê de yek makîneyek sereke û cotek xebatkar hene. Komputera yekem rapora yekem berhev dike, ya duyemîn - şikestin, ya yekem - raporta paşîn, ya duyemîn - veqetandina paşîn, û hwd. Û makîneya sereke ya yekem bi ya duyemîn re tevlihev dike.

Ev celebek sêgoşeyekê diafirîne, û heke yek ji van girêkan têk biçe, em dikarin zû û bêyî windakirina kalîteyê berdewam bikin ku naverokê ji xerîdaran re radest bikin. Rewşeke me ya wisa hebû. Di hefteya yekem a konferansan de, me yek makîneyek rast kir, vekir / vekir. Xelk ji berxwedana me kêfxweş dibe.

Piştre, pêlavên ji komputeran diçin serverek herêmî, ku du kar hene: Rêça RTMP Streams û paşpirtikên tomar. Ji ber vê yekê me gelek xalên tomarkirinê hene. Piştra pêlên vîdyoyê ji beşa pergala me re hatine şandin ku li ser karûbarên Amazon Saas hatine çêkirin. Em bikar tînin MediaLive:,S3,CloudFront.

Nikolay: Berî ku vîdyo bigihîje temaşevanan li wir çi diqewime? Pêdivî ye ku hûn bi rengek jêbirin, rast?

Artyom: Em vîdyoyê ji hêla xwe ve dişoxilînin û ji MediaLive re dişînin. Em li wir transkoderan didin destpêkirin. Ew vîdyoyan di demek rast de vediguhezînin çend biryardan da ku mirov bikaribe wan li ser têlefonên xwe, bi riya Înterneta belengaz li welat, û hwd temaşe bike. Dûv re ev çem têne qut kirin perçe, ev protokol çawa dixebite HLS. Em lîsteyek lîstikê dişînin pêşiya pêşiyê ku nîşangirên van perçeyan vedihewîne.

- Ma em çareseriya 1080p bikar tînin?

Artyom: Berfirehiya vîdyoya me wekî 1080p - 1920 pixel e, û bilindahî hinekî kêmtir e, wêne dirêjtir e - sedemên vê yekê hene.

Lîstikvan

- Artyom diyar kir ku vîdyoyê çawa dikeve stûyan, çawa ew ji bo çareseriyên cihêreng ên dîmenderê di nav lîsteyên cihêreng de tê belavkirin, perçe perçe dibe û dikeve lîstikvanê. Kolya, naha ji min re bêje ev lîstikvanek çawa ye, ew çawa tîrêjê dixwe, çima HLS?

Nikolay: Lîstikvanek me heye ku hemî temaşevanên konferansê dikarin lê temaşe bikin.

Di 90 rojan de platformek vîdyoyê pêşve bibin

Di bingeh de, ev pêçek li dora pirtûkxaneyê ye hls.js, ku li ser gelek lîstikvanên din hatine nivîsandin. Lê ji me re fonksiyonek pir taybetî hewce bû: vegerandin û nîşankirina cîhê ku mirov lê ye, kîjan raporta ku ew niha temaşe dike. Di heman demê de ji me re sêwiranên xwe, her cûre logo û her tiştê din ku bi me re hatî çêkirin hewce bû. Ji ber vê yekê, me biryar da ku em pirtûkxaneya xwe binivîsin (pêça li ser HLS) û wê li ser malperê bicîh bikin.

Ev fonksiyona root e, ji ber vê yekê ew hema yekem hate bicîh kirin. Then wê hingê her tişt li dora wê mezin bû.

Di rastiyê de, bi destûrnameyê, lîstikvan ji paşîn navnîşek lîstikê ya bi lînkên perçeyên ku bi dem û kalîteyê ve girêdayî ne distîne, yên pêwîst dakêşîne û wan nîşanî bikarhênerê dide, di rê de hin "efsûn" pêk tîne.

Di 90 rojan de platformek vîdyoyê pêşve bibin
Mînaka Demjimêr

- Bişkokek rast di lîstikvanê de hatî çêkirin da ku demjimêrek hemî raporan nîşan bide…

Nikolay: Erê, me tavilê pirsgirêka navîgasyon bikarhêner çareser kir. Di nîvê Nîsanê de, me biryar da ku em ê her konferansek xwe li ser malperek cûda belav nekin, lê em ê her tiştî li ser hev bikin. Ji ber ku bikarhênerên bilêtên Full Pass dikarin bi serbestî di navbera konferansên cihêreng de veguherînin: hem weşanên zindî û hem jî tomarên yên berê.

Û ji bo ku ji bikarhêneran re hêsantir bigerin û di navbera rêçikan de biguhezînin, me biryar da ku em bişkokek "Tevahiya weşana" û kartên raporê yên horizontal ji bo guheztina di navbera rê û raporan de çêbikin. Kontrola klavyeyê heye.

- Di vê yekê de zehmetiyên teknîkî hebûn?

Nikolay: Wan barek gerokek hebû ku li ser xalên destpêkê yên raporên cihêreng hatine nîşankirin.

- Di dawiyê de, we van nîşanan li ser barika gerokê bicîh kir berî ku YouTube tiştek wusa bike?

Artyom: Wê hingê ew di beta de hebû. Wusa dixuye ku ev taybetmendiyek pir tevlihev e ji ber ku wan di sala borî de bi qismî wê bi bikarhêneran re ceribandine. Û niha ew gihîştiye firotanê.

Nikolay: Lê bi rastî me ew zûtir kir ku firotanê. Bi rûmet, li pişt vê taybetmendiya hêsan di hundurê lîstikvanê de hejmareke mezin a paşverû, pêşiyê, hesab û matematîkê heye.

Frontend

— Ka em fêhm bikin ka ev naveroka ku em nîşan didin (karta axaftinê, axaftvan, malper, bername) çawa digihîje dawiya pêşîn?

Vladimir Krasilshchik: Gelek pergalên me yên IT yên navxweyî hene. Pergalek heye ku tê de hemî rapor û hemî axaftvan têne navnîş kirin. Pêvajoyek heye ku axaftvan beşdarî konferansekê dibe. Axaftvan serîlêdanek pêşkêş dike, pergal wê digire, dûv re hin boriyek heye ku li gorî wê rapor tê çêkirin.

Di 90 rojan de platformek vîdyoyê pêşve bibin
Axaftvan bi vî rengî boriyê dibîne

Ev sîstem pêşketina me ya navxweyî ye.

Dûv re, hûn hewce ne ku bernameyek ji raporên kesane ava bikin. Wekî ku hûn dizanin, ev pirsgirêkek NP-zehmet e, lê em bi rengek çareser dikin. Ji bo kirina vê yekê, em hêmanek din didin destpêkirin ku bernameyek çêdike û wê li karûbarê cloudê ya sêyemîn Contentful bar dike. Li wir, her tişt wekî tabloyek ku di konferansê de ye, di rojên we de xuya dike, û di slots de, û di slots de rapor hene, şikestin an çalakiyên sponsorgeriyê hene. Ji ber vê yekê naveroka ku em dibînin di karûbarek sêyemîn de cih digirin. Û peywir ew e ku wê ji malperê re ragihîne.

Wusa dixuye ku malper tenê rûpelek bi lîstikvanek e, û li vir tiştek tevlihev tune. Ji bilî ku ew ne. Piştgiriya li pişt vê rûpelê diçe Contentful, bernameyê ji wir digire, hin tiştan çêdike û dişîne pêşê. Bi karanîna girêdanek websocketê, ku her xerîdarek platforma me çêdike, em jê re nûvekirinek bernameyê ji paşîn berbi pêşiyê dişînin.

Rewşa rastîn: axaftvan di dema konferansê de kar guhert. Pêdivî ye ku em nîşana pargîdaniya wî ya kardêr biguherînin. Ev çawa ji paşperdeyê diqewime? Nûvekirinek bi navgîniya websocketê ji hemî xerîdaran re tê şandin, û dûv re pêşangeh bixwe rêzika demê ji nû ve dikişîne. Hemî ev yek bêkêmasî dibe. Kombûna karûbarê ewr û çend pêkhateyên me fersendê dide me ku em hemî vê naverokê biafirînin û wê li pêşiyê peyda bikin.

Nikolay: Girîng e ku li vir were zelal kirin ku malpera me ne serîlêdana SPA-ya klasîk e. Ev hem malperek sêwirandî, çêkirî û hem jî SPA ye. Google bi rastî vê malperê wekî HTML-ê hatî çêkirin dibîne. Ev ji bo SEO û ji bo gihandina naverokê ji bikarhêner re baş e. Berî dîtina rûpelê li benda barkirina 1,5 megabytes JavaScript namîne, ew tavilê rûpela ku jixwe hatî pêşkêş kirin dibîne, û her gava ku hûn raporê diguherînin hûn pê hîs dikin. Her tişt di nîvê saniyeyê de diqewime, ji ber ku naverok jixwe amade ye û li cîhê rast hatî şandin.

- Ka em bi navnîşkirina teknolojiyên li binê hemî jorîn xetek xêz bikin. Tyoma got ku me 5 weşanên Amazon hene, û em li wir vîdyo û deng radigihînin. Me li wir nivîsarên bash hene, em wan bikar tînin da ku dest pê bikin û mîheng bikin...

Artyom: Ev bi navgîniya AWS API-ê diqewime, li wir gelek karûbarên aliyên teknîkî hene. Me berpirsiyariyên xwe parve kirin da ku ez teslîm bikim CloudFront, û pêşdebirên pêş-end û paşîn wê ji wir digirin. Hejmarek girêdanên me yên xwe hene ku sêwirana naverokê hêsan bikin, ku em dûv re di 4K, hwd de çêdikin. Ji ber ku dem pir teng bûn, me hema hema bi tevahî li ser AWS kir.

- Dûv re ev hemî diçe nav lîstikvanê ku pergala paşîn bikar tîne. Di lîstikvanê me de TypeScript, React, Next.JS heye. Û li ser pişta me di C#, Java, Spring Boot û Node.js de gelek karûbar hene. Ev hemî bi karanîna Kubernetes bi karanîna binesaziya Yandex.Cloud ve têne bicîh kirin.

Di heman demê de ez dixwazim destnîşan bikim ku gava ku min hewce kir ku ez bi platformê re nas bikim, ew hêsan derket holê: hemî depo li ser GitLab-ê ne, her tişt bi navûdeng e, ceribandin têne nivîsandin, belge hene. Ango di rewşa awarte de jî, wan tiştên weha digirtin.

Astengiyên Karsaziyê û Analytics

- Me li gorî hewcedariyên karsaziyê 10 bikarhêner armanc kir. Wext e ku em li ser qedexeyên karsaziyê yên ku me hebûn biaxivin. Diviya bû ku em karekî bilind misoger bikin, lihevhatina bi qanûna parastina daneyên kesane re misoger bikin. Û çi din?

Nikolay: Di destpêkê de, me ji daxwazên vîdyoyê dest pê kir. Ya herî girîng ew e ku hilanîna vîdyoyê li çaraliyê cîhanê ji bo radestkirina bilez ji xerîdar re tê belav kirin. Yên din çareseriya 1080p, û her weha paşvekêşin, ku gelekên din di moda zindî de bicîh nayînin hene. Dûvre me zêdebûna leza 2x, bi alîkariya wê re, bi alîkariya we "bigire" bi zindî ve girêdide û berdewamiya konferansê di dema rastîn de berdewam dike. Û di rê de, fonksiyona nîşankirina demjimêrê xuya bû. Zêdeyî, neçar bû ku em xelet-tolerans bin û li hember barkirina 10 girêdanan bisekinin. Ji nêrînek paşîn ve, ev bi qasî 000 girêdan e ku ji bo nûvekirina her rûpelê bi 10 daxwazan têne zêdekirin. Û ev jixwe 000 RPS / sec e. Pir hindik.

- Ji bo "pêşangehek virtual" bi standên serhêl ên hevkaran re hewcedariyên din hebûn?

Nikolay: Erê, diviyabû ev bi lez û bez bihata kirin. Ji bo her konferansê heya 10 pargîdaniyên me yên hevkar hebûn, û diviyabû ku hemî di nav hefteyek an du hefte de bêne qedandin. Lêbelê, naveroka wan di formê de hinekî cûda dibe. Lê motorek şablonê hate çêkirin ku van rûpelan di firînê de kom dike, bi rastî bêyî beşdariya pêşkeftinê ya din.

- Di heman demê de ji bo analîtîkên dîtin û statîstîkên rast-dem jî hewcedarî hebûn. Ez dizanim ku em Prometheus ji bo vê yekê bikar tînin, lê bi hûrgulî ji me re vebêjin: em ji bo analîtîk çi hewcedariyên xwe bicîh tînin, û ev çawa tê pêkanîn?

Nikolay: Di destpêkê de, me hewcedariyên kirrûbirrê hene ji bo berhevkirina ceribandina A/B û berhevkirina agahdarî ji bo ku em fam bikin ka meriv çawa di pêşerojê de naveroka çêtirîn ji xerîdar re bi rêkûpêk radest dike. Di heman demê de ji bo hin analîtîkên li ser çalakiyên hevkar û analîtîkên ku hûn dibînin jî hewcedariyên hin analîtîk hene. Hemî agahdarî di dema rast de têne berhev kirin.

Em dikarin vê agahiyê bi forma hevgirtî jî ji axaftvanan re peyda bikin: çend kes di demek diyarkirî de li we temaşe dikirin. Di heman demê de, ji bo pêkanîna Qanûna Federal 152, hesabê weya kesane û daneyên kesane bi tu awayî nayên şopandin.

Platformê jixwe amûrên kirrûbirrê û metrîkên me yên ji bo pîvandina çalakiya bikarhêner di wextê rast de heye (kê li kîjan duyemîn raporê temaşe kiriye) da ku grafikên beşdarbûnê li raporan ava bikin. Li ser bingeha van daneyan, lêkolînên ku dê konferansên pêş de çêtir bikin têne kirin.

Qelpezanî

- Mekanîzmayên me yên dijî sextekariyê hene?

Nikolay: Ji ber ku ji ber çirûskek teng ji xala karsaziyê, peywir di destpêkê de nehatiye danîn da ku tavilê têkiliyên nediyar asteng bike. Ger du bikarhêneran di bin heman hesabê de têkevin, ew dikarin naverokê bibînin. Lê em dizanin ka çend nêrînên hevdemî ji yek hesabê hebûn. We me gelek binpêkirinên xerab qedexe kir.

Vladimir: Ji bo krediya wê, yek ji bikarhênerên qedexekirî fêm kir ku çima ev çêbû. Ew hat, lêborîn xwest û soz da ku bilêtek bikire.

- Ji bo ku ev hemû çêbibe, divê hûn bi tevahî bikarhênerên ji têketinê dûr bixin, her gav bizanin ew çi dikin. Ev sîstem çawa dixebite?

Vladimir: Ez dixwazim li ser analîtîk û statîstîkan biaxivim, ku em dûv re ji bo serfiraziya raporê analîz dikin an wê hingê dikarin ji hevalbendan re peyda bikin. Hemî xerîdar bi girêdanek websocket ve bi komek paşverû ya taybetî ve têne girêdan. Li wir radiweste hazelcast. Her xerîdar di her heyamê de tiştê ku ew dike û li kîjan şopê temaşe dike dişîne. Dûv re ev agahdarî bi karanîna karên bilez ên Hazelcast têne berhev kirin û ji her kesê ku li van şopan temaşe dike ve tê şandin. Em di quncikê de dibînin ku niha çend kes bi me re ne.

Di 90 rojan de platformek vîdyoyê pêşve bibin

Heman agahdarî di nav de têne tomar kirin mongo û diçe gola daneya me, ku ji wê derfeta me heye ku em grafiyek balkêştir ava bikin. Pirs derdikeve: çend bikarhênerên bêhempa vê raporê dîtine? Em diçin postgres, pingên hemû kesên ku bi nasnameya vê raporê hatine hene. Me yên bêhempa berhev kir, berhev kir, û naha em dikarin fêm bikin.

Nikolay: Lê di heman demê de, em ji Prometheus jî daneyên rast-dem digirin. Ew li dijî hemî karûbarên Kubernetes, li dijî Kubernetes bixwe tê danîn. Ew bi tevahî her tiştî berhev dike, û bi Grafana re em dikarin her grafîkan di wextê rast de ava bikin.

Vladimir: Ji aliyekî ve, em vê yekê ji bo pêvajoyek OLAP-ê ya din dakêşin. Û ji bo OLTP-ê, serîlêdan hemî tiştan li Prometheus, Grafana dakêşîne û grafîk jî digihîje hev!

- Ev rewş dema ku grafîk digihin hev.

Guherandinên Dînamîk

- Ji me re vebêjin ka guhertinên dînamîkî çawa têne avêtin: heke rapor 6 hûrdem berî destpêkirinê hate betal kirin, zincîra çalakiyan çi ye? Kîjan boriyê dixebite?

Vladimir: Xeta boriya pir bi şert e. Çend îhtîmal hene. Ya yekem ev e ku bernameya hilberîna plansaziyê xebitî û bername guhert. Bernameya guhertî li Contentful tê barkirin. Piştî ku paşverû fam dike ku ji bo vê konferansê di Contentful de guhertin hene, wê digire û ji nû ve ava dike. Her tişt bi riya websocketê tê berhev kirin û şandin.

Ihtîmala duyemîn, gava ku her tişt bi lezek şikestî diqewime: edîtor bi destan agahdariya di Contentful-ê de diguhezîne (girêdana Telegram, pêşkêşiya axaftvan, hwd.) û heman mantiqê wekî cara yekem dixebite.

Nikolay: Her tişt bêyî nûvekirina rûpelê diqewime. Hemî guhertin ji bo xerîdar bêkêmasî pêk tê. Heman tişt ji bo raporên veguherînê jî derbas dibe. Dema ku dem tê, rapor û navbeynkar diguhere.

Vladimir: Di heman demê de, ji bo destpêkirina raporên di demjimêr de qutiyên dem hene. Di destpêkê de tiştek tune. Û heke hûn mişka xwe li ser xêza sor bihêlin, wê hingê di demek de, bi saya derhênerê weşanê, qut dê xuya bibin. Derhêner destpêka weşana rast destnîşan dike, paşîn vê guheztinê hildibijêre, demên destpêk û dawiya pêşandanên tevahiya şopê li gorî nexşeya konferansê dihejmêre, wê ji xerîdarên me re dişîne, û lîstikvan qutkirinan xêz dike. Naha bikarhêner dikare bi hêsanî serî û dawiya raporê bike. Ew hewcedariyek karsaziyek hişk bû, pir hêsan û kêrhatî. Hûn wextê winda nakin ku dema destpêka rastîn a raporê bibînin. Û gava ku em pêşdîtinek bikin, ew ê bê guman ecêb be.

Deployment

- Ez dixwazim li ser şandinê bipirsim. Kolya û tîmê di destpêkê de gelek dem derbas kirin da ku tevahiya binesaziya ku tê de her tişt ji bo me vedibe saz bikin. Ji min re bêje, ew hemî ji çi pêk tê?

Nikolay: Ji nêrînek teknîkî, me di destpêkê de hewcedarî ji bo hilberê ji bo hilberê ku ji her vendor re têkildar be. Bi awiran werin ku nivîsarên terraform bi taybetî ji aws, an bi taybetî ji yandex, an ji azure, hwd. bi rastî li hev nehat. Diviyabû em li cihekî bigerin.

Di sê hefteyên pêşîn de em bi berdewamî li rêyek ku em vê çêtir bikin digerin. Di encamê de, em gihîştine encamê ku Kubernetes di vê rewşê de her tiştê me ye, ji ber ku ew dihêle ku em karûbarên xwerû yên bixweber, otomatîk, û hema hema hemî karûbarên ji qutikê bistînin. Bi xwezayî, pêdivî bû ku hemî karûbar werin perwerde kirin ku bi Kubernetes, Docker re bixebitin, û tîmê jî pêdivî bû ku fêr bibe.

Du komikên me hene. Test û hilberîn. Ew di warê hardware û mîhengan de bi tevahî yek in. Em binesaziyê wekî kodê bicîh dikin. Hemî karûbar bixweber di sê hawîrdoran de ji şaxên taybetmendiyê, şaxên master, şaxên ceribandinê, û GitLab bi karanîna boriyek otomatîkî têne derxistin. Ev herî zêde di GitLab de, herî zêde bi Elastic, Prometheus re yekbûyî ye.

Em fersendê werdigirin ku bi lez û bez (ji bo paşîn di nav 10 hûrdeman de, ji bo pêşiyê di nav 5 hûrdeman de) bi hemî ceribandin, entegrasyon, ceribandinên fonksiyonel, ceribandinên întegrasyonê yên li ser jîngehê, û her weha bi ceribandinên barkirinê re guheztinan li her hawîrdorê derxînin. Jîngehek testê hema hema heman tiştê ku em dixwazin di hilberînê de bigirin.

Der barê testan de

- Hûn hema her tiştî diceribînin, zehmet e ku hûn bawer bikin ku we her tişt çawa nivîsandiye. Hûn dikarin ji me re li ser ceribandinên paşîn vebêjin: çiqas her tişt tê vegirtin, çi ceribandin?

Vladimir: Du celeb test hatine nivîsandin. Ya yekem testên pêkhatî ne. Testên asta bilindkirina tevahiya serîlêdana biharê û bingehê tê de Testcontainers. Ev ceribandinek senaryoyên karsaziyê yên asta herî bilind e. Ez fonksiyonan naceribînim. Em tenê hin tiştên mezin ceribandin. Mînakî, di ceribandinê de, pêvajoya têketinê ya bikarhêner tê emel kirin, daxwaziya bikarhênerê ji bo bilêtên li cihê ku ew dikare biçin, û daxwazek ji bo temaşekirina behrê. Senaryoyên bikarhêner pir zelal.

Nêzîkî heman tişt di ceribandinên bi navê entegrasyonê de, ku bi rastî li ser jîngehê têne meşandin, têne bicîh kirin. Di rastiyê de, dema ku di hilberînê de cîhkirina paşîn tê avêtin, senaryoyên bingehîn ên rastîn jî di hilberînê de têne meşandin. Heman têketinê, daxwaza bilêtan, daxwaza gihîştina CloudFront, kontrolkirina ku tîrêj bi rastî bi destûrên min ve girêdayî ye, kontrolkirina navbeynkariya derhêner.

Di vê kêlîkê de min nêzîkê 70 testên pêkhatê û nêzîkê 40 testên entegrasyonê li ser panelê. Vegirtin pir nêzîkê 95% e. Ev ji bo pêkhatan, kêmtir ji bo entegrasyonê ye, bi hêsanî ne hewce ye. Fikra ku proje bi her cûreyên nifşê kodê ve girêdayî ye, ev nîşanek pir baş e. Riya din tune ku em di sê mehan de bikin. Ji ber ku ger me bi destan ceriband, taybetmendiyan bidin ceribandina xwe, û ew ê xeletiyan bibîne û wan ji bo rastkirinê ji me re vegerîne, wê hingê ev gera gerok a ji bo xeletkirina kodê dê pir dirêj be, û em ê bi tu muhletan re nebin.

Nikolay: Bi kevneşopî, ji bo ku hûn gava ku hin fonksiyonê diguhezînin li ser tevahiya platformê paşveçûnek pêk bînin, hûn hewce ne ku du rojan li her deverê rûnin û bişopînin.

Vladimir: Ji ber vê yekê, serkeftinek mezin e ku gava ez taybetmendiyek texmîn dikim, ez dibêjim ku ji bo du pênûsên hêsan û 4 websocket 1 roj hewce ne, Kolya destûrê dide min. Ew jixwe bi vê yekê aciz e ku ev 4 roj 2 celeb ceribandinan vedihewîne, û paşê, bi îhtîmalek mezin, ew ê bixebite.

Nikolay: Di heman demê de min 140 ceribandinên nivîskî hene: pêkhat + fonksiyonel, ku heman tişt dikin. Hemî heman senaryo di hilberîn, ceribandin û hilberînê de têne ceribandin. Em di heman demê de ceribandinên bingehîn ên UI-ya bingehîn jî zêde kirin. Bi vî rengî em fonksiyona herî bingehîn a ku dikare ji hev veqete vedişêrin.

Vladimir: Bê guman, hêja ye ku meriv li ser ceribandinên barkirinê biaxive. Pêdivî bû ku em platformê di bin barê xwe de nêzikî rast bikin, ji bo fêm bikin ka çi tişt e, çi diqewime, çi bi JVms re diqewime, çiqas bîra bi rastî hewce ye.

- Ez nizanim ku em tiştek li ser rûyê erdê ceribînin, lê tê bîra min ku dema ku me hevdîtin pêk anîn pirsgirêkên transcoders hene. Ma me çeman ceriband?

Artyom: Ceribandin dubare. Organîzekirina hevdîtinan. Di pêvajoya organîzekirina hevdîtinan de bi qasî 2300 bilêtên JIRA hebûn. Vana tenê tiştên gelemperî ne ku mirovan ji bo hevdîtinan kirin. Me parçeyên platformê hilda ser rûpelek cuda ji bo hevdîtinan, ku ji hêla Kirill Tolkachev ve hatî rêve kirin (talkkv).

Bi rastî, pirsgirêkên mezin tune bûn. Bi rastî çend caran me li ser CloudFront xeletiyên cachekirinê girtin, me ew pir zû çareser kir - me bi tenê polîtîka ji nû ve saz kir. Di nav mirovan de, di pergalên weşana li ser malperê de pir zêde xeletî hebûn.

Di dema konferansan de, min neçar ma ku çend hinardekarên din binivîsim da ku ez bêtir amûr û karûbaran vegirim. Li hin deveran ez neçar bûm ku tenê ji bo metrîkan duçerxên xwe çêkim. Dinyaya hardware AV (dîyo-vîdyo) ne pir şêrîn e - we cûreyek "API" alav heye ku hûn bi hêsanî nikarin bandor bikin. Û ji rastiyê dûr e ku hûn ê bikaribin agahdariya ku hûn hewce ne bigirin. Firoşkarên hardware bi rastî hêdî ne, û hema ne gengaz e ku hûn tiştê ku hûn ji wan dixwazin bistînin. Bi tevayî zêdetirî 100 perçeyên hardware hene, ew tiştê ku hûn hewce ne paşde nadin, û hûn hinardekarên xerîb û zêde dinivîsin, bi saya wan hûn dikarin bi kêmanî bi rengek pergalê xelet bikin.

Amûr

- Tê bîra min, berî destpêkirina konferansan çawa me bi qismî alavên zêde kirîn.

Artyom: Me komputer, laptop û pakêtên batterê kirî. Di vê kêlîkê de em dikarin 40 hûrdeman bêyî elektrîkê bijîn. Di meha Hezîranê de li St. Di heman demê de, gelek pêşkêşvan bi girêdanên optîkî yên ji xalên cihêreng ve diçin. Ev bi rastî 40 hûrdemankirina avahiya Downtime, di dema ku em ê li ser ronahiyê, deng, kamerayan, hwd.

- Çîrokek me ya bi heman rengî bi Înternetê re heye. Li ofîsa ku studyoyên me lê ne, me toreke dijwar di navbera qatan de kişand.

Artyom: Di navbera qatan de 20 Gbit fiber heye. Dûv re li ser qatan, li deverek optîk heye, li cîhek optîk tune, lê dîsa jî ji yên gigabit kêmtir kanal hene - em vîdyoyê li ser wan di navbera şopên konferansê de dimeşînin. Bi gelemperî, pir rehet e ku hûn li ser binesaziya xwe bixebitin; hûn kêm kêm dikarin vê yekê li konferansên negirêdayî li ser malperan bikin.

- Berî ku ez li Koma JUG Ru bixebitim, min dît ku çawa odeyên hardware di konferansên negirêdayî de di şevekê de hatine saz kirin, ku li wir çavdêriyek mezin bi hemî pîvanên ku hûn li Grafana ava dikin hebû. Naha jûreyek navendê jî heye ku tê de tîmê pêşkeftinê rûniştiye, ku di dema konferansê de hin xeletiyan rast dike û taybetmendiyan pêş dixe. Di heman demê de, pergalek çavdêriyê heye ku li ser ekranek mezin tê xuyang kirin. Artyom, Kolya û xortên din rûdinin û piştrast dikin ku ew hemî nekeve û xweş bixebite.

Meraq û pirsgirêk

- We li ser vê yekê baş axivî ku me bi Amazon re weşana we heye, lîstikvanek bi tevneyê heye, her tişt bi zimanên bernamenûsê yên cihêreng hatî nivîsandin, tolerasyona xeletiyê û pêdiviyên karsaziyê yên din têne peyda kirin, di nav de hesabek kesane ya ku ji bo saziyên dadrêsî tê piştgirî kirin û kesane, û em dikarin bi yekî ku OAuth 2.0 bikar tîne re bibin yek, antî-xapandin, astengkirina bikarhêner heye. Em dikarin guheztinan bi dînamîk derxînin ji ber ku me ew baş kir, û ew hemî ceribandin.

Ez meraq dikim ku zanibim di destpêkirina tiştekî de çi xerîbî hebûn. Ma di rewşên ecêb de dema ku we paşvekêşek, pêşangehek pêşde dibir, tiştek dîn derket û we fêm nekir ku hûn jê re çi bikin?

Vladimir: Bi dîtina min ev tenê sê mehên dawîn bûye. Her roj. Weke ku hûn dibînin, hemû porê min kişandine.

Di 90 rojan de platformek vîdyoyê pêşve bibin
Vladimir Krasilshchik piştî 3 mehan, gava ku celebek lîstik derket û kes fêm nekir ku wê çi bike

Her roj tiştek wusa hebû, gava ku we demek wusa çêbû, gava ku hûn wê hildin û porê xwe tirş bikin, an jî fêm bikin ku kesek din tune, û tenê hûn dikarin wê bikin. Yekemîn bûyera me ya mezin TechTrain bû. Di 6ê Hezîranê de saet di 2’an de me hê jî hawirdora hilberînê dernexistibû, Kolya derdixist. Û hesabê kesane wekî serverek destûrnameyê ku OAuth2.0 bikar tîne nexebitî. Me ew veguherand pêşkêşkerek OAuth2.0 da ku platformê pê ve girêbide. Ez ji bo vê yekê 18 demjimêran dixebitîm, min li computerê nihêrî û tiştek nedîtibû, ma çima ew ne dixebitî, û Kolya li qada biharê di bin çavan de mêze kir , ew dît, û LC xebitî, û di hilberînê de jî.

Nikolay: Û saetek beriya TechTrain serbestberdan pêk hat.

Li vir gelek stêrk hatin rêz kirin. Em pir bi şens bûn ji ber ku me tîmek super hebû, û her kes ji ramana kirina wê serhêl îlham girt. Van her sê mehan em bi rastiya ku me "YouTube çêkir." Min destûr neda ku porê xwe biçirînim, lê ji her kesî re got ku dê her tişt biserkeve, ji ber ku bi rastî, her tişt ji zû ve hatî hesibandin.

Li ser performansa

— Tu dikarî ji min re bibêjî çend kes li ser yek rêkê li ser malperê bûn? Pirsgirêkên performansê hebûn?

Nikolay: Pirsgirêkên performansê tune bûn, wekî ku me berê jî got. Hejmara herî zêde ya kesên ku beşdarî yek raporê bûn 1300 kes bû, ev li ser Heisenbug e.

- Di dîtina herêmî de ti pirsgirêk hebûn? Û gelo gengaz e ku meriv raveyek teknîkî bi diagramên ku ew hemî çawa dixebite hebe?

Nikolay: Em ê li ser vê yekê paşê gotarek çêbikin.

Tewra hûn dikarin herikên herêmî debug bikin. Dema ku konferans dest pê kirin, ew hê hêsantir bû, ji ber ku çîpên hilberînê xuya bûn ku em dikarin her dem temaşe bikin.

Vladimir: Wekî ku ez jê fam dikim, pêşdebirên pêş-endê bi tinazan re herêmî xebitîn, û dûv re, ji ber ku wextê avêtina devikên li pêş jî kurt e (5 hûrdem), di kontrolkirina ka çi bi sertîfîkayan re diqewime pirsgirêk tune.

- Her tişt tê ceribandin û xelet kirin, hetta herêmî. Ev tê vê wateyê ku em ê gotarek bi hemî taybetmendiyên teknîkî binivîsin, nîşanî we bidin, her tiştî bi diagraman ji we re vebêjin, ka ew çawa bû.

Vladimir: Hûn dikarin wê bigirin û dubare bikin.

- Di 3 mehan de.

Encam

- Her tiştê ku bi hev re hatî vegotin xweş xuya dike, ji ber ku ew di sê mehan de ji hêla tîmek piçûk ve hatî çêkirin.

Nikolay: Tîmek mezin dê vê yekê neke. Lê komeke piçûk a mirovên ku ji nêz ve û baş bi hev re danûstandinê dikin û dikarin li hev bikin dikarin. Ti nakokiyên wan nînin, mîmarî di du rojan de hate îcadkirin, bi dawî bû û bi rastî jî nehatiye guhertin. Di warê berhevkirina daxwaz û guhertinên taybetmendiyê de hêsankirinek pir hişk a hewcedariyên karsaziya hatinî heye.

- Di navnîşa we ya karên din de çi hebû dema ku konferansên havînê berê pêk hatin?

Nikolay: Mînakî, kredî. Li ser vîdyoyê xêzên dizî, li hin cîhên vîdyoyê li gorî naveroka ku têne xuyang kirin vedibin. Mînakî, axaftvan dixwaze pirsekê ji temaşevanan bike, û dengek li ser ekranê derdikeve, ku vedigere piştê li gorî encamên dengdanê ji axaftvan bixwe re. Cûreyek çalakiya civakî di forma ecibandin, dil, nirxa raporê de di dema pêşkêşkirinê de bixwe de, da ku hûn di wextê rast de bertekên xwe tijî bikin bêyî ku hûn paşê ji hêla formên bersivdayînê ve mijûl bibin. Di destpêkê de bi vî rengî.

Û her weha li tevahiya platformê, ji bilî weşan û konferansê, di heman demê de dewletek piştî konferansê jî zêde dike. Ev lîsteyên lîstikê ne (di nav de yên ku ji hêla bikarhêneran ve hatine berhev kirin), dibe ku naveroka ji konferansên berê yên din, yekgirtî, binavkirî, ji bikarhêner re bigihîjin, û ji bo dîtina li ser malpera me jî hene (live.jugru.org).

- Gelî hevalno, gelek spas ji bo bersivên we!

Ger di nav xwendevanan de yên ku beşdarî konferansên me yên havînê bûne hebin, ji kerema xwe nerînên xwe yên lîstikvan û weşanê parve bikin. Çi xweş bû, çi hûn hêrs kir, hûn dixwazin di pêşerojê de çi bibînin?

Heke hûn bi platformê re eleqedar in û dixwazin wê "di şer de" bibînin, em wê dîsa li ser xwe bikar tînin konferansên payîz-zivistanê. Bi tevahî cûrbecûr ji wan hene, ji ber vê yekê hema hema yek heye ku ji bo we rast e.

Source: www.habr.com

Add a comment