Tsim lub platform video hauv 90 hnub

Lub caij nplooj ntoo hlav no peb pom peb tus kheej hauv cov xwm txheej zoo siab heev. Vim muaj kev sib kis, nws tau pom tseeb tias peb lub rooj sib tham lub caij ntuj sov yuav tsum tau txav mus online. Thiab txhawm rau coj lawv online ua tau zoo, cov kev daws teeb meem npaj tau tsim tsis haum rau peb; peb yuav tsum tau sau peb tus kheej. Thiab peb muaj peb lub hlis los ua qhov no.

Nws yog qhov tseeb tias nws tau zoo siab peb lub hlis. Tab sis los ntawm sab nraud nws tsis pom tseeb: dab tsi yog lub rooj sib tham hauv online? Dab tsi yog qhov nws muaj? Yog li ntawd, thaum kawg ntawm lub caij ntuj sov DevOops cov rooj sib tham, kuv nug cov neeg uas muaj lub luag haujlwm rau txoj haujlwm no:

  • Nikolay Molchanov - tus thawj coj ntawm JUG Ru Group;
  • Vladimir Krasilshchik yog Java programmer pragmatic ua haujlwm ntawm lub backend (koj tuaj yeem pom nws cov lus ceeb toom ntawm peb lub rooj sib tham Java);
  • Artyom Nikonov yog lub luag hauj lwm rau tag nrho peb cov streaming video.

Los ntawm txoj kev, ntawm lub caij nplooj zeeg-lub caij ntuj no lub rooj sib tham peb yuav siv ib qho kev txhim kho version ntawm tib lub platform - yog li ntau cov neeg nyeem habra tseem yuav yog nws cov neeg siv.

Tsim lub platform video hauv 90 hnub

Daim duab loj

- Dab tsi yog pawg ntawm pawg?

Nikolay Molchanov: Peb muaj tus kws tshuaj ntsuam xyuas, tus tsim qauv, tus neeg kuaj, peb lub hauv ntej, thiab tom qab kawg. Thiab, ntawm chav kawm, tus kws tshaj lij T-shaped!

- Cov txheej txheem zoo li cas nyob rau hauv dav?

Nikolay: Txog thaum nruab nrab Lub Peb Hlis, peb tsis muaj dab tsi npaj rau hauv online txhua. Thiab thaum Lub Peb Hlis 15, tag nrho online carousel pib tig. Peb teeb tsa ob peb lub chaw cia khoom, npaj, sib tham txog cov qauv tsim qauv thiab ua txhua yam hauv peb lub hlis.

Qhov no, tau kawg, tau dhau los ntawm cov theem classic ntawm kev npaj, architecture, kev xaiv tshwj xeeb, kev pov npav rau cov yam ntxwv, txoj cai rau cov yam ntxwv, lawv tsim, kev loj hlob, kev sim. Raws li qhov tshwm sim, Lub Rau Hli 6, peb tau nthuav tawm txhua yam rau kev tsim khoom. TechTrain. Muaj 90 hnub rau txhua yam.

- Peb puas tau tswj kom ua tiav qhov peb tau cog lus tseg?

Nikolay: Txij li tam sim no peb tau koom nrog DevOops lub rooj sib tham hauv online, nws txhais tau tias nws ua haujlwm. Kuv tus kheej tau cog lus rau qhov tseem ceeb: Kuv yuav coj cov neeg siv khoom siv lub cuab yeej uas lawv tuaj yeem ua lub rooj sib tham hauv online.

Qhov kev sib tw yog qhov no: muab peb lub cuab yeej uas peb tuaj yeem tshaj tawm peb cov rooj sib tham rau cov neeg tuav daim pib.

Txhua qhov kev npaj tau muab faib ua ob peb theem, thiab tag nrho cov nta (txog 30 lub ntiaj teb) tau muab faib ua 4 pawg:

  • uas peb yuav ua tau tiag tiag (peb tsis tuaj yeem nyob tsis muaj lawv),
  • uas peb yuav ua thib ob,
  • uas peb yuav tsis ua,
  • thiab qhov twg peb yuav tsis tau, puas tau.

Peb ua tag nrho cov yam ntxwv los ntawm thawj ob pawg.

- Kuv paub tias tag nrho ntawm 600 JIRA teeb meem raug tsim. Hauv peb lub hlis, koj tau ua 13 microservices, thiab kuv xav tias lawv tau sau tsis yog hauv Java nkaus xwb. Koj tau siv cov thev naus laus zis sib txawv, koj muaj ob lub Kubernetes pawg hauv peb thaj chaw muaj thiab 5 RTMP ntws hauv Amazon.

Tam sim no cia peb saib txhua yam ntawm lub system cais.

Tshaj tawm

- Cia peb pib nrog thaum peb twb muaj cov duab yees duab, thiab nws raug xa mus rau qee qhov kev pabcuam. Artyom, qhia peb seb qhov streaming no tshwm sim li cas?

Artyom Nikonov: Peb lub tswv yim dav dav zoo li no: duab los ntawm lub koob yees duab -> peb chav tswj -> hauv zos RTMP server -> Amazon -> video player. Paub meej ntxiv sau txog nws ntawm Habre nyob rau lub Rau Hli.

Feem ntau, muaj ob txoj hauv kev thoob ntiaj teb los ua qhov no: xws li kho vajtse lossis raws li kev daws teeb meem software. Peb xaiv txoj kev software vim nws yooj yim dua nyob rau hauv rooj plaub ntawm cov neeg hais lus nyob deb. Nws tsis yog ib txwm ua tau los nqa cov khoom siv rau tus neeg hais lus hauv lwm lub tebchaws, tab sis xa cov software rau tus hais lus zoo li yooj yim dua thiab txhim khu kev qha.

Los ntawm cov khoom siv kho vajtse, peb muaj qee lub koob yees duab (hauv peb lub studios thiab ntawm cov neeg hais lus tej thaj chaw deb), qee tus xov tooj ntawm cov chaw taws teeb tswj hauv lub studio, uas qee zaum yuav tsum tau kho txoj cai hauv qab rooj thaum lub sijhawm tshaj tawm.

Cov teeb liab los ntawm cov khoom siv no nkag mus rau hauv khoos phis tawj nrog cov ntawv ntes, cov ntawv nkag / tso tawm, thiab daim npav suab. Muaj cov teeb liab sib xyaw thiab sib sau ua ke hauv layouts:

Tsim lub platform video hauv 90 hnub
Piv txwv ntawm layout rau 4 tus neeg hais lus

Tsim lub platform video hauv 90 hnub
Piv txwv ntawm layout rau 4 tus neeg hais lus

Tsis tas li ntawd, kev tshaj tawm tsis tu ncua yog muab nrog kev pab los ntawm peb lub khoos phis tawj: muaj ib lub tshuab loj thiab ib khub ua haujlwm nyob rau hauv lem. Thawj lub khoos phis tawj sau thawj daim ntawv tshaj tawm, qhov thib ob - so, thawj - daim ntawv tshaj tawm tom ntej, thib ob - so tom ntej, thiab lwm yam. Thiab lub tshuab tseem ceeb sib tov thawj zaug nrog qhov thib ob.

Qhov no tsim ib hom ntawm daim duab peb sab, thiab yog tias ib qho ntawm cov nodes ua tsis tau, peb tuaj yeem ua tau sai thiab tsis muaj kev poob zoo txuas ntxiv xa cov ntsiab lus rau cov neeg siv khoom. Peb muaj qhov xwm txheej zoo li no. Thaum thawj lub lim tiam ntawm kev sib tham, peb kho ib lub tshuab, muab nws rau / tawm. Cov neeg zoo li zoo siab nrog peb txoj kev ua siab ntev.

Tom ntej no, cov kwj deg los ntawm cov khoos phis tawj mus rau lub server hauv zos, uas muaj ob txoj haujlwm: txoj kev RTMP ntws thiab cov ntaub ntawv thaub qab. Yog li peb muaj ntau lub ntsiab lus kaw. Cov kwj yeeb yaj kiab raug xa mus rau ib feem ntawm peb lub kaw lus tsim los ntawm Amazon SaaS cov kev pabcuam. Peb siv MediaLive:, S3, CloudFront.

Nikolay: Yuav ua li cas nyob ntawd ua ntej cov yeeb yaj kiab mus txog cov neeg tuaj saib? Koj yuav tsum txiav nws li cas, txoj cai?

Artyom: Peb compress cov yees duab ntawm peb feem thiab xa mus rau MediaLive. Peb tso transcoders nyob rau ntawd. Lawv hloov cov yeeb yaj kiab hauv lub sijhawm tiag tiag rau hauv ntau qhov kev daws teeb meem kom tib neeg tuaj yeem saib lawv hauv lawv lub xov tooj, dhau ntawm Internet tsis zoo hauv lub tebchaws, thiab lwm yam. Tom qab ntawd cov kwj deg no raug txiav mus rau hauv tej kab, qhov no yog li cas cov txheej txheem ua haujlwm HLS. Peb xa ib daim ntawv teev npe mus rau pem hauv ntej uas muaj cov taw qhia rau cov chunks no.

- Puas yog peb siv 1080p daws teeb meem?

Artyom: Qhov dav ntawm peb cov vis dis aus yog tib yam li 1080p - 1920 pixels, thiab qhov siab yog me ntsis, daim duab yog elongated ntau - muaj cov laj thawj rau qhov no.

Neeg uas ua ntawv

- Artyom piav qhia yuav ua li cas cov vis dis aus nkag mus rau hauv cov kwj, yuav ua li cas nws faib rau hauv cov npe sib txawv rau cov kev daws teeb meem sib txawv, txiav rau hauv chunks thiab nkag mus rau hauv cov neeg ua si. Kolya, tam sim no qhia kuv seb hom neeg ua si no yog dab tsi, nws siv li cas, vim li cas HLS?

Nikolay: Peb muaj ib tug neeg uas ua ntawv uas txhua tus neeg saib lub rooj sib tham tuaj yeem saib.

Tsim lub platform video hauv 90 hnub

Qhov tseem ceeb, qhov no yog wrapper nyob ib ncig ntawm lub tsev qiv ntawv hls js, uas ntau lwm tus players tau sau. Tab sis peb xav tau kev ua haujlwm tshwj xeeb heev: rov ua dua thiab khij qhov chaw uas tus neeg nyob, daim ntawv ceeb toom nws tab tom saib dab tsi. Peb kuj xav tau peb tus kheej layouts, txhua hom logos thiab txhua yam uas tau tsim nrog peb. Yog li ntawd, peb txiav txim siab los sau peb tus kheej lub tsev qiv ntawv (ib lub wrapper tshaj HLS) thiab kos rau ntawm qhov chaw.

Qhov no yog lub hauv paus kev ua haujlwm, yog li nws tau ua tiav yuav luag ua ntej. Thiab ces txhua yam loj hlob nyob ib ncig ntawm nws.

Nyob rau hauv qhov tseeb, los ntawm kev tso cai, tus neeg uas ua ntawv tau txais los ntawm lub backend ib playlist nrog txuas mus chunks correlated nrog lub sij hawm thiab zoo, downloads qhov tsim nyog sawv daws yuav thiab qhia lawv rau cov neeg siv, ua ib co "magic" nyob rau hauv txoj kev.

Tsim lub platform video hauv 90 hnub
Piv txwv sijhawm

- Lub pob tau tsim txoj cai rau hauv cov neeg ua si los tso saib lub sijhawm ntawm tag nrho cov lus ceeb toom ...

Nikolay: Yog lawm, peb tam sim ntawd daws qhov teeb meem ntawm cov neeg siv navigation. Nyob rau nruab nrab Lub Plaub Hlis, peb tau txiav txim siab tias peb yuav tsis tshaj tawm txhua qhov ntawm peb lub rooj sib tham ntawm ib lub vev xaib, tab sis yuav muab txhua yam ntawm ib qho. Yog li ntawd cov neeg siv daim pib Full Pass tuaj yeem hloov pauv ntawm cov rooj sib tham sib txawv: ob qho tib si tshaj tawm hauv xov xwm thiab kaw cov ntawv dhau los.

Thiab ua kom nws yooj yim dua rau cov neeg siv los taug qab cov kwj tam sim no thiab hloov ntawm cov lem, peb tau txiav txim siab los ua "Tag Nrho Tshaj Tawm" khawm thiab daim ntawv qhia kab rov tav rau kev hloov ntawm cov lem thiab tshaj tawm. Muaj cov keyboard tswj.

- Puas muaj kev nyuaj rau qhov no?

Nikolay: Lawv muaj ib tug scroll bar uas cov ntsiab lus pib ntawm cov ntaub ntawv sib txawv tau cim.

- Thaum kawg, koj puas tau siv cov cim no rau ntawm qhov scroll bar ua ntej YouTube ua ib yam dab tsi zoo sib xws?

Artyom: Lawv muaj nws hauv beta thaum ntawd. Nws zoo li qhov no yog qhov nyuaj zoo nkauj vim tias lawv tau ua qee qhov kev sim nws nrog cov neeg siv xyoo dhau los. Thiab tam sim no nws tau mus txog kev muag khoom.

Nikolay: Tab sis peb tau txais nws mus muag sai dua. Honestly, qab no yooj yim feature muaj ib tug loj npaum li cas ntawm backend, frontend, xam thiab lej nyob rau hauv tus neeg uas ua ntawv.

Frontend

- Cia peb xav seb cov ntsiab lus no uas peb qhia (hais lus, hais lus, lub vev xaib, lub sijhawm) tau mus rau qhov kawg?

Vladimir Krasilshchik: koj puas xav tau ntau tus thwjtim? Peb muaj ntau lub tshuab IT sab hauv. Nws muaj ib qho system uas txhua cov lus ceeb toom thiab txhua tus neeg hais lus nkag. Muaj ib txoj hauv kev uas tus neeg hais lus koom nrog hauv lub rooj sib tham. Tus neeg hais lus xa daim ntawv thov, lub kaw lus ntes nws, tom qab ntawd muaj qee yam kav dej raws li daim ntawv tshaj tawm tau tsim.

Tsim lub platform video hauv 90 hnub
Qhov no yog li cas tus neeg hais lus pom lub raj xa dej

Qhov system no yog peb txoj kev txhim kho sab hauv.

Tom ntej no, koj yuav tsum tsim ib lub sij hawm los ntawm tus kheej cov ntaub ntawv. Raws li koj paub, qhov no yog ib qho teeb meem nyuaj NP, tab sis peb daws nws li cas. Txhawm rau ua qhov no, peb tso lwm yam khoom uas tsim lub sijhawm thiab xa nws mus rau qhov thib peb-tog huab kev pabcuam Contentful. Nyob ntawd, txhua yam zoo li lub rooj uas muaj hnub ntawm lub rooj sib tham, nyob rau hauv cov hnub muaj sij hawm slots, thiab nyob rau hauv lub slots muaj cov lus ceeb toom, so los yog kev txhawb nqa kev ua ub no. Yog li cov ntsiab lus peb pom nyob rau hauv qhov kev pabcuam thib peb. Thiab lub luag haujlwm yog xa nws mus rau qhov chaw.

Nws yuav zoo li tias lub xaib tsuas yog nplooj ntawv nrog tus neeg ua si, thiab tsis muaj dab tsi nyuaj ntawm no. Tsuas yog nws tsis yog. Lub backend tom qab nplooj ntawv no mus rau Contentful, tau txais lub sijhawm los ntawm qhov ntawd, tsim qee yam khoom thiab xa mus rau pem hauv ntej. Siv lub websocket txuas, uas txhua tus neeg siv khoom ntawm peb lub platform ua, peb xa nws hloov tshiab rau lub sijhawm los ntawm lub backend mus rau frontend.

Cov ntaub ntawv tiag tiag: tus neeg hais lus hloov txoj haujlwm raug cai thaum lub rooj sib tham. Peb yuav tsum hloov nws tus tswv hauj lwm daim ntawv cim npe. Qhov no tshwm sim li cas los ntawm lub backend? Kev hloov tshiab raug xa mus rau txhua tus neeg siv khoom ntawm lub websocket, thiab tom qab ntawd lub frontend nws tus kheej redraws lub sijhawm. Txhua yam no tshwm sim seamlessly. Kev sib xyaw ua ke ntawm cov kev pabcuam huab thiab ntau yam ntawm peb cov khoom muab sijhawm rau peb los tsim tag nrho cov ntsiab lus no thiab muab rau pem hauv ntej.

Nikolay: Nws yog ib qho tseem ceeb kom paub meej ntawm no tias peb lub xaib tsis yog daim ntawv thov SPA classic. Qhov no yog ob qho tib si layout-based, ua lub vev xaib thiab SPA. Google yeej pom qhov chaw no ua HTML. Qhov no yog qhov zoo rau SEO thiab xa cov ntsiab lus rau tus neeg siv. Nws tsis tos 1,5 megabytes ntawm JavaScript kom thauj khoom ua ntej pom nplooj ntawv, nws tam sim ntawd pom nplooj ntawv uas twb tau ua lawm, thiab koj xav tias nws txhua zaus koj hloov daim ntawv tshaj tawm. Txhua yam tshwm sim hauv ib nrab thib ob, txij li cov ntsiab lus twb tau npaj thiab muab tso rau hauv qhov chaw zoo.

- Cia peb kos ib kab hauv qab tag nrho cov saum toj no los ntawm kev teev cov thev naus laus zis. Tyoma tau hais tias peb muaj 5 Amazon ntws, thiab peb xa cov yeeb yaj kiab thiab suab rau ntawd. Peb muaj bash scripts nyob ntawd, peb siv lawv los tso thiab teeb tsa ...

Artyom: Qhov no tshwm sim los ntawm AWS API, muaj ntau yam kev pabcuam sab nraud muaj. Peb faib peb lub luag haujlwm kom kuv xa tuaj rau CloudFront, thiab front-end thiab back-end developers coj nws los ntawm qhov ntawd. Peb muaj ib tug xov tooj ntawm peb tus kheej bindings kom yooj yim lub layout ntawm cov ntsiab lus, uas peb ces ua nyob rau hauv 4K, thiab lwm yam. Txij li cov hnub kawg tau nruj heev, peb tau ua nws yuav luag tag nrho ntawm AWS.

- Tom qab ntawd tag nrho cov no mus rau hauv cov neeg uas ua ntawv siv lub backend system. Peb muaj TypeScript, React, Next.JS hauv peb cov neeg ua si. Thiab ntawm qhov backend peb muaj ntau qhov kev pabcuam hauv C#, Java, Spring Boot thiab Node.js. Qhov no yog txhua yam siv siv Kubernetes siv Yandex.Cloud infrastructure.

Kuv kuj xav kom nco ntsoov tias thaum kuv xav tau kev paub nrog lub platform, nws tau ua kom yooj yim: txhua qhov chaw khaws cia yog nyob ntawm GitLab, txhua yam muaj npe zoo, cov ntawv xeem tau sau, muaj cov ntaub ntawv. Qhov ntawd yog, txawm tias thaum muaj xwm txheej ceev, lawv tau saib xyuas tej yam zoo li no.

Kev txwv kev lag luam thiab Analytics

- Peb tsom 10 cov neeg siv raws li kev xav tau ntawm kev lag luam. Nws yog lub sijhawm los tham txog kev txwv kev lag luam uas peb muaj. Peb yuav tsum ua kom muaj kev ua haujlwm siab, ua raws li txoj cai ntawm kev khaws cia ntawm tus kheej cov ntaub ntawv. Thiab dab tsi ntxiv?

Nikolay: Thaum xub thawj, peb pib los ntawm kev xav tau video. Qhov tseem ceeb tshaj plaws yog faib cov yeeb yaj kiab cia thoob ntiaj teb kom xa khoom sai rau cov neeg siv khoom. Lwm tus suav nrog 1080p daws teeb meem, nrog rau rov qab, uas ntau lwm tus tsis siv hauv hom nyob. Tom qab ntawd peb tau ntxiv lub peev xwm los pab kom 2x ceev, nrog rau nws txoj kev pab koj tuaj yeem "ntaus" nrog kev nyob thiab txuas ntxiv mus saib lub rooj sib tham hauv lub sijhawm. Thiab ntawm txoj kev, ncua sij hawm cim kev ua haujlwm tshwm sim. Ntxiv rau, peb yuav tsum tau ua txhaum kev zam txim thiab tiv thaiv lub nra ntawm 10 kev sib txuas. Los ntawm qhov pom ntawm qhov backend, qhov no yog kwv yees li 000 kev sib txuas sib npaug los ntawm 10 thov rau txhua nplooj ntawv tshiab. Thiab qhov no twb yog 000 RPS / sec. Heev me ntsis ntawm.

- Puas muaj lwm yam kev cai rau "virtual exhibition" nrog cov neeg koom tes hauv online?

Nikolay: Yog, qhov no yuav tsum tau ua sai sai thiab thoob ntiaj teb. Peb muaj txog li 10 lub tuam txhab koom tes rau txhua lub rooj sib tham, thiab tag nrho lawv yuav tsum ua kom tiav hauv ib lub lis piam lossis ob zaug. Txawm li cas los xij, lawv cov ntsiab lus txawv me ntsis hauv hom. Tab sis ib lub cav template tau ua los sib sau ua ke cov nplooj ntawv ntawm ya, tsis muaj kev koom tes nrog kev txhim kho ntxiv.

- Kuj tseem muaj cov kev xav tau rau kev txheeb xyuas ntawm cov kev xav hauv lub sijhawm thiab kev txheeb cais. Kuv paub tias peb siv Prometheus rau qhov no, tab sis qhia rau peb paub ntau ntxiv: peb yuav tsum ua li cas rau kev txheeb xyuas, thiab qhov no siv li cas?

Nikolay: Thaum pib, peb muaj cov kev xav tau kev lag luam rau kev sau rau A / B kuaj thiab sau cov ntaub ntawv txhawm rau nkag siab yuav ua li cas xa cov ntsiab lus zoo tshaj plaws rau cov neeg siv khoom yav tom ntej. Kuj tseem muaj cov kev xav tau rau qee qhov kev tshuaj xyuas ntawm tus khub kev ua ub no thiab cov kev txheeb xyuas uas koj pom (mus saib lub txee). Tag nrho cov ntaub ntawv raug sau raws sijhawm.

Peb tuaj yeem muab cov ntaub ntawv no rau hauv daim ntawv sib sau txawm rau cov neeg hais lus: pes tsawg tus neeg tau saib koj ntawm qee lub sijhawm. Nyob rau tib lub sijhawm, kom ua raws li Tsoom Fwv Teb Chaws Txoj Cai 152, koj tus kheej tus account thiab cov ntaub ntawv tus kheej tsis raug taug qab txhua txoj kev.

Lub platform twb muaj cov cuab yeej lag luam thiab peb cov ntsuas ntsuas ntsuas cov neeg siv khoom hauv lub sijhawm tiag tiag (leej twg saib qhov thib ob ntawm tsab ntawv ceeb toom) txhawm rau tsim cov duab ntawm kev tuaj koom ntawm cov ntawv ceeb toom. Raws li cov ntaub ntawv no, kev tshawb fawb tau ua tiav uas yuav ua rau cov rooj sib tham tom ntej zoo dua.

Kev dag

- Peb puas muaj kev tiv thaiv kev dag ntxias?

Nikolay: Vim lub sij hawm nruj los ntawm qhov kev xav ntawm kev lag luam, cov hauj lwm tsis tau pib ua kom tam sim ntawd thaiv kev sib txuas tsis tsim nyog. Yog tias ob tus neeg siv nkag rau hauv tib tus account, lawv tuaj yeem saib cov ntsiab lus. Tab sis peb paub ntau npaum li cas ib txhij saib muaj los ntawm ib tus account. Thiab peb txwv ntau tus neeg ua phem ua phem.

Vladimir: Rau nws qhov credit, ib tus neeg siv txwv tsis pub nkag siab tias yog vim li cas qhov no tshwm sim. Nws tuaj, thov txim thiab cog lus tias yuav yuav daim pib.

- Rau txhua qhov no tshwm sim, koj yuav tsum taug qab txhua tus neeg siv los ntawm kev nkag mus rau qhov tawm, ib txwm paub tias lawv ua dab tsi. Qhov system no ua haujlwm li cas?

Vladimir: Kuv xav tham txog kev txheeb xyuas thiab txheeb cais, uas peb mam li txheeb xyuas qhov ua tiav ntawm daim ntawv tshaj tawm lossis tuaj yeem muab rau cov neeg koom tes. Txhua tus neeg siv khoom txuas nrog lub websocket txuas mus rau ib pawg backend tshwj xeeb. Nws nyob ntawd hazelcast. Txhua tus neeg siv khoom txhua lub sijhawm xa nws ua dab tsi thiab nws tab tom saib dab tsi. Tom qab ntawd cov ntaub ntawv no tau muab sau ua ke siv cov haujlwm ceev Hazelcast thiab xa rov qab rau txhua tus neeg uas saib cov lem no. Peb pom nyob rau hauv lub ces kaum muaj pes tsawg tus neeg tam sim no nrog peb.

Tsim lub platform video hauv 90 hnub

Cov ntaub ntawv tib yam yog khaws cia rau hauv Mongo thiab mus rau peb cov ntaub ntawv pas dej, los ntawm qhov uas peb muaj lub sijhawm los tsim cov duab nthuav dav. Cov lus nug tshwm sim: pes tsawg tus neeg siv tshwj xeeb tau saib daim ntawv qhia no? Peb mus rau Xaib, muaj pings ntawm tag nrho cov neeg uas tuaj los ntawm id ntawm daim ntawv qhia no. Peb tau sau, sau cov cim tshwj xeeb, thiab tam sim no peb tuaj yeem nkag siab.

Nikolay: Tab sis tib lub sijhawm, peb kuj tau txais cov ntaub ntawv tiag tiag los ntawm Prometheus. Nws tau teeb tsa tawm tsam txhua qhov kev pabcuam Kubernetes, tawm tsam Kubernetes nws tus kheej. Nws sau tag nrho txhua yam, thiab nrog Grafana peb tuaj yeem tsim cov duab hauv lub sijhawm.

Vladimir: Ntawm qhov tod tes, peb rub tawm qhov no rau kev ua tiav OLAP ntxiv. Thiab rau OLTP, daim ntawv thov rub tawm tag nrho rau Prometheus, Grafana thiab cov duab sib txuas!

- Qhov no yog rooj plaub thaum cov duab sib dhos.

Dynamic Hloov

- Qhia rau peb paub tias cov kev hloov pauv hloov pauv li cas: yog tias daim ntawv tshaj tawm raug tshem tawm 6 feeb ua ntej pib, txoj haujlwm ntawm kev ua yog dab tsi? Lub raj xa dej twg ua haujlwm?

Vladimir: Lub raj xa dej yog qhov zoo heev. Muaj ntau qhov ua tau. Thawj yog tias cov txheej txheem tsim cov txheej txheem ua haujlwm thiab hloov lub sijhawm. Lub sijhawm hloov kho tau muab tso rau hauv Contentful. Tom qab ntawd tus backend nkag siab tias muaj kev hloov pauv rau lub rooj sib tham no hauv Contentful, coj nws thiab rov tsim kho nws. Txhua yam yog sau thiab xa los ntawm websocket.

Qhov thib ob muaj peev xwm, thaum txhua yam tshwm sim ntawm kev sib tsoo: tus editor hloov pauv cov ntaub ntawv hauv Contentful (txuas mus rau Telegram, tus neeg hais lus nthuav qhia, thiab lwm yam) thiab tib lub tswv yim ua haujlwm zoo li thawj zaug.

Nikolay: Txhua yam tshwm sim yam tsis muaj nplooj ntawv tshiab. Txhua qhov kev hloov pauv tshwm sim seamlessly rau tus neeg siv khoom. Ib yam mus rau kev hloov cov ntawv ceeb toom. Thaum lub sij hawm los txog, daim ntawv qhia thiab interface hloov.

Vladimir: Tsis tas li ntawd, muaj sijhawm txiav tawm rau qhov pib ntawm cov ntawv ceeb toom hauv ncua sij hawm. Thaum pib tsis muaj dab tsi. Thiab yog tias koj tuav koj tus nas hla cov kab liab liab, tom qab qee lub sijhawm, ua tsaug rau tus thawj coj tshaj tawm, kev txiav tawm yuav tshwm sim. Tus thawj coj teeb tsa qhov pib qhov tseeb ntawm kev tshaj tawm, lub backend khaws qhov kev hloov pauv no, suav cov sijhawm pib thiab xaus ntawm tag nrho cov kev nthuav qhia raws li lub sijhawm sib tham, xa mus rau peb cov neeg siv khoom, thiab tus neeg ua si txiav tawm. Tam sim no tus neeg siv tuaj yeem yooj yim taug kev mus rau qhov pib thiab qhov kawg ntawm daim ntawv tshaj tawm. Nws yog qhov yuav tsum tau ua lag luam nruj, yooj yim heev thiab siv tau. Koj tsis nkim sijhawm nrhiav lub sijhawm pib tiag tiag rau daim ntawv tshaj tawm. Thiab thaum peb ua qhov saib ua ntej, nws yuav zoo heev.

Kev xa tawm

- Kuv xav nug txog kev xa tawm. Kolya thiab pab neeg tau siv sijhawm ntau thaum pib teeb tsa tag nrho cov txheej txheem uas txhua yam nthuav dav rau peb. Qhia rau kuv, txhua yam yog ua los ntawm dab tsi?

Nikolay: Los ntawm ib qho kev pom zoo, peb pib muaj qhov yuav tsum tau ua rau cov khoom lag luam kom paub meej raws li qhov ua tau los ntawm txhua tus neeg muag khoom. Tuaj rau AWS los ua Terraform cov ntawv tshwj xeeb los ntawm AWS, lossis tshwj xeeb los ntawm Yandex, lossis los ntawm Azure, thiab lwm yam. tsis tau tiag tiag. Peb yuav tsum tsiv mus nyob rau qee qhov chaw.

Thawj peb lub lis piam peb tab tom nrhiav txoj hauv kev los ua qhov no zoo dua. Raws li qhov tshwm sim, peb tau los xaus tias Kubernetes nyob rau hauv rooj plaub no yog peb txhua yam, vim nws tso cai rau peb los tsim cov kev pabcuam txiav-scaling, pib-rollout, thiab yuav luag tag nrho cov kev pabcuam tawm ntawm lub thawv. Lawm, txhua qhov kev pabcuam yuav tsum raug cob qhia los ua haujlwm nrog Kubernetes, Docker, thiab pab pawg yuav tsum tau kawm thiab.

Peb muaj ob pawg. Test thiab ntau lawm. Lawv yeej zoo ib yam nyob rau hauv cov nqe lus ntawm kho vajtse thiab chaw. Peb siv infrastructure raws li cov cai. Tag nrho cov kev pabcuam raug muab dov tawm mus rau hauv peb qhov chaw los ntawm cov ceg ntoo, cov ceg ntoo, cov ceg sim, thiab GitLab siv cov kav dej tsis siv neeg. Qhov no yog qhov sib xyaw ua ke ntau tshaj plaws rau hauv GitLab, sib xyaw ua ke nrog Elastic, Prometheus.

Peb tau txais lub sijhawm sai sai (rau qhov backend hauv 10 feeb, rau pem hauv ntej tsis pub dhau 5 feeb) yob tawm cov kev hloov pauv rau txhua qhov chaw nrog txhua qhov kev xeem, kev sib koom ua ke, khiav cov kev xeem ua haujlwm, kev sib koom ua ke ntawm ib puag ncig, thiab tseem sim nrog cov kev xeem thauj khoom ntawm ib puag ncig kev sim kwv yees tib yam uas peb xav tau hauv kev tsim khoom.

Hais txog kev xeem

- Koj sim yuav luag txhua yam, nws nyuaj rau ntseeg tias koj sau txhua yam li cas. Koj puas tuaj yeem qhia peb txog cov kev xeem backend: ntau npaum li cas txhua yam raug them, qhov kev xeem twg?

Vladimir: Ob hom kev xeem tau sau. Thawj yog cov kev ntsuam xyuas cov khoom. Nqa qib kev xeem ntawm tag nrho lub caij nplooj ntoos hlav daim ntawv thov thiab puag hauv Testcontainers. Qhov no yog ib qho kev sim ntawm theem siab tshaj plaws kev lag luam scenarios. Kuv tsis sim ua haujlwm. Peb tsuas sim qee yam loj. Piv txwv li, txoj cai hauv kev sim, tus txheej txheem ntawm kev nkag mus rau tus neeg siv tau ua raws, tus neeg siv qhov kev thov rau daim pib mus rau qhov twg nws tuaj yeem mus, thiab thov kev nkag mus saib cov kwj deg. Cov neeg siv pom tseeb heev.

Kwv yees li tib yam yog siv nyob rau hauv qhov kev xeem hu ua kev sib koom ua ke, uas tau khiav ntawm ib puag ncig. Qhov tseeb, thaum kev xa mus tom ntej hauv kev tsim khoom yog dov tawm, cov xwm txheej tiag tiag tseem tab tom khiav hauv kev tsim khoom. Tib tus ID nkag mus, thov daim pib, thov nkag mus rau CloudFront, kuaj xyuas tias cov kwj dej yeej txuas nrog kuv qhov kev tso cai, tshawb xyuas tus thawj coj interface.

Lub sijhawm no kuv muaj txog 70 qhov kev xeem sib xyaw thiab txog 40 qhov kev xeem sib xyaw ua ke ntawm lub nkoj. Kev pab them nqi yog ze rau 95%. Qhov no yog rau cov khoom siv, tsawg dua rau kev sib koom ua ke, tsuas yog tsis xav tau ntau. Xav txog tias qhov project cuam tshuam nrog txhua hom code tiam, qhov no yog qhov qhia tau zoo heev. Tsis muaj lwm txoj hauv kev uas peb tau ua hauv peb lub hlis. Vim hais tias yog peb sim manually, muab cov yam ntxwv rau peb tester, thiab nws yuav pom kab thiab xa rov qab rau peb kho, ces qhov kev mus ncig no mus debug cov cai yuav ntev heev, thiab peb yuav tsis tau raws li lub sij hawm.

Nikolay: Raws li txoj cai, txhawm rau ua kom muaj kev rov qab los ntawm tag nrho lub platform thaum hloov qee qhov haujlwm, koj yuav tsum zaum thiab poke qhov txhia chaw rau ob hnub.

Vladimir: Yog li ntawd, nws yog ib qho kev vam meej uas thaum kuv kwv yees ib qho feature, kuv hais tias kuv xav tau 4 hnub rau ob tug cwj mem yooj yooj yim thiab 1 websocket, Kolya tso cai rau nws. Nws twb tau siv rau qhov tseeb tias 4 hnub no suav nrog 2 hom kev xeem, thiab tom qab ntawd, feem ntau, nws yuav ua haujlwm.

Nikolay: Kuv kuj muaj 140 qhov kev xeem sau: tivthaiv + ua haujlwm, uas ua tib yam. Txhua qhov xwm txheej tib yam raug sim hauv kev tsim khoom, hauv kev sim, thiab hauv kev tsim khoom. Peb kuj tsis ntev los no tau ntxiv cov kev sim ua haujlwm yooj yim UI. Txoj kev no peb npog cov haujlwm yooj yim tshaj plaws uas tuaj yeem poob sib nrug.

Vladimir: Ntawm chav kawm, nws tsim nyog tham txog kev kuaj load. Nws yog ib qho tsim nyog los ntsuas lub platform nyob rau hauv ib qho chaw ze rau qhov tiag kom nkag siab tias txhua yam yog dab tsi, dab tsi tshwm sim nrog Luav, dab tsi tshwm sim nrog JVMs, yuav tsum nco ntsoov ntau npaum li cas.

- Kuv tsis paub meej tias peb tab tom sim dab tsi ntawm kwj dej, tab sis kuv nco qab tias muaj teeb meem nrog cov neeg hloov pauv thaum peb tau ntsib. Peb puas tau sim cov kwj deg?

Artyom: Kuaj rov ua dua. Kev sib ntsib. Hauv cov txheej txheem ntawm kev sib ntsib, muaj kwv yees li 2300 JIRA daim pib. Cov no tsuas yog tej yam uas tib neeg tau ua los sib ntsib xwb. Peb muab qee qhov ntawm lub platform mus rau ib nplooj ntawv cais rau kev sib ntsib, uas tau khiav los ntawm Kirill Tolkachev (talkkv ua).

Ua ncaj ncees, tsis muaj teeb meem loj. Lus ob peb zaug peb ntes tau cov kab mob caching ntawm CloudFront, peb tau daws nws sai heev - peb tsuas yog rov kho cov cai. Muaj cov kab ntau ntau hauv tib neeg, hauv cov kab ke streaming ntawm lub xaib.

Thaum lub rooj sib tham, kuv yuav tsum tau sau ob peb tus neeg xa tawm ntau ntxiv txhawm rau txhawm rau npog ntau yam khoom siv thiab kev pabcuam. Hauv qee qhov chaw kuv yuav tsum tau ua kuv tus kheej lub tsheb kauj vab tsuas yog rau kev ntsuas. Lub ntiaj teb ntawm AV (suab-video) kho vajtse tsis yog rosy - koj muaj qee yam "API" ntawm cov cuab yeej uas koj tsuas tuaj yeem cuam tshuam tsis tau. Thiab nws nyob deb ntawm qhov tseeb tias koj tuaj yeem tau txais cov ntaub ntawv koj xav tau. Cov neeg muag khoom kho vajtse qeeb heev, thiab nws yuav luag tsis tuaj yeem tau txais yam koj xav tau los ntawm lawv. Nyob rau hauv tag nrho muaj ntau tshaj 100 daim ntawm kho vajtse, lawv tsis muab rov qab rau qhov koj xav tau, thiab koj sau coj txawv txawv thiab redundant exporters, ua tsaug uas koj muaj peev xwm tsawg kawg yog ib qho kev debug lub system.

Khoom siv

β€” Kuv nco ntsoov ua ntej pib lub rooj sab laj peb ib nrab yuav khoom siv ntxiv.

Artyom: Peb yuav cov computers, laptops, thiab roj teeb pob. Tam sim no peb tuaj yeem nyob tsis muaj hluav taws xob rau 40 feeb. Thaum lub Rau Hli, muaj cua daj cua dub loj heev hauv St. Petersburg - yog li ntawd peb tau muaj qhov tsaus ntuj. Nyob rau tib lub sijhawm, ntau tus neeg muab kev pabcuam tuaj rau peb nrog kev sib txuas kho qhov muag los ntawm cov ntsiab lus sib txawv. Qhov no yog tiag tiag 40 feeb ntawm lub tsev downtime, thaum lub sij hawm uas peb yuav muaj teeb rau, suab, koob yees duab, thiab lwm yam. ua hauj lwm.

- Peb muaj ib zaj dab neeg zoo sib xws nrog Is Taws Nem. Nyob rau hauv lub chaw ua hauj lwm uas peb studios nyob, peb dragged ib tug nruj net ntawm cov plag tsev.

Artyom: Peb muaj 20 Gbit ntawm fiber ntau ntawm cov plag tsev. Ntxiv mus, nyob rau hauv cov plag tsev, qhov chaw muaj optics, qhov chaw tsis muaj optics, tab sis tseem muaj cov channel tsawg dua li cov gigabit - peb khiav vis dis aus ntawm lawv ntawm kev sib tham. Feem ntau, nws yooj yim heev rau kev ua haujlwm ntawm koj tus kheej infrastructure; koj tuaj yeem tsis tshua ua qhov no ntawm cov rooj sib tham offline ntawm qhov chaw.

- Ua ntej kuv ua haujlwm ntawm JUG Ru Group, kuv pom tias chav kho vajtse ntawm cov rooj sib tham offline tau teeb tsa li cas thaum hmo ntuj, qhov chaw uas muaj lub saib loj nrog txhua qhov kev ntsuas uas koj tsim hauv Grafana. Tam sim no tseem muaj chav tsev hauv paus hauv paus uas pab pawg txhim kho zaum, uas thaum lub rooj sib tham kho qee cov kab thiab txhim kho cov yam ntxwv. Nyob rau tib lub sijhawm, muaj kev saib xyuas uas tau tshwm sim ntawm lub vijtsam loj. Artyom, Kolya thiab lwm tus neeg zaum thiab xyuas kom meej tias txhua yam tsis poob thiab ua haujlwm zoo nkauj.

Xav paub thiab teeb meem

- Koj tau hais zoo txog qhov tseeb tias peb tau streaming nrog Amazon, muaj ib tus neeg ua si nrog lub vev xaib, txhua yam tau sau ua hom lus sib txawv, kev zam txim rau kev ua txhaum thiab lwm yam yuav tsum tau ua, suav nrog tus kheej tus account uas tau txais kev txhawb nqa rau cov koom haum raug cai thiab cov tib neeg, thiab peb tuaj yeem koom ua ke nrog ib tus neeg siv OAuth 2.0, muaj kev tiv thaiv kev dag, neeg siv thaiv. Peb tuaj yeem dov tawm cov kev hloov pauv hloov pauv vim peb tau ua nws zoo, thiab nws tau sim txhua yam.

Kuv xav paub dab tsi oddities tau koom nrog kom tau ib yam dab tsi pib. Puas muaj tej yam txawv txawv thaum koj tab tom txhim kho lub backend, frontend, ib yam dab tsi vwm thiab koj tsis nkag siab tias yuav ua li cas nrog nws?

Vladimir: Nws zoo nkaus li kuv tias qhov no tsuas yog tshwm sim rau peb lub hlis dhau los. Txhua hnub. Raws li koj tau pom, tag nrho kuv cov plaub hau tau raug rub tawm.

Tsim lub platform video hauv 90 hnub
Vladimir Krasilshchik tom qab 3 lub hlis, thaum qee qhov kev ua si tig tawm thiab tsis muaj leej twg nkag siab tias yuav ua li cas nrog nws

Txhua txhua hnub muaj tej yam zoo li no, thaum muaj xws li ib lub sij hawm thaum koj coj nws thiab rhuav koj cov plaub hau, los yog paub tias tsis muaj leej twg, thiab tsuas yog koj ua tau. Peb thawj qhov kev tshwm sim loj yog TechTrain. Thaum Lub Rau Hli 6 thaum 2 teev sawv ntxov peb tseem tsis tau dov tawm qhov chaw tsim khoom, Kolya tau dov nws tawm. Thiab tus account tus kheej tsis ua haujlwm raws li kev tso cai server siv OAuth2.0. Peb muab nws rau hauv OAuth2.0 tus neeg muab kev pabcuam los txuas lub platform rau nws. Kuv tau ua hauj lwm rau tej zaum 18 teev ncaj, kuv ntsia lub computer thiab tsis pom dab tsi, kuv tsis nkag siab vim li cas nws tsis ua hauj lwm, thiab Kolya ntsia kuv code remotely, nrhiav ib tug kab mob nyob rau hauv lub caij nplooj ntoos hlav configuration. , pom nws, thiab LC ua haujlwm, thiab hauv ntau lawm.

Nikolay: Thiab ib teev ua ntej TechTrain qhov kev tso tawm tau tshwm sim.

Ntau lub hnub qub tau nyob ntawm no. Peb muaj hmoo heev vim tias peb muaj pab pawg super, thiab txhua tus tau txais kev tshoov siab los ntawm lub tswv yim ntawm kev ua nws hauv online. Tag nrho peb lub hlis no peb tau tsav los ntawm qhov tseeb tias peb "ua YouTube." Kuv tsis cia kuv tus kheej los rhuav tshem kuv cov plaub hau, tab sis hais rau sawv daws tias txhua yam yuav ua tiav, vim qhov tseeb, txhua yam tau suav ntev dhau los.

Hais txog kev ua tau zoo

- Koj puas tuaj yeem qhia kuv tias muaj pes tsawg tus neeg nyob hauv qhov chaw ntawm ib txoj kev? Puas muaj teeb meem kev ua haujlwm?

Nikolay: Tsis muaj teeb meem kev ua tau zoo, raws li peb twb tau hais lawm. Qhov siab tshaj plaws ntawm cov neeg tuaj koom ib daim ntawv tshaj tawm yog 1300 tus neeg, qhov no yog nyob rau ntawm Heisenbug.

- Puas muaj teeb meem nrog kev saib hauv zos? Thiab nws puas tuaj yeem muaj cov lus piav qhia nrog cov duab kos ntawm qhov nws ua haujlwm li cas?

Nikolay: Peb mam li ua ib tsab xov xwm txog qhov no tom qab.

Koj muaj peev xwm txawm debug kwj hauv zos. Thaum lub rooj sib tham pib, nws tau yooj yim dua, vim tias cov kwj deg tau tshwm sim uas peb tuaj yeem saib txhua lub sijhawm.

Vladimir: Raws li kuv nkag siab nws, cov neeg tsim tawm pem hauv ntej tau ua haujlwm hauv zos nrog kev thuam, thiab tom qab ntawd, txij li lub sijhawm los yob tawm mus rau cov dev hauv pem hauv ntej kuj tseem luv (5 feeb), tsis muaj teeb meem nrog kev tshuaj xyuas dab tsi tshwm sim nrog daim ntawv pov thawj.

- Txhua yam yog kuaj thiab debugged, txawm nyob hauv zos. Qhov no txhais tau tias peb yuav sau ib tsab xov xwm nrog tag nrho cov kev nta, qhia koj, qhia koj txhua yam nrog daim duab, nws yog li cas.

Vladimir: Koj tuaj yeem nqa nws thiab rov ua dua.

- Hauv 3 lub hlis.

Qhov no

- Txhua yam piav qhia ua ke zoo li txias, xav tias nws tau ua los ntawm pab pawg me hauv peb lub hlis.

Nikolay: Ib pab neeg loj yuav tsis ua qhov no. Tab sis ib pawg me me ntawm cov neeg uas sib txuas lus zoo heev thiab zoo nrog ib leeg thiab tuaj yeem pom zoo tuaj yeem. Lawv tsis muaj qhov tsis sib xws, cov qauv tsim tau tsim nyob rau hauv ob hnub, tau ua tiav thiab tsis tau hloov pauv. Muaj kev tswj hwm nruj heev ntawm cov khoom lag luam uas yuav tsum tau ua nyob rau hauv cov nqe lus ntawm kev sib sau cov lus thov thiab kev hloov pauv.

- Dab tsi yog nyob rau hauv koj daim ntawv teev cov hauj lwm ntxiv thaum lub rooj sib tham lub caij ntuj sov twb tshwm sim lawm?

Nikolay: Piv txwv li, credits. Creeping kab ntawm cov yees duab, pop-ups nyob rau hauv tej qhov chaw nyob rau hauv lub yees duab nyob ntawm seb cov ntsiab lus tau qhia. Piv txwv li, tus neeg hais lus xav nug ib lo lus nug rau cov neeg tuaj saib, thiab ib qho kev pov npav tshwm sim ntawm qhov screen, uas rov qab mus rau sab nraub qaum raws li cov txiaj ntsig pov npav rau tus hais lus nws tus kheej. Qee hom kev sib raug zoo hauv daim ntawv nyiam, lub siab nyiam, kev ntaus nqi ntawm daim ntawv tshaj tawm thaum lub sijhawm nthuav tawm nws tus kheej, kom koj tuaj yeem sau cov lus tawm tswv yim rau lub sijhawm zoo yam tsis muaj kev cuam tshuam tom qab los ntawm cov ntawv tawm tswv yim. Thaum xub thawj zoo li no.

Thiab tseem ntxiv rau tag nrho lub platform, tshwj tsis yog rau streaming thiab kev sib tham, kuj yog lub xeev tom qab lub rooj sib tham. Cov no yog cov playlists (xws li cov neeg siv sau ua ke), tej zaum cov ntsiab lus los ntawm lwm lub rooj sib tham yav dhau los, kev sib koom ua ke, sau npe, siv tau rau tus neeg siv, thiab tseem muaj rau saib ntawm peb lub vev xaib (nyob.jugru.org).

- Cov txiv neej, ua tsaug ntau rau koj cov lus teb!

Yog tias ntawm cov neeg nyeem muaj cov uas tuaj koom peb lub rooj sib tham lub caij ntuj sov, thov qhia koj qhov kev xav ntawm cov neeg ua si thiab tshaj tawm. Dab tsi yog qhov yooj yim, dab tsi ua rau koj chim siab, koj xav pom dab tsi yav tom ntej?

Yog tias koj txaus siab rau lub platform thiab xav pom nws "hauv kev sib ntaus sib tua", peb siv nws dua ntawm peb lub caij nplooj zeeg-lub caij ntuj no lub rooj sib tham. Muaj ntau ntau yam ntawm lawv, yog li muaj yuav luag txhua yam uas yog rau koj.

Tau qhov twg los: www.hab.com

Ntxiv ib saib