Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Artem Denisov ( ib 0r201, Badoo)

Badoo yog qhov chaw sib tham loj tshaj plaws hauv ntiaj teb. Peb tam sim no muaj txog 330 lab tus neeg siv npe thoob ntiaj teb. Tab sis dab tsi yog qhov tseem ceeb tshaj nyob rau hauv cov ntsiab lus ntawm peb kev sib tham hnub no yog tias peb khaws txog 3 petabytes ntawm cov neeg siv cov duab. Txhua hnub peb cov neeg siv upload txog 3,5 lab cov duab tshiab, thiab kev nyeem ntawv yog hais txog 80 txhiab thov ib ob. Qhov no yog ntau heev rau peb cov backend, thiab qee zaum muaj teeb meem nrog qhov no.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Kuv yuav tham txog qhov tsim ntawm qhov system no, uas khw muag khoom thiab xa cov duab feem ntau, thiab kuv yuav saib nws los ntawm tus tsim tawm qhov kev xav. Yuav muaj qhov luv luv ntawm qhov nws tau tsim, qhov twg kuv yuav piav qhia txog cov ntsiab lus tseem ceeb, tab sis kuv tsuas yog tham kom ntxaws ntxiv txog cov kev daws teeb meem uas peb tab tom siv tam sim no.

Tam sim no cia peb pib.


Raws li kuv tau hais, qhov no yuav yog qhov rov qab los, thiab txhawm rau pib nws qhov chaw, cia peb ua piv txwv feem ntau.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb muaj ib txoj hauj lwm ua ke, peb yuav tsum lees txais, khaws thiab xa cov neeg siv duab. Hauv daim ntawv no, txoj haujlwm yog dav dav, peb tuaj yeem siv txhua yam:

  • niaj hnub huab cia,
  • ib lub thawv ntim, uas tseem muaj ntau tam sim no;
  • Peb tuaj yeem teeb tsa ntau lub tshuab hauv peb lub chaw khaws ntaub ntawv thiab muab cov hard drives loj rau lawv thiab khaws cov duab rau ntawd.

Badoo keeb kwm - ob qho tib si tam sim no thiab tom qab ntawd (thaum lub sijhawm thaum nws tseem hluas) - nyob ntawm nws tus kheej servers, hauv peb tus kheej DCs. Yog li ntawd, qhov kev xaiv no yog qhov zoo rau peb.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb nyuam qhuav coj ob peb lub tshuab, hu ua "cov duab", thiab peb tau txais ib pawg uas khaws cov duab. Tab sis zoo li ib yam dab tsi ploj lawm. Yuav kom tag nrho cov no ua haujlwm, peb yuav tsum tau txiav txim siab ntawm lub tshuab twg peb yuav khaws cov duab twg. Thiab ntawm no, ib yam nkaus, tsis tas yuav qhib Asmeskas.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb ntxiv ib co teb rau peb cia nrog cov ntaub ntawv hais txog cov neeg siv. Qhov no yuav yog tus yuam sij sharding. Hauv peb cov ntaub ntawv, peb hu nws place_id, thiab qhov chaw id taw qhia rau qhov chaw uas cov neeg siv cov duab khaws cia. Peb ua maps.

Hauv thawj theem, qhov no tuaj yeem ua tiav manually - peb hais tias daim duab ntawm tus neeg siv nrog qhov chaw zoo li no yuav tsaws ntawm lub server zoo li no. Ua tsaug rau daim ntawv qhia no, peb ib txwm paub thaum tus neeg siv uploads ib daim duab, txuag nws qhov twg, thiab peb paub qhov twg muab los ntawm.

Qhov no yog ib qho txheej txheem tsis tseem ceeb, tab sis nws muaj qhov zoo heev. Thawj qhov yog qhov yooj yim, raws li kuv tau hais, thiab qhov thib ob yog tias nrog txoj hauv kev no peb tuaj yeem yooj yim ntsuas kab rov tav los ntawm kev xa cov tsheb tshiab thiab ntxiv rau hauv daim ntawv qhia. Koj tsis tas yuav ua lwm yam.

Qhov ntawd yog li cas rau peb ib pliag.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov no yog nyob ib ncig ntawm 2009. Lawv xa tsheb, xa ...

Thiab nyob rau qee lub sijhawm peb pib pom tias cov tswv yim no muaj qee qhov tsis zoo. Dab tsi yog qhov tsis zoo?

Ua ntej tshaj plaws, muaj peev xwm tsawg. Peb tsis tuaj yeem tsim ntau lub hard drive rau ib lub cev server raws li peb xav tau. Thiab qhov no tau dhau los ua ib qho teeb meem nyob rau lub sijhawm thiab nrog kev loj hlob ntawm dataset.

Thiab thib ob. Qhov no yog atypical configuration ntawm cov cav tov, vim hais tias xws li cov cav tov yog ib qho nyuaj rau reuse nyob rau hauv ib co lwm yam pawg; lawv yog heev tshwj xeeb, i.e. lawv yuav tsum tsis muaj zog hauv kev ua tau zoo, tab sis tib lub sijhawm nrog lub hard drive loj.

Qhov no yog tag nrho rau xyoo 2009, tab sis, hauv paus ntsiab lus, cov kev cai no tseem cuam tshuam rau niaj hnub no. Peb muaj qhov rov qab los, yog li xyoo 2009 txhua yam tsis zoo nrog qhov no.

Thiab qhov kawg taw tes yog tus nqi.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Tus nqi siab heev thaum lub sijhawm ntawd, thiab peb yuav tsum tau nrhiav qee qhov kev xaiv. Cov. peb xav tau qee qhov zoo dua siv ob qho chaw hauv cov chaw khaws ntaub ntawv thiab lub cev servers uas txhua qhov no nyob. Thiab peb cov engineers system tau pib txoj kev tshawb fawb loj uas lawv tau tshuaj xyuas ntau yam kev xaiv sib txawv. Lawv kuj tau saib cov ntaub ntawv hauv pawg xws li PolyCeph thiab Luster. Muaj teeb meem kev ua haujlwm thiab kev ua haujlwm nyuaj heev. Lawv tsis kam. Peb sim mount tag nrho cov dataset ntawm NFS ntawm txhua lub tsheb nyob rau hauv thiaj li yuav ua cas scale nws. Kev nyeem ntawv kuj mus tsis zoo, peb sim cov kev daws teeb meem sib txawv los ntawm cov neeg muag khoom sib txawv.

Thiab thaum kawg, peb tau txiav txim siab siv lub npe hu ua Storage Area Network.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Cov no yog cov loj SHDs uas tau tsim tshwj xeeb rau khaws cov ntaub ntawv loj. Lawv yog cov txee nrog cov disks uas tau nruab rau ntawm qhov kawg ntawm cov khoom siv kho qhov muag. Qhov ntawd. peb muaj qee hom pas dej ua ke ntawm cov cav tov, me me, thiab cov SHDs, uas yog pob tshab rau peb xa cov logic, i.e. rau peb nginx lossis lwm tus los ua haujlwm thov rau cov duab no.

Qhov kev txiav txim siab no tau pom tseeb qhov zoo. Qhov no yog SHD. Nws yog tsom rau khaws cov duab. Qhov no ua haujlwm tawm pheej yig dua li tsuas yog nruab cov tshuab nrog hard drives.

Thib ob ntxiv.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov no yog tias lub peev xwm tau dhau los ua ntau dua, i.e. peb tuaj yeem ua kom haum ntau qhov chaw cia hauv qhov ntim me me.

Tab sis kuj muaj qhov tsis zoo uas tshwm sim sai heev. Raws li tus naj npawb ntawm cov neeg siv thiab thauj khoom ntawm cov kab ke no tau loj hlob, cov teeb meem kev ua haujlwm tau pib tshwm sim. Thiab qhov teeb meem ntawm no yog qhov pom tseeb heev - txhua qhov SHD tsim los khaws ntau cov duab hauv ib lub ntim me me, raws li txoj cai, raug kev txom nyem los ntawm kev nyeem ntawv hnyav. Qhov no yeej muaj tseeb rau tej huab cia lossis lwm yam. Tam sim no peb tsis muaj qhov chaw cia zoo tshaj plaws uas yuav ua kom muaj nuj nqis tsis kawg, koj tuaj yeem ntim txhua yam rau hauv nws, thiab nws yuav zam kev nyeem ntawv zoo heev. Tshwj xeeb xws li kev nyeem ntawv.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Raws li yog cov ntaub ntawv nrog peb cov duab, vim hais tias cov duab yog thov inconsistently, thiab qhov no yuav cuam tshuam rau lawv kev ua tau zoo heev.

Txawm hais tias raws li cov duab niaj hnub no, yog tias peb tau txais qhov chaw ntau dua 500 RPS rau cov duab ntawm lub tshuab uas txuas nrog, cov teeb meem twb pib lawm. Thiab nws yog qhov phem txaus rau peb, vim tias tus naj npawb ntawm cov neeg siv tau nce zuj zus, txhua yam tsuas yog mus zuj zus. Qhov no yuav tsum tau optimized qee yam.

Yuav kom optimize, peb txiav txim siab nyob rau hauv lub sij hawm ntawd, pom tseeb, mus saib lub load profile - dab tsi, feem ntau, yog tshwm sim, dab tsi yuav tsum tau optimized.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Thiab ntawm no txhua yam ua si hauv peb txhais tes.

Kuv twb tau hais hauv thawj tus swb: peb muaj 80 txhiab nyeem ntawv thov ib ob nrog tsuas yog 3,5 lab uploads ib hnub. Ntawd yog, qhov no yog qhov sib txawv ntawm peb qhov kev txiav txim loj. Nws yog qhov pom tseeb tias kev nyeem ntawv yuav tsum tau ua kom zoo dua qub thiab nws yog qhov tseeb meej li cas.

Muaj ib qho me me ntxiv. Qhov tshwj xeeb ntawm cov kev pabcuam yog xws li tus neeg sau npe, uploads ib daim duab, tom qab ntawd pib nquag saib lwm tus neeg, zoo li lawv, thiab nquag qhia rau lwm tus neeg. Tom qab ntawd nws nrhiav tau tus txij nkawm lossis tsis pom tus khub, nws nyob ntawm seb nws hloov mus li cas, thiab tsis siv qhov kev pabcuam ib ntus. Lub sijhawm no, thaum nws siv nws, nws cov duab kub heev - lawv xav tau, ntau tus neeg saib lawv. Thaum nws tsis ua qhov no, nws nrawm nrawm nws tawm ntawm ntau qhov kev cuam tshuam rau lwm tus neeg raws li nws tau ua dhau los, thiab nws cov duab yuav luag tsis tau thov.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Cov. Peb muaj cov ntaub ntawv kub me me heev. Tab sis tib lub sij hawm muaj ntau qhov kev thov rau nws. Thiab ib qho kev daws teeb meem tag nrho ntawm no yog ntxiv lub cache.

Lub cache nrog LRU yuav daws tau tag nrho peb cov teeb meem. Peb ua dab tsi?

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb ntxiv lwm qhov me me nyob rau pem hauv ntej ntawm peb pawg loj nrog kev cia, uas yog hu ua photocaches. Qhov no yog qhov tseem ceeb tsuas yog lub npe caching.

Nws ua haujlwm li cas los ntawm sab hauv? Ntawm no yog peb cov neeg siv, ntawm no yog cia. Txhua yam zoo ib yam li yav dhau los. Peb ntxiv dab tsi hauv nruab nrab?

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Nws tsuas yog lub tshuab nrog lub cev lub cev hauv zos disk, uas ceev ceev. Qhov no yog nrog SSD, piv txwv li. Thiab qee hom cache hauv zos tau khaws cia rau hauv daim disk no.

Nws zoo li cas? Tus neeg siv xa daim ntawv thov rau daim duab. NGINX nrhiav nws thawj zaug hauv lub zos cache. Yog tias tsis yog, tsuas yog proxy_pass rau peb qhov chaw cia, rub daim duab los ntawm qhov ntawd thiab muab rau tus neeg siv.

Tab sis qhov no yog banal heev thiab nws tsis paub meej tias muaj dab tsi tshwm sim hauv. Nws ua haujlwm zoo li no.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Lub cache yog logically muab faib ua peb txheej. Thaum kuv hais tias "peb txheej", qhov no tsis txhais tau hais tias muaj qee yam txheej txheem nyuaj. Tsis yog, cov no yog cov xwm txheej tsuas yog peb phau ntawv teev npe hauv cov ntaub ntawv kaw lus:

  1. Qhov no yog qhov tsis nyob qhov twg cov duab nyuam qhuav rub tawm los ntawm lub npe mus.
  2. Qhov no yog ib tug kub cache uas khw muag khoom tam sim no nquag thov cov duab.
  3. Thiab lub txias cache, qhov twg cov duab maj mam thawb tawm ntawm lub kub cache thaum tsawg thov tuaj rau lawv.

Txhawm rau ua haujlwm no, peb yuav tsum tau tswj hwm qhov cache no, peb yuav tsum rov kho cov duab hauv nws, thiab lwm yam. Qhov no kuj yog txheej txheem tseem ceeb heev.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Nginx tsuas yog sau rau RAMDisk access.log rau txhua qhov kev thov, uas nws qhia txoj hauv kev rau daim duab uas nws tau ua haujlwm tam sim no (txoj kev txheeb ze, tau kawg), thiab qhov kev faib nws tau txais kev pab. Cov. tej zaum nws yuav hais tias "daim duab 1" thiab tom qab ntawd yog ib qho tsis, lossis kub cache, lossis txias cache, lossis tus neeg sawv cev.

Nyob ntawm qhov no, peb yuav tsum tau txiav txim siab ua li cas rau daim duab.

Peb muaj ib tug me me daemon khiav ntawm txhua lub tshuab uas tas li nyeem cov cav no thiab khaws cov txheeb cais ntawm kev siv qee cov duab hauv nws lub cim xeeb.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Nws tsuas yog sau rau ntawd, khaws cov txee thiab ua ntu zus ua cov hauv qab no. Nws txav nquag thov cov duab, uas muaj ntau qhov kev thov, mus rau qhov kub cache, nyob qhov twg lawv nyob.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Cov duab uas tau thov tsis tshua muaj thiab tau thov tsawg dua yog maj mam thawb tawm ntawm qhov kub cache mus rau qhov txias.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Thiab thaum peb khiav tawm ntawm qhov chaw hauv lub cache, peb tsuas yog pib rho tawm txhua yam los ntawm qhov txias cache indiscriminately. Thiab los ntawm txoj kev, qhov no ua haujlwm zoo.

Txhawm rau kom cov duab tau txais kev cawmdim tam sim ntawd thaum tso npe rau nws rau qhov tsis, peb siv cov lus qhia proxy_store thiab tsis yog RAMDisk, piv txwv li. rau tus neeg siv nws ua haujlwm sai heev. Qhov no cuam tshuam cov internals ntawm lub caching server nws tus kheej.

Cov lus nug ntxiv yog yuav ua li cas faib kev thov hla cov servers no.

Cia peb hais tias muaj ib pawg ntawm nees nkaum lub tshuab cia thiab peb lub caching servers (qhov no yog li cas nws tshwm sim).

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb yuav tsum tau txiav txim siab seb qhov kev thov twg yog rau cov duab twg thiab qhov twg yuav tsaws rau lawv.

Qhov kev xaiv ntau tshaj plaws yog Round Robin. Los yog ua los ntawm kev sib tsoo?

Qhov no pom tseeb muaj ntau qhov tsis zoo vim tias peb yuav siv lub cache tsis muaj txiaj ntsig zoo hauv qhov xwm txheej zoo li no. Kev thov yuav tsaws ntawm qee lub tshuab random: ntawm no nws tau cached, tab sis nyob rau tom ntej nws tsis nyob ntawd. Thiab yog tias tag nrho cov no ua haujlwm, nws yuav phem heev. Txawm tias muaj cov tshuab me me hauv pawg.

Peb yuav tsum tau txiav txim siab yam tsis muaj kev txiav txim siab uas tus neeg rau zaub mov yuav tsaws qhov kev thov.

Muaj ib txoj kev banal. Peb muab cov hash los ntawm URL lossis hash los ntawm peb tus yuam sij sharding, uas yog nyob rau hauv URL, thiab faib nws los ntawm tus naj npawb ntawm servers. Yuav ua haujlwm? Yuav.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Cov. Peb muaj 2% thov, piv txwv li, rau qee qhov "example_url" nws yuav ib txwm tsaws ntawm lub server nrog qhov ntsuas "XNUMX", thiab cov cache yuav raug muab pov tseg tas li kom zoo tshaj plaws.

Tab sis muaj teeb meem nrog resharding nyob rau hauv xws li ib tug tswvyim. Resharding - Kuv txhais tau tias hloov cov naj npawb ntawm cov servers.

Cia peb xav tias peb cov caching pawg tsis tuaj yeem tiv tau thiab peb txiav txim siab ntxiv lwm lub tshuab.

Wb ntxiv.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Tam sim no txhua yam yog faib tsis tau los ntawm peb, tab sis los ntawm plaub. Yog li, yuav luag txhua tus yuam sij uas peb tau siv los muaj, yuav luag tag nrho cov URLs tam sim no nyob ntawm lwm cov servers. Tag nrho cov cache yog invalidated ib pliag. Txhua qhov kev thov poob rau ntawm peb pawg cia, nws ua tsis zoo, kev pabcuam tsis ua haujlwm thiab cov neeg siv tsis txaus siab. Kuv tsis xav ua li ntawd.

Qhov kev xaiv no tsis haum rau peb thiab.

Qhov ntawd. peb yuav ua li cas? Peb yuav tsum ua li cas thiaj li siv tau zoo ntawm lub cache, tsaws tib qhov kev thov ntawm tib lub server ntau dua, tab sis yuav tiv taus rau resharding. Thiab muaj xws li kev daws, nws tsis yog qhov nyuaj. Nws yog hu ua ib txwm hashing.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Nws zoo li cas?

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb coj qee qhov kev ua haujlwm los ntawm tus yuam sij sharding thiab nthuav tawm tag nrho nws cov txiaj ntsig ntawm lub voj voog. Cov. ntawm point 0, nws qhov tsawg kawg nkaus thiab qhov siab tshaj plaws converge. Tom ntej no, peb tso tag nrho peb cov servers rau tib lub voj voog nyob rau hauv kwv yees li no:

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Txhua tus neeg rau zaub mov tau txhais los ntawm ib qho taw qhia, thiab cov haujlwm uas mus rau clockwise rau nws, raws li, tau txais kev pabcuam los ntawm tus tswv tsev no. Thaum thov tuaj rau peb, peb pom tam sim ntawd, piv txwv li, thov A - nws muaj hash muaj - thiab nws tau txais kev pabcuam los ntawm server 2. Thov B - los ntawm server 3. Thiab lwm yam.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Yuav ua li cas tshwm sim nyob rau hauv qhov teeb meem no thaum resholding?

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb tsis siv tag nrho cov cache, zoo li ua ntej, thiab tsis hloov tag nrho cov yuam sij, tab sis peb hloov txhua qhov kev ncua deb kom, hais lus, peb cov neeg rau zaub mov thib rau, uas peb xav ntxiv, haum rau qhov chaw dawb, thiab peb ntxiv rau ntawd.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Tau kawg, nyob rau hauv cov xwm txheej zoo li no cov yuam sij kuj txav tawm. Tab sis lawv tsiv tawm ntau zog dua li yav dhau los. Thiab peb pom tias peb thawj ob tus yuam sij tseem nyob ntawm lawv cov servers, thiab cov neeg rau zaub mov caching hloov pauv tsuas yog rau tus yuam sij kawg. Qhov no ua haujlwm zoo heev, thiab yog tias koj ntxiv cov tswv tshiab ntxiv, ces tsis muaj teeb meem loj ntawm no. Koj ntxiv thiab ntxiv me ntsis ib zaug, tos kom txog thaum lub cache puv dua, thiab txhua yam ua haujlwm zoo.

Tib lo lus nug tseem nyob nrog tsis kam. Cia peb xav tias qee lub tsheb tsis raug cai.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Thiab peb yuav tsis xav rov tsim dua daim ntawv qhia no tam sim no, ua tsis tiav ib feem ntawm lub cache, thiab lwm yam, yog tias, piv txwv li, lub tshuab tau rov pib dua, thiab peb yuav tsum tau thov qee qhov kev pabcuam. Peb tsuas khaws ib daim duab thaub qab cache ntawm txhua qhov chaw, uas ua haujlwm hloov rau txhua lub tshuab uas tam sim no poob. Thiab yog tias mam li nco dheev ib qho ntawm peb cov servers ua tsis muaj, cov tsheb mus rau ntawd. Lawm, peb tsis muaj cache nyob ntawd, i.e. nws txias, tab sis tsawg kawg yog cov neeg siv kev thov raug ua tiav. Yog tias qhov no yog lub sijhawm luv luv, tom qab ntawd peb ntsib nws tag nrho. Tsuas muaj kev thauj khoom ntxiv xwb. Yog tias lub sijhawm no ntev, ces peb tuaj yeem txiav txim siab - tshem tawm cov neeg rau zaub mov ntawm daim ntawv qhia lossis tsis, lossis tej zaum hloov nws nrog lwm tus.

Qhov no yog hais txog lub caching system. Cia peb saib cov txiaj ntsig.

Nws yuav zoo li tsis muaj dab tsi nyuab ntawm no. Tab sis txoj kev tswj hwm lub cache no tau muab rau peb tus nqi dag txog li 98%. Cov. tawm ntawm no 80 txhiab thov ib ob, tsuas yog 1600 mus txog cia, thiab qhov no yog ib tug tag nrho load, lawv calmly endurance nws, peb ib txwm muaj ib tug cia.

Peb muab cov servers no tso rau hauv peb lub DCs, thiab tau txais peb lub ntsiab lus ntawm kev muaj - Prague, Miami thiab Hong Kong.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov ntawd. lawv muaj ntau dua los yog tsawg dua hauv zos nyob rau txhua qhov ntawm peb lub hom phiaj kev lag luam.

Thiab raws li qhov zoo nyiaj ntxiv, peb tau txais lub npe caching no, uas CPU tau ua haujlwm tiag tiag, vim tias nws tsis tas yuav ua haujlwm rau cov ntsiab lus. Thiab nyob ntawd, siv NGINX + Lua, peb tau siv ntau lub tswv yim siv tswv yim.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Piv txwv li, peb tuaj yeem sim nrog webp lossis jpeg nce qib (cov no yog cov qauv zoo niaj hnub), saib seb nws cuam tshuam rau kev tsheb, txiav txim siab qee yam, pab rau qee lub tebchaws, thiab lwm yam.; ua dynamic resize lossis qoob loo duab ntawm ya.

Qhov no yog ib qho zoo siv thaum, piv txwv li, koj muaj ib daim ntawv thov mobile uas qhia cov duab, thiab daim ntawv thov mobile tsis xav nkim tus neeg siv lub CPU ntawm kev thov ib daim duab loj thiab tom qab ntawd hloov nws mus rau qhov loj me txhawm rau thawb nws mus rau hauv. qhov pom. Peb tuaj yeem yooj yim dynamically qhia qee qhov tsis muaj nyob hauv UPport qhov xwm txheej URL, thiab cov duab cache yuav hloov pauv daim duab nws tus kheej. Raws li txoj cai, nws yuav xaiv qhov loj me uas peb lub cev muaj nyob rau ntawm lub disk, ze li sai tau rau qhov tau thov, thiab muag nws hauv cov chaw tshwj xeeb.

Los ntawm txoj kev, peb tau tshaj tawm cov yeeb yaj kiab kaw tseg ntawm tsib lub xyoos dhau los ntawm lub rooj sib tham ntawm cov neeg tsim khoom ntawm cov tshuab ua haujlwm siab. HighLoad ++. Saib, kawm, share thiab subscribe rau YouTube channel.

Peb kuj tuaj yeem ntxiv ntau cov khoom logic nyob ntawd. Piv txwv li, peb tuaj yeem ntxiv cov cim dej sib txawv uas siv URL tsis, peb tuaj yeem plooj, plooj lossis pixelate duab. Qhov no yog thaum peb xav qhia ib daim duab ntawm tus neeg, tab sis peb tsis xav qhia nws lub ntsej muag, qhov no ua haujlwm zoo, nws tau ua txhua yam ntawm no.

Peb tau txais dab tsi? Peb tau txais peb lub ntsiab lus ntawm qhov muaj, qhov ua kom yuam kev zoo, thiab tib lub sijhawm peb tsis muaj CPU tsis ua haujlwm ntawm cov tshuab no. Tam sim no nws tau dhau los ua qhov tseem ceeb dua li yav dhau los. Peb yuav tsum muab peb tus kheej muaj zog tsheb, tab sis nws tsim nyog.

Qhov no cuam tshuam qhov rov qab ntawm cov duab. Txhua yam ntawm no yog qhov tseeb thiab pom tseeb. Kuv xav tias kuv tsis pom Asmeskas, yuav luag txhua CDN ua haujlwm li no.

Thiab, feem ntau yuav, tus neeg mloog zoo yuav muaj lus nug: vim li cas ho tsis hloov txhua yam rau CDN? Nws yuav zoo ib yam; txhua tus CDNs niaj hnub tuaj yeem ua qhov no. Thiab muaj ntau qhov laj thawj.

Thawj yog cov duab.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov no yog ib qho ntawm cov ntsiab lus tseem ceeb ntawm peb cov infrastructure, thiab peb xav tau kev tswj xyuas ntau npaum li qhov ua tau. Yog tias qhov no yog qee yam kev daws teeb meem los ntawm tus neeg muag khoom thib peb, thiab koj tsis muaj hwj chim tshaj nws, nws yuav nyuaj heev rau koj nyob nrog nws thaum koj muaj cov ntaub ntawv loj, thiab thaum koj muaj qhov dej ntws loj heev. ntawm cov neeg siv thov.

Cia kuv muab piv txwv rau koj. Tam sim no, nrog peb cov kev tsim kho vaj tse, peb tuaj yeem, piv txwv li, nyob rau hauv rooj plaub ntawm qee qhov teeb meem lossis hauv av knocks, mus rau lub tshuab thiab mess ib ncig ntawm qhov ntawd, kuj hais lus. Peb tuaj yeem ntxiv cov kev sau ntawm qee qhov kev ntsuas uas peb tsuas yog xav tau, peb tuaj yeem sim qee yam, saib seb qhov no cuam tshuam li cas rau cov duab, thiab lwm yam. Tam sim no ntau cov txheeb cais tau raug sau rau ntawm pawg caching no. Thiab peb ib txwm saib nws thiab siv sijhawm ntev los tshawb txog qee qhov tsis txaus ntseeg. Yog tias nws nyob rau sab CDN, nws yuav nyuaj dua rau kev tswj hwm. Los yog, piv txwv li, yog tias muaj qee yam xwm txheej tshwm sim, peb paub tias muaj dab tsi tshwm sim, peb paub yuav ua li cas nrog nws thiab kov yeej nws. Nov yog thawj qhov xaus.

Qhov kev txiav txim thib ob kuj tseem yog keeb kwm, vim tias lub kaw lus tau tsim los ntev, thiab muaj ntau yam kev lag luam uas yuav tsum tau ua nyob rau theem sib txawv, thiab lawv tsis tas yuav haum rau CDN lub tswv yim.

Thiab lub ntsiab lus uas tom qab los ntawm yav dhau los yog

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov no yog vim hais tias ntawm cov duab caches peb muaj ntau cov ntsiab lus tshwj xeeb, uas tsis tuaj yeem muab ntxiv raws li qhov kev thov. Nws tsis zoo li CDN yuav ntxiv qee yam kev cai rau koj ntawm koj qhov kev thov. Piv txwv li, encrypting URLs yog tias koj tsis xav kom tus neeg siv tuaj yeem hloov qee yam. Koj puas xav hloov URL ntawm tus neeg rau zaub mov thiab nkag mus rau nws, thiab tom qab ntawd xa qee qhov tsis zoo ntawm no.

Qhov kev txiav txim no qhia li cas? Hauv peb qhov xwm txheej, CDN tsis yog lwm txoj hauv kev zoo.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Thiab hauv koj cov ntaub ntawv, yog tias koj muaj qee yam kev xav tau ntawm kev lag luam, ces koj tuaj yeem yooj yim siv qhov kuv tau qhia koj tus kheej. Thiab qhov no yuav ua hauj lwm zoo kawg nkaus nrog ib tug zoo xws li load profile.

Tab sis yog tias koj muaj qee yam kev daws teeb meem, thiab txoj haujlwm tsis meej heev, koj tuaj yeem nqa CDN yam tsis muaj kev nyab xeeb kiag li. Lossis yog tias lub sijhawm thiab cov peev txheej tseem ceeb rau koj tshaj li kev tswj hwm.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Thiab niaj hnub CDNs muaj yuav luag txhua yam uas kuv tau qhia rau koj txog tam sim no. Tsuas yog ntxiv lossis rho tawm qee qhov nta.

Qhov no yog hais txog kev muab cov duab.

Cia peb mus tom ntej me ntsis hauv peb qhov kev rov qab los thiab tham txog kev khaws cia.

2013 twb dhau lawm.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Caching servers tau ntxiv, teeb meem kev ua haujlwm tau ploj mus. Txhua yam zoo. Dataset yog loj hlob. Raws li xyoo 2013, peb muaj txog 80 servers txuas nrog kev cia, thiab txog 40 caching ib leeg hauv txhua DC. Qhov no yog 560 terabytes ntawm cov ntaub ntawv ntawm txhua DC, i.e. txog ib tug petabyte nyob rau hauv tag nrho.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Thiab nrog kev loj hlob ntawm dataset, cov nqi khiav lag luam pib nce siab. Qhov no txhais li cas?

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Hauv daim duab no uas tau kos - nrog SAN, nrog cov tshuab thiab caches txuas nrog nws - muaj ntau cov ntsiab lus tsis ua haujlwm. Yog tias peb twb tau daws qhov tsis ua haujlwm ntawm caching servers ua ntej, txhua yam yog ntau dua lossis tsawg dua kev kwv yees thiab nkag siab, tab sis nyob rau sab cia txhua yam yog qhov phem dua.

Ua ntej, Chaw Cia Chaw Network (SAN) nws tus kheej, uas tuaj yeem ua tsis tiav.

Qhov thib ob, nws txuas nrog ntawm optics mus rau qhov kawg tshuab. Tej zaum yuav muaj teeb meem nrog daim npav kho qhov muag thiab lub txim hluav taws xob.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Tau kawg, tsis muaj ntau ntawm lawv ib yam li nrog SAN nws tus kheej, tab sis, txawm li cas los xij, cov no kuj yog cov ntsiab lus tsis ua haujlwm.

Tom ntej no yog lub tshuab nws tus kheej, uas txuas nrog rau kev cia. Nws kuj tuaj yeem ua tsis tiav.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Nyob rau hauv tag nrho, peb muaj peb lub ntsiab lus tsis ua hauj lwm.

Tsis tas li ntawd, ntxiv rau cov ntsiab lus tsis ua haujlwm, muaj kev saib xyuas hnyav ntawm kev cia nws tus kheej.

Qhov no yog ib tug complex multi-component system, thiab systems engineers yuav muaj ib tug nyuaj lub sij hawm ua hauj lwm nrog nws.

Thiab qhov kawg, qhov tseem ceeb tshaj plaws. Yog tias qhov tsis ua haujlwm tshwm sim ntawm ib qho ntawm peb lub ntsiab lus no, peb muaj qhov tsis zoo ntawm cov neeg siv cov ntaub ntawv poob vim tias cov ntaub ntawv kaw lus yuav poob.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Cia peb hais tias peb cov ntaub ntawv tau tawg. Ua ntej, nws rov qab siv sijhawm ntev - nws tuaj yeem siv sijhawm ib lub lim tiam nrog cov ntaub ntawv loj. Thiab qhov thib ob, thaum kawg peb yuav feem ntau yuav xaus nrog ib pawg ntawm cov ntaub ntawv tsis nkag siab uas yuav xav tau ua ke ua ke rau hauv cov neeg siv duab. Thiab peb pheej hmoo poob cov ntaub ntawv. Qhov kev pheej hmoo siab heev. Thiab ntau qhov xwm txheej zoo li no tshwm sim, thiab qhov teeb meem ntau tshwm sim hauv cov saw hlau tag nrho, qhov kev pheej hmoo siab dua.

Ib yam dab tsi yuav tsum tau ua txog qhov no. Thiab peb txiav txim siab tias peb tsuas yog yuav tsum tau backup cov ntaub ntawv. Qhov no yog qhov tseeb kev daws teeb meem thiab ib qho zoo. Peb tau ua dab tsi?

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov no yog qhov peb cov neeg rau zaub mov zoo li thaum nws tau txuas nrog kev cia ua ntej. Qhov no yog ib feem tseem ceeb, nws tsuas yog ib lub cuab yeej thaiv uas ua tau sawv cev rau lub mount rau tej thaj chaw deb cia ntawm optics.

Peb nyuam qhuav ntxiv ntu thib ob.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb muab tso rau qhov thib ob cia ntawm nws (zoo hmoo, nws tsis yog qhov kim ntawm cov nyiaj), thiab hu ua nws qhov kev faib tawm. Nws tseem txuas nrog ntawm optics thiab nyob ntawm tib lub tshuab. Tab sis peb yuav tsum ua cas synchronize cov ntaub ntawv ntawm lawv.

Ntawm no peb tsuas yog ua ib qho asynchronous queue nyob ze.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Nws tsis yog tibneeg hu tauj coob. Peb paub tias peb tsis muaj cov ntaub ntawv txaus. Ib kab yog ib lub rooj hauv MySQL uas cov kab zoo li "koj yuav tsum tau rov qab cov duab no" tau sau. Nrog ib qho kev hloov pauv lossis upload, peb luam tawm los ntawm qhov tseem ceeb muab faib rau thaub qab siv asynchronous lossis tsuas yog qee tus neeg ua haujlwm tom qab.

Thiab yog li peb ib txwm muaj ob ntu sib xws. Txawm hais tias ib feem ntawm qhov system no tsis ua haujlwm, peb tuaj yeem hloov pauv qhov kev faib tseem ceeb nrog kev thaub qab, thiab txhua yam yuav ua haujlwm ntxiv.

Tab sis vim qhov no, kev nyeem ntawv nce ntau heev, vim ... Ntxiv rau cov neeg siv khoom uas tau nyeem los ntawm ntu tseem ceeb, vim tias lawv xub saib daim duab nyob ntawd (nws tsis ntev los no muaj), thiab tom qab ntawd nrhiav nws ntawm qhov thaub qab, yog tias lawv tsis pom nws (tab sis NGINX tsuas yog ua qhov no), peb lub cev kuj yog ib tug ntxiv backup tam sim no nyeem los ntawm lub ntsiab muab faib. Nws tsis yog hais tias qhov no yog lub raj mis, tab sis kuv tsis xav kom nce lub load, qhov tseem ceeb, ib yam li ntawd.

Thiab peb ntxiv ib qho thib peb disk, uas yog ib qho me me SSD, thiab hu ua nws tsis muaj.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Nws ua haujlwm li cas tam sim no.

Tus neeg siv uploads ib daim duab mus rau qhov tsis, ces ib qho kev tshwm sim muab pov rau hauv kab qhia tias nws yuav tsum tau muab luam rau hauv ob seem. Nws tau theej, thiab daim duab nyob rau ntawm qhov tsis tuaj yeem rau qee lub sijhawm (hais, ib hnub), thiab tsuas yog tom qab ntawd raug tshem tawm ntawm qhov ntawd. Qhov no zoo heev txhim kho cov neeg siv kev paub, vim hais tias tus neeg siv uploads ib daim duab, raws li txoj cai, thov tam sim ntawd pib ua raws, los yog nws nws tus kheej kho nplooj ntawv thiab refreshed nws. Tab sis nws tag nrho yog nyob ntawm daim ntawv thov uas ua rau upload.

Los yog, piv txwv li, lwm tus neeg uas nws pib qhia nws tus kheej tam sim ntawd xa cov lus thov tom qab daim duab no. Nws tseem tsis tau nyob hauv lub cache; thawj qhov kev thov tshwm sim sai heev. Yeej tseem zoo ib yam li los ntawm daim duab cache. Kev khaws cia qeeb tsis koom nrog qhov no kiag li. Thiab thaum ib hnub tom qab nws tau purged, nws twb yog cached ntawm peb caching txheej, los yog, feem ntau yuav, tsis muaj leej twg xav tau nws ntxiv lawm. Cov. Cov neeg siv kev paub ntawm no tau loj hlob zoo heev vim qhov yooj yim manipulations.

Zoo, thiab qhov tseem ceeb tshaj plaws: peb nres poob cov ntaub ntawv.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Cia li hais tias peb nres muaj peev xwm poob cov ntaub ntawv, vim peb yeej tsis poob nws. Tab sis muaj xwm txheej. Peb pom tias qhov kev daws teeb meem no yog, ntawm chav kawm, zoo, tab sis nws yog me ntsis zoo li smoothing tawm cov tsos mob ntawm qhov teeb meem, es tsis txhob daws nws kiag li. Thiab qee qhov teeb meem tseem nyob ntawm no.

Ua ntej, qhov no yog lub ntsiab lus ntawm kev ua tsis tiav nyob rau hauv daim ntawv ntawm lub cev tus tswv nws tus kheej uas tag nrho cov tshuab no khiav; nws tsis tau ploj mus.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov thib ob, tseem muaj teeb meem nrog SANs, lawv cov kev saib xyuas hnyav, thiab lwm yam. Nws tsis yog tias nws yog qhov tseem ceeb, tab sis kuv xav sim ua qee yam nyob yam tsis muaj nws.

Thiab peb tau ua qhov thib peb version (qhov tseeb, qhov thib ob hauv qhov tseeb) - qhov tshwj xeeb version. Nws zoo li cas?

Nov yog qhov nws yog -

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb cov teeb meem tseem ceeb yog nrog qhov tseeb tias qhov no yog tus tswv tsev lub cev.

Ua ntej, peb tab tom tshem SANs vim peb xav sim, peb xav sim cov hard drive hauv zos xwb.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov no twb yog 2014-2015, thiab lub sijhawm ntawd qhov xwm txheej nrog disks thiab lawv lub peev xwm hauv ib tus tswv tsev tau zoo dua. Peb txiav txim siab vim li cas ho tsis sim.

Thiab tom qab ntawd peb tsuas yog muab peb qhov kev faib tawm thaub qab thiab lub cev hloov mus rau lub tshuab cais.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Yog li, peb tau txais daim duab no. Peb muaj ob lub tsheb uas khaws cov ntaub ntawv tib yam. Lawv rov qab ua ke tag nrho thiab synchronize cov ntaub ntawv hauv lub network los ntawm ib qho asynchronous queue hauv tib MySQL.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Vim li cas qhov no ua haujlwm zoo vim peb muaj ob peb cov ntaub ntawv. Cov. yog tias kev sau ntawv tau muab piv rau kev nyeem ntawv, tej zaum peb yuav muaj qee yam kev sib koom tes hauv network thiab teeb meem. Muaj kev sau ntawv me me, nyeem ntau heev - txoj kev no ua haujlwm zoo, i.e. Peb tsis tshua luam cov duab ntawm ob lub servers no.

Qhov no ua haujlwm li cas, yog tias koj saib me ntsis ntxiv hauv kev nthuav dav.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Upload. Lub balancer tsuas xaiv random hosts nrog ib khub thiab uploads rau nws. Tib lub sijhawm, nws ib txwm kuaj xyuas kev noj qab haus huv thiab ua kom lub tsheb tsis poob. Cov. nws uploads cov duab tsuas yog mus rau ib tug neeg rau zaub mov nyob, thiab tom qab ntawd los ntawm ib qho asynchronous kab nws tau theej tag nrho rau nws cov neeg nyob ze. Nrog upload txhua yam yog yooj yim heev.

Txoj hauj lwm nyuaj me ntsis.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Lua tau pab peb ntawm no, vim tias nws tuaj yeem nyuaj ua qhov kev xav ntawm vanilla NGINX. Peb ua ntej thov rau thawj tus neeg rau zaub mov, saib seb daim duab puas nyob ntawd, vim tias muaj peev xwm nws tuaj yeem rub tawm, piv txwv li, rau ib tus neeg nyob ze, tab sis tseem tsis tau tuaj txog ntawm no. Yog tias daim duab nyob ntawd, qhov zoo. Peb tam sim muab nws rau tus neeg siv khoom thiab, tejzaum nws, cache nws.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Yog tias nws tsis nyob ntawd, peb tsuas yog thov rau peb cov neeg nyob ze thiab tau lees tias tau txais los ntawm qhov ntawd.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov ntawd. dua peb tuaj yeem hais tias: tej zaum yuav muaj teeb meem nrog kev ua tau zoo, vim tias muaj kev mus ncig tas li - daim duab tau muab tso tawm, nws tsis nyob ntawm no, peb tab tom ua ob qhov kev thov es tsis yog ib qho, qhov no yuav tsum ua haujlwm maj mam.

Hauv peb qhov xwm txheej, qhov no tsis ua haujlwm qeeb.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb sau ib pawg ntawm cov kev ntsuas ntawm qhov system no, thiab tus nqi ntse ntawm cov txheej txheem no yog kwv yees li 95%. Cov. Lub lag luam ntawm qhov thaub qab no yog me me, thiab vim qhov no peb yuav luag lav, tom qab daim duab tau muab tso rau, peb yuav coj nws thawj zaug thiab tsis tas yuav mus qhov twg ob zaug.

Yog li dab tsi ntxiv peb tau txais uas yog qhov txias tiag?

Yav dhau los, peb muaj lub ntsiab thaub qab muab faib, thiab peb nyeem los ntawm lawv ua ntu zus. Cov. Peb ib txwm tshawb nrhiav ntawm qhov tseem ceeb ua ntej, thiab tom qab ntawd ntawm qhov thaub qab. Nws yog ib qho kev txav mus los.

Tam sim no peb siv kev nyeem ntawv los ntawm ob lub tshuab ib zaug. Peb faib kev thov siv Round Robin. Hauv ib feem me me ntawm cov xwm txheej peb ua ob qhov kev thov. Tab sis zuag qhia tag nrho, peb tam sim no muaj ob zaug nyeem ntawv ntau npaum li peb tau ua dhau los. Thiab cov load tau txo qis heev ntawm ob qho tib si ntawm cov tshuab xa khoom thiab ncaj qha rau ntawm lub tshuab cia, uas peb kuj muaj nyob rau lub sijhawm ntawd.

Raws li kev ua txhaum cai. Qhov tseeb, qhov no yog qhov peb feem ntau tawm tsam rau. Nrog kev zam txim txhaum, txhua yam ua tau zoo ntawm no.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Ib lub tsheb tawg.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Tsis muaj teeb meem! Tus kws ua haujlwm hauv lub cev yuav tsis sawv thaum hmo ntuj, nws yuav tos txog thaum sawv ntxov, tsis muaj dab tsi phem yuav tshwm sim.

Yog hais tias txawm tias lub tshuab no ua tsis tiav, lub queue tsis muaj kev txiav txim, tsis muaj teeb meem ib yam, lub cav yuav tsuas yog sau ua ntej ntawm lub tshuab nyob, thiab tom qab ntawd nws yuav muab ntxiv rau hauv kab, thiab tom qab ntawd mus rau lub tsheb uas yuav. mus ua haujlwm tom qab qee lub sijhawm.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Tib yam nrog kev tu. Peb tsuas yog tua ib qho ntawm cov tshuab, manually rub tawm ntawm txhua lub pas dej, nws nres tau txais kev khiav tsheb, peb ua qee yam kev saib xyuas, peb hloov qee yam, ces peb rov qab mus rau qhov kev pabcuam, thiab qhov thaub qab no tau nrawm heev. Cov. ib hnub twg, lub sij hawm downtime ntawm ib lub tsheb catches li ob peb feeb. Qhov no yeej tsawg heev. Nrog kev zam txim txhaum, kuv hais dua, txhua yam yog txias ntawm no.

Cov lus xaus dab tsi tuaj yeem rub los ntawm cov txheej txheem rov ua dua no?

Peb tau txais kev zam txim txhaum.

Yooj yim rau siv. Txij li thaum lub tshuab muaj cov hard drive hauv zos, qhov no yooj yim dua los ntawm kev ua haujlwm ntawm kev pom rau cov engineers uas ua haujlwm nrog nws.

Peb tau txais kev nyeem ntawv ob npaug.

Qhov no yog ib qho txiaj ntsig zoo heev ntxiv rau qhov ua txhaum cai.

Tab sis kuj muaj teeb meem. Tam sim no peb muaj ntau txoj kev loj hlob ntawm ib co nta muaj feem xyuam rau qhov no, vim hais tias lub system tau dhau los ua 100% nws thiaj li zoo ib yam.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Peb yuav tsum hais, hauv qee txoj haujlwm keeb kwm yav dhau los, niaj hnub xav tias: "Peb tab tom khiav dab tsi tam sim no?", "Puas muaj daim duab tam sim no ntawm no?" lwm. Qhov no, ntawm chav kawm, yog tag nrho cov qhwv, thiab rau cov programmer uas sau kev lag luam logic, nws yog pob tshab. Tab sis, txawm li cas los xij, txheej txheej loj loj no tau tshwm sim. Tab sis peb npaj siab muab qhov no los pauv rau cov khoom zoo uas peb tau txais los ntawm nws.

Thiab ntawm no dua qee qhov kev tsis sib haum xeeb tshwm sim.

Kuv tau hais thaum pib tias khaws txhua yam ntawm cov hard drive hauv zos tsis zoo. Thiab tam sim no kuv hais tias peb nyiam nws.

Yog lawm, lub sijhawm dhau los qhov xwm txheej tau hloov pauv ntau, thiab tam sim no txoj hauv kev no muaj ntau yam zoo. Ua ntej, peb tau txais kev ua haujlwm yooj yim dua.

Qhov thib ob, nws muaj txiaj ntsig ntau dua, vim tias peb tsis muaj cov tswj tsis siv neeg no lossis kev sib txuas rau cov txee disk.

Muaj cov tshuab loj loj nyob ntawd, thiab cov no tsuas yog ob peb lub disks uas tau sib sau ua ke ntawm no ntawm lub tshuab mus rau hauv kev tawm tsam.

Tab sis kuj muaj qhov tsis zoo.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov no yog kwv yees li 1,5 npaug ntau dua li siv SANs txawm tias hnub no tus nqi. Yog li ntawd, peb txiav txim siab tsis ua siab loj hloov peb tag nrho pawg loj rau hauv lub tsheb nrog lub zos hard drives thiab txiav txim siab tawm hauv hybrid tov.

Ib nrab ntawm peb cov tshuab ua hauj lwm nrog hard drives (zoo, tsis yog ib nrab - tej zaum 30 feem pua). Thiab tus so yog cov tsheb qub uas tau siv los ua thawj lub tswv yim tshwj xeeb. Peb tsuas yog remounted lawv, txij li thaum peb tsis xav tau cov ntaub ntawv tshiab lossis lwm yam, peb tsuas yog txav cov mounts los ntawm ib tus tswv tsev mus rau ob.

Thiab tam sim no peb muaj cov khoom loj ntawm kev nyeem ntawv, thiab peb nthuav nws. Yog hais tias ua ntej peb mounted ib tug cia ntawm ib lub tshuab, tam sim no peb mount plaub, piv txwv li, ntawm ib tug khub. Thiab nws ua haujlwm zoo.

Cia peb piav qhia luv luv ntawm qhov peb ua tiav, peb tau tawm tsam dab tsi, thiab seb peb ua tiav.

Cov txiaj ntsim tau los

Peb muaj cov neeg siv - ntau li 33 lab.

Peb muaj peb lub ntsiab lus ntawm lub xub ntiag - Prague, Miami, Hong Kong.

Lawv muaj ib txheej caching, uas muaj cov tsheb nrog ceev ceev hauv zos disks (SSDs), uas yooj yim machinery los ntawm NGINX, nws access.log thiab Python daemons khiav, uas ua txhua yam no thiab tswj lub cache.

Yog tias koj xav tau, koj nyob hauv koj qhov project, yog tias cov duab tsis yog qhov tseem ceeb rau koj raws li lawv yog rau peb, lossis yog tias kev tswj hwm kev lag luam tawm mus rau kev loj hlob ceev thiab cov nqi peev txheej yog nyob rau lwm qhov kev taw qhia rau koj, ces koj tuaj yeem hloov pauv yam xyuam xim. nrog CDN, niaj hnub CDNs lawv ua tau zoo.

Tom ntej no los ntawm cov txheej txheem cia, uas peb muaj pawg ntawm cov khub ntawm cov cav tov uas rov qab ib leeg, cov ntaub ntawv tau asynchronously theej ntawm ib qho mus rau lwm qhov thaum twg lawv hloov.

Ntxiv mus, qee qhov ntawm cov tshuab no ua haujlwm nrog cov hard drive hauv zos.

Qee lub tshuab no txuas nrog SANs.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Thiab, ntawm qhov tod tes, nws yooj yim dua los siv thiab ua haujlwm me ntsis ntxiv, ntawm qhov tod tes, nws yooj yim nyob rau hauv cov nqe lus ntawm kev tso kawm ceev thiab tus nqi ib gigabyte.

Qhov no yog ib tug luv luv lub ntsiab lus ntawm architecture ntawm dab tsi peb tau txais thiab yuav ua li cas nws tag nrho cov tsim.

Ob peb lub tswv yim ntxiv los ntawm tus thawj coj, yooj yim heev.

Ua ntej, yog tias koj dheev txiav txim siab tias koj yuav tsum tau kho txhua yam hauv koj cov duab kos duab, ntsuas ua ntej, vim tias tej zaum tsis muaj dab tsi yuav tsum tau txhim kho.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Cia kuv muab piv txwv rau koj. Peb muaj ib pawg ntawm cov tshuab uas xa cov duab los ntawm cov ntawv txuas hauv kev sib tham, thiab cov tswv yim tau ua haujlwm nyob rau ntawd txij li xyoo 2009, thiab tsis muaj leej twg raug kev txom nyem los ntawm nws. Txhua tus zoo, txhua tus nyiam txhua yam.

Txhawm rau ntsuas, ua ntej dai ib pawg ntawm cov ntsuas, saib lawv, thiab tom qab ntawd txiav txim siab yam koj tsis txaus siab rau thiab qhov yuav tsum tau txhim kho. Txhawm rau ntsuas qhov no, peb muaj lub cuab yeej txias hu ua Pinba.

Nws tso cai rau koj los sau cov ntaub ntawv ntxaws ntxaws los ntawm NGINX rau txhua qhov kev thov thiab cov lus teb cov lej, thiab faib sijhawm - txhua yam koj xav tau. Nws muaj kev khi rau txhua hom kev ntsuas sib txawv, thiab tom qab ntawd koj tuaj yeem saib txhua yam zoo nkauj.

Ua ntej peb ntsuas nws, ces peb txhim kho nws.

Ntxiv mus. Peb ua kom zoo nyeem ntawv nrog cache, sau nrog sharding, tab sis qhov no yog qhov pom tseeb.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Ntxiv mus. Yog tias koj nyuam qhuav pib tsim koj lub cev, ces nws yog qhov zoo dua los ua cov duab ua cov ntaub ntawv tsis hloov. Vim tias koj tam sim ntawd poob tag nrho cov chav kawm ntawm cov teeb meem nrog cache invalidation, nrog li cas cov logic yuav tsum nrhiav qhov tseeb version ntawm daim duab, thiab lwm yam.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Cia peb hais tias koj uploaded ib puas, ces tig nws, ua kom nws yog ib tug txawv cov ntaub ntawv. Cov. tsis tas yuav xav tias: tam sim no kuv yuav txuag chaw me ntsis, sau rau tib cov ntaub ntawv, hloov cov version. Qhov no ib txwm tsis ua haujlwm zoo thiab ua rau mob taub hau ntau tom qab.

Cov ntsiab lus tom ntej. Hais txog resize ntawm ya.

Yav dhau los, thaum cov neeg siv upload ib daim duab, peb tam sim ntawd txiav tag nrho pawg ntawm qhov ntau thiab tsawg rau txhua lub sijhawm, rau cov neeg siv sib txawv, thiab lawv txhua tus nyob hauv disk. Tam sim no peb tau tso tseg qhov no.

Peb tsuas tshuav peb qhov loj me: me, nruab nrab thiab loj. Peb tsuas yog downscale txhua yam los ntawm qhov loj me uas yog tom qab ib qho uas tau nug rau peb ntawm Uport, peb tsuas yog ua tus downscale thiab muab rau tus neeg siv.

Lub CPU ntawm caching txheej ntawm no hloov tawm mus yuav pheej yig dua yog tias peb pheej rov tsim dua qhov ntau thiab tsawg ntawm txhua qhov chaw cia. Cia peb hais tias peb xav ntxiv ib qho tshiab, qhov no yuav siv sij hawm ib hlis - khiav ib tsab ntawv nyob txhua qhov chaw uas yuav ua txhua yam no kom huv si, tsis muaj kev puas tsuaj rau pawg. Cov. Yog tias koj muaj sijhawm los xaiv tam sim no, nws yog qhov zoo dua los ua kom tsawg li tsawg lub cev raws li qhov ua tau, tab sis yog li ntawd tsawg kawg qee qhov kev faib tawm yog, hais, peb. Thiab txhua yam ntxiv tuaj yeem hloov pauv yooj yim ntawm ya siv cov khoom npaj ua tiav. Nws yog txhua yam yooj yim heev thiab siv tau tam sim no.

Thiab incremental asynchronous backup yog zoo.

Raws li peb qhov kev coj ua tau pom, qhov txheej txheem no ua haujlwm zoo nrog kev ncua sijhawm luam tawm ntawm cov ntaub ntawv hloov pauv.

Architecture rau khaws thiab sib qhia cov duab hauv Badoo

Qhov kawg taw tes kuj pom tseeb. Yog tias koj qhov kev tsim kho vaj tse tsis muaj teeb meem tam sim no, tab sis muaj qee yam uas tuaj yeem tawg, nws yuav tawg thaum nws dhau los me ntsis. Yog li ntawd, nws yog qhov zoo dua los xav txog qhov no ua ntej thiab tsis muaj teeb meem nrog nws. Qhov ntawd yog txhua yam kuv xav hais.

Muaj mob

Β» ib 0r201
Β» Badoo Blog

Daim ntawv tshaj tawm no yog cov ntawv sau tseg ntawm ib qho kev hais lus zoo tshaj plaws ntawm lub rooj sib tham ntawm cov neeg tsim khoom ntawm cov khoom siv siab HighLoad ++. Muaj tsawg dua ib lub hlis mus txog rau lub rooj sib tham HighLoad ++ 2017.

Peb twb tau npaj lawm Lub rooj sablaj program, lub sij hawm tam sim no tab tom ua kom nquag plias.

Xyoo no peb txuas ntxiv mus tshawb txog lub ntsiab lus ntawm architectures thiab scaling:

Peb kuj siv qee yam ntawm cov ntaub ntawv no hauv peb chav kawm online ntawm kev tsim cov tshuab ua haujlwm siab HighLoad.Qhia yog cov saw tshwj xeeb uas xaiv cov ntawv, cov khoom, cov ntaub ntawv, cov yeeb yaj kiab. Peb phau ntawv kawm twb muaj ntau dua 30 yam khoom tshwj xeeb. Txuas!

Tau qhov twg los: www.hab.com

Ntxiv ib saib