I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Artem Denisov ( bo0rsh201, Badoo)

I-Badoo iyindawo enkulu kunazo zonke yokuqomisana emhlabeni. Njengamanje sinabasebenzisi ababhalisiwe abangaba yizigidi ezingama-330 emhlabeni wonke. Kodwa okubaluleke kakhulu kumongo wengxoxo yethu namuhla ukuthi sigcina cishe ama-petabytes angu-3 ezithombe zabasebenzisi. Nsuku zonke abasebenzisi bethu balayisha cishe izithombe ezisha eziyizigidi ezingu-3,5, futhi umthwalo wokufunda umayelana Izicelo eziyizinkulungwane ezingama-80 ngomzuzwana. Lokhu kuningi ku-backend yethu, futhi ngezinye izikhathi kuba nobunzima ngalokhu.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Ngizokhuluma ngokuklama kwalesi simiso, esigcina futhi sithumele izithombe ngokujwayelekile, futhi ngizoyibuka ngombono womthuthukisi. Kuzoba nombono omfishane wokuthi ithuthuke kanjani, lapho ngizoveza khona amaphuzu abalulekile, kodwa ngizokhuluma nje ngokuningiliziwe mayelana nezixazululo esizisebenzisayo njengamanje.

Manje ake siqale.


Njengoba ngishilo, lokhu kuzoba yi-retrospective, futhi ukuze sikuqale endaweni ethile, ake sithathe isibonelo esivame kakhulu.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Sinomsebenzi ojwayelekile, sidinga ukwamukela, ukugcina nokuthumela izithombe zomsebenzisi. Kuleli fomu, umsebenzi ujwayelekile, singasebenzisa noma yini:

  • isitoreji samafu sesimanje,
  • isisombululo sebhokisi, okukhona futhi okuningi manje;
  • Singasetha imishini eminingana esikhungweni sethu sedatha futhi sibeke ama-hard drive amakhulu kuyo futhi sigcine izithombe lapho.

I-Badoo ngokomlando - kokubili manje nangaleso sikhathi (ngesikhathi lapho isencane) - ihlala kumaseva ayo, ngaphakathi kwama-DC ethu. Ngakho-ke, le nketho ibisilungele.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Sisanda kuthatha imishini eminingana, sayibiza ngokuthi "izithombe", futhi sathola iqoqo eligcina izithombe. Kodwa kubonakala sengathi kukhona okushodayo. Ukuze konke lokhu kusebenze, sidinga ukunquma ngandlela thize ukuthi yimuphi umshini esizogcina ukuthi yiziphi izithombe. Futhi nalapha, asikho isidingo sokuvula iMelika.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Sengeza inkambu ethile kwisitoreji sethu ngolwazi mayelana nabasebenzisi. Lona kuzoba ukhiye wokwaba. Thina, siyibize ngokuthi i-place_id, futhi umazisi wendawo ukhomba indawo lapho izithombe zomsebenzisi zigcinwa khona. Senza amamephu.

Esigabeni sokuqala, lokhu kungenziwa ngisho ngesandla - sithi isithombe salo msebenzisi esinendawo enjalo sizofika kuseva enjalo. Ngenxa yale mephu, sihlala sazi uma umsebenzisi elayisha isithombe, ukuthi asigcine kuphi, futhi siyazi ukuthi singasinikeza kuphi.

Lolu wuhlelo olungasho lutho, kodwa lunezinzuzo ezibalulekile. Okokuqala ukuthi ilula, njengoba ngishilo, futhi okwesibili ukuthi ngale ndlela singakala kalula ngokuvundlile ngokumane silethe izimoto ezintsha futhi sizifake ebalazweni. Awudingi ukwenza enye into.

Kwaba njalo kithi isikhathi esithile.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Lokhu kwakungonyaka wezi-2009. Balethe izimoto, zadiliva...

Futhi ngesinye isikhathi saqala ukuqaphela ukuthi lolu hlelo lunezinkinga ezithile. Yiziphi izinkinga?

Okokuqala, kukhona umthamo olinganiselwe. Asikwazi ukufaka ama-hard drive amaningi kuseva eyodwa ebonakalayo ngendlela esingathanda ngayo. Futhi lokhu sekuyinkinga ethile ngokuhamba kwesikhathi kanye nokukhula kwedathasethi.

Futhi okwesibili. Lokhu ukucushwa okungavamile kwemishini, njengoba imishini enjalo kunzima ukuyisebenzisa kabusha kwamanye amaqoqo; icacile, i.e. kufanele babe buthakathaka ekusebenzeni, kodwa ngesikhathi esifanayo ne-hard drive enkulu.

Konke lokhu bekungoka-2009, kodwa, ngokomthetho, lezi zidingo zisabalulekile nanamuhla. Sine-retrospective, ngakho-ke ngo-2009 yonke into yayiyimbi kakhulu ngalokhu.

Futhi iphuzu lokugcina yinani.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Intengo yayikhuphuke kakhulu ngaleso sikhathi, futhi kwakudingeka sibheke ezinye izindlela. Labo. besidinga ukuthi ngandlela thile sisebenzise kangcono kokubili isikhala sezikhungo zedatha kanye namaseva aphathekayo lapho konke lokhu kutholakala khona. Futhi onjiniyela bethu besistimu baqala ucwaningo olukhulu lapho babuyekeza khona inqwaba yezinketho ezahlukene. Baphinde babheka izinhlelo zamafayela ezihlanganisiwe ezifana nePolyCeph neLuster. Kube nezinkinga zokusebenza nokusebenza kanzima. Benqaba. Sizamile ukukhweza yonke idathasethi nge-NFS emotweni ngayinye ukuze ngandlela thize siyikhuphule. Ukufunda nakho akuhambanga kahle, sizame izixazululo ezahlukene kubathengisi abahlukene.

Futhi ekugcineni, sazinza ngokusebenzisa lokho okubizwa ngokuthi Inethiwekhi Yendawo Yesitoreji.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Lawa ama-SHD amakhulu aklanyelwe ngokukhethekile ukugcina inani elikhulu ledatha. Amashalofu anamadiski afakwe emishinini yokugcina yokukhipha i-optical. Lokho. sinezinhlobo ezithile zemishini, emincane kakhulu, kanye nalawa ma-SHD, asobala ekuthumeleni kwethu ingqondo, i.e. ukuze nginx yethu noma omunye umuntu athumele izicelo zalezi zithombe.

Lesi sinqumo saba nezinzuzo ezisobala. Lena yi-SHD. Kuhloswe ngayo ukugcina izithombe. Lokhu kusebenza ishibhile kunokumane kuhlomise imishini ngama-hard drive.

Ukuhlanganisa okwesibili.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Lokhu kungukuthi umthamo uye waba mkhulu kakhulu, i.e. singakwazi ukuthwala isitoreji esiningi ngevolumu encane kakhulu.

Kodwa kwakukhona nokubi okwavela ngokushesha okukhulu. Njengoba inani labasebenzisi nomthwalo kulolu hlelo lukhula, izinkinga zokusebenza zaqala ukuvela. Futhi inkinga lapha isobala - noma iyiphi i-SHD eklanyelwe ukugcina izithombe eziningi ngevolumu encane, njengomthetho, ihlushwa ukufunda okujulile. Lokhu kuyiqiniso kunoma yisiphi isitoreji samafu nanoma yini enye. Manje asinaso isitoreji esikahle esingaba nesikali, ungafaka noma yini kuso, futhi singakubekezelela ukufundwa kahle kakhulu. Ikakhulukazi ukufunda okuvamile.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Njengoba kunjalo ngezithombe zethu, ngoba izithombe zicelwa ngokungahambisani, futhi lokhu kuzothinta kakhulu ukusebenza kwazo.

Ngisho nangokwezibalo zanamuhla, uma sithola endaweni ethile ngaphezu kwe-500 RPS yezithombe emshinini lapho isitoreji sixhunywe khona, izinkinga sezivele ziqala. Futhi bekukubi ngokwenele kithi, ngoba inani labasebenzisi liyakhula, izinto zizoba zimbi kakhulu. Lokhu kudinga ukuthuthukiswa ngandlela thile.

Ukuze sandise, sanquma ngaleso sikhathi, ngokusobala, ukubheka iphrofayili yomthwalo - yini, ngokuvamile, eyenzekayo, yini okudingeka yenziwe kahle.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Futhi lapha yonke into idlala ezandleni zethu.

Sengishilo kakade kusilayidi sokuqala: sinezicelo zokufunda eziyinkulungwane ezingama-80 ngomzuzwana ngokulayishwa kwezigidi ezingu-3,5 kuphela ngosuku. Okusho ukuthi, lokhu umehluko wemiyalo emithathu yobukhulu. Kusobala ukuthi ukufunda kudinga ukwenziwa ngcono futhi kusobala ukuthi kanjani.

Kukhona elinye iphuzu elincane. Imininingwane yesevisi iwukuthi umuntu ubhalisa, ulayishe isithombe, bese uqala ukubheka abanye abantu, njengabo, futhi uboniswa ngenkuthalo kwabanye abantu. Ube esethola umngane womshado noma akamtholi umngane womshado, kuya ngokuthi kwenzeka kanjani, bese eyeka ukusebenzisa inkonzo okwesikhashana. Ngalesi sikhathi, lapho eyisebenzisa, izithombe zakhe zishisa kakhulu - ziyadingeka, abantu abaningi bazibuka. Ngokushesha nje lapho eyeka ukwenza lokhu, ngokushesha uyayeka ukuchayeka kwabanye abantu njengoba ayekade enza ngaphambili, futhi izithombe zakhe cishe azikaze zicelwe.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Labo. Sinedathasethi encane kakhulu eshisayo. Kodwa ngesikhathi esifanayo kunezicelo eziningi ngaye. Futhi isisombululo esisobala ngokuphelele lapha ukufaka inqolobane.

Inqolobane ene-LRU izoxazulula zonke izinkinga zethu. Senzani?

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Sengeza enye encane uma kuqhathaniswa phambi kweqoqo lethu elikhulu elinesitoreji, elibizwa ngokuthi ama-photocaches. Lokhu empeleni ummeleli wenqolobane nje.

Isebenza kanjani ngaphakathi? Nangu umsebenzisi wethu, nasi isitoreji. Konke kuyafana nakuqala. Sengezani phakathi?

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Kumane kuwumshini onediski yendawo ebonakalayo, esheshayo. Lokhu nge-SSD, isibonelo. Futhi uhlobo oluthile lwenqolobane yendawo lugcinwe kule diski.

Ibukeka kanjani? Umsebenzisi uthumela isicelo sesithombe. I-NGINX ibheka kuqala kunqolobane yendawo. Uma kungenjalo, vele u-proxy_pass kusitoreji sethu, landa isithombe kusuka lapho futhi usinikeze umsebenzisi.

Kodwa lena iphambene kakhulu futhi akucaci ukuthi kwenzekani ngaphakathi. Isebenza into efana nale.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Inqolobane ihlukaniswe ngokunengqondo ibe izingqimba ezintathu. Uma ngithi "izingqimba ezintathu", lokhu akusho ukuthi kukhona uhlobo oluthile lwesistimu eyinkimbinkimbi. Cha, lezi zinkomba nje ezintathu ngokwemibandela ohlelweni lwefayela:

  1. Lesi isilondolozi lapho izithombe ezisanda kulanda zisuka kummeleli ziya.
  2. Lena inqolobane eshisayo egcina izithombe eziceliwe okwamanje.
  3. Nenqolobane ebandayo, lapho izithombe zikhishwa kancane kancane kunqolobane eshisayo uma izicelo ezimbalwa ziza kuzo.

Ukuze lokhu kusebenze, sidinga ukuphatha le cache ngandlela thile, sidinga ukuhlela kabusha izithombe ezikuyo, njll. Lokhu futhi kuyinqubo yakudala kakhulu.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

I-Nginx imane ibhalele i-RAMDisk access.log ngesicelo ngasinye, lapho ikhombisa khona indlela eya esithombeni esisebenzile njengamanje (indlela ehlobene, yebo), nokuthi iyiphi ukwahlukanisa enikezwe yona. Labo. ingase ithi "isithombe 1" bese kuba isigcinalwazi, noma inqolobane eshisayo, noma inqolobane ebandayo, noma ummeleli.

Kuye ngalokhu, sidinga ukunquma ngandlela-thile ukuthi senzeni ngesithombe.

Sine-daemon encane esebenza emshinini ngamunye ehlala ifunda lolu logi futhi igcina izibalo zokusetshenziswa kwezithombe ezithile enkumbulweni yayo.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Uvele aqoqe lapho, agcine izinto zokubala futhi ngezikhathi ezithile enze okulandelayo. Uhambisa izithombe eziceliwe ngenkuthalo, ezinezicelo eziningi, kunqolobane eshisayo, noma ngabe ziphi.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Izithombe eziceliwe okungajwayelekile futhi ezicelwe kaningi zikhishwa kancane kancane kunqolobane eshisayo ziyiswe kwebandayo.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Futhi lapho siphelelwa isikhala kunqolobane, sivele siqale ukususa yonke into kunqolobane ebandayo ngokungakhethi. Futhi ngendlela, lokhu kusebenza kahle.

Ukuze isithombe silondolozwe ngokushesha lapho sisebenza njengommeleli kusigcinalwazi, sisebenzisa isiqondiso se-proxy_store futhi isigcinalwazi siyi-RAMDisk, i.e. kumsebenzisi isebenza ngokushesha okukhulu. Lokhu kuthinta abangaphakathi beseva yenqolobane ngokwayo.

Umbuzo osele owokuthi izicelo zokusabalalisa kanjani kuzo zonke lezi ziphakeli.

Ake sithi kukhona iqoqo lemishini yokugcina angamashumi amabili kanye namaseva amathathu okulondoloza isikhashana (lokhu kwenzeka kanjani).

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Sidinga ukuthi ngandlela thize sinqume ukuthi yiziphi izicelo ezingezaziphi izithombe nokuthi sizozithola kuphi.

Inketho evame kakhulu i-Round Robin. Noma ukwenze ngephutha?

Lokhu ngokusobala kunenqwaba yokubi ngoba sizobe sisebenzisa inqolobane ngendlela engafanele kakhulu esimweni esinjalo. Izicelo zizofika kweminye imishini engahleliwe: lapha igcinwe kunqolobane, kodwa kolandelayo ayisekho. Futhi uma konke lokhu kusebenza, kuyoba kubi kakhulu. Ngisho nenani elincane lemishini ku-cluster.

Sidinga ukuthi ngandlela thize sinqume ngokungananazi ukuthi iyiphi iseva ezofaka isicelo.

Kukhona indlela ye-banal. Sithatha i-hashi ku-URL noma i-hashi kukhiye wethu wokwabelana, oku-URL, futhi siyihlukanise ngenani lamaseva. Uzosebenza? Intando.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Labo. Sinesicelo esingu-2%, isibonelo, kweminye i-β€œexample_url” izohlala ihlezi kuseva ngenkomba ethi β€œXNUMX”, futhi inqolobane izohlala ilahlwa kahle kakhulu ngangokunokwenzeka.

Kodwa kunenkinga ngokwabelana kabusha ohlelweni olunjalo. Ukwabelana kabusha - Ngiqonde ukushintsha inani lamaseva.

Ake sicabange ukuthi iqoqo lethu le-caching ngeke lisakwazi ukubhekana nesimo futhi sinquma ukwengeza omunye umshini.

Ake sengeze.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Manje yonke into ayihlukaniseki ngabathathu, kodwa abane. Ngakho-ke, cishe bonke okhiye esasikade sinabo, cishe wonke ama-URL manje ahlala kwamanye amaseva. Yonke inqolobane ayivumelekile umzuzwana nje. Zonke izicelo zawela kuqoqo lethu lesitoreji, alibanga kahle, ukwehluleka kwesevisi kanye nabasebenzisi abanganelisekile. Angifuni ukwenza lokho.

Le nketho ayihambisani nathi.

Lokho. kufanele senzeni? Kufanele ngandlela thize sisebenzise inqolobane ngempumelelo, sifake isicelo esifanayo kuseva efanayo kaninginingi, kodwa simelane nokwabelana kabusha. Futhi kunesixazululo esinjalo, asiyona inkimbinkimbi kangako. Kubizwa ngokuthi i-hashing engaguquki.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Kubukeka kanjani?

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Sithatha umsebenzi othile kukhiye we-sharding futhi sisakaze wonke amanani awo kumbuthano. Labo. ephuzwini elingu-0, amanani awo amancane naphezulu ayahlangana. Okulandelayo, sibeka wonke amaseva ethu embuthanweni ofanayo cishe ngale ndlela:

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Iseva ngayinye ichazwa ngephuzu elilodwa, futhi umkhakha oya kuyo ngokwewashi, ngokufanelekile, inikezwa yilo msingathi. Lapho izicelo zifika kithi, sibona ngokushesha ukuthi, isibonelo, isicelo A - ine-hashi lapho - futhi inikezwa iseva 2. Isicelo B - ngeseva 3. Futhi njalonjalo.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Kwenzekani kulesi simo ngesikhathi sokwabelana kabusha?

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Asiyisebenzisi yonke inqolobane, njengakuqala, futhi asiguquki zonke izikhiye, kodwa sisusa umkhakha ngamunye ibanga elifushane ukuze, uma kuqhathaniswa, iseva yethu yesithupha, esifuna ukuyengeza, ingene endaweni yamahhala, futhi siyengeza lapho.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Yiqiniso, esimweni esinjalo izikhiye nazo ziyaphuma. Kodwa ziphuma zintekenteke kakhulu kunakuqala. Futhi siyabona ukuthi okhiye bethu bokuqala ababili bahlala kumaseva abo, futhi iseva ye-caching yashintsha kuphela ngokhiye wokugcina. Lokhu kusebenza kahle kakhulu, futhi uma wengeza ababungazi abasha ngokuqhubekayo, akukho nkinga enkulu lapha. Ungeza futhi wengeze kancane ngesikhathi, ulinde kuze kube yilapho inqolobane igcwele futhi, futhi yonke into isebenza kahle.

Umbuzo kuphela osalayo nokwenqaba. Ake sicabange ukuthi uhlobo oluthile lwemoto alusebenzi.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Futhi ngeke sifune ngempela ukuvuselela le mephu ngalesi sikhathi, senze ingxenye yenqolobane ingavumelekile, njalo njalo, uma, isibonelo, umshini uqaliswe kabusha, futhi sidinga ukuthi ngandlela thize senze izicelo zesevisi. Simane sigcine inqolobane yesithombe esiyisipele esisodwa kusayithi ngalinye, esisebenza njengokungena esikhundleni sanoma yimuphi umshini ophansi okwamanje. Futhi uma kungazelelwe enye yeziphakeli zethu ingatholakali, ithrafikhi iya lapho. Ngokwemvelo, asinayo inqolobane lapho, i.e. kuyabanda, kodwa okungenani izicelo zomsebenzisi ziyacutshungulwa. Uma lesi yisikhawu esifushane, sizobe sesikuzwa ngokuzola ngokuphelele. Kunomthwalo owengeziwe endaweni yokubeka. Uma lesi sikhawu siside, khona-ke sesingavele senze isinqumo - ukususa le seva kumephu noma cha, noma mhlawumbe sibuyisele enye.

Lokhu kumayelana nesistimu yokugcinwa kwesikhashana. Ake sibheke imiphumela.

Kungase kubonakale sengathi akukho lutho oluyinkimbinkimbi lapha. Kodwa le ndlela yokuphatha inqolobane isinike isilinganiso sobuqili esingaba ngu-98%. Labo. kulezi zicelo eziyizinkulungwane ezingu-80 ngomzuzwana, kuphela isitoreji esifinyelela ku-1600, futhi lokhu kuwumthwalo ojwayelekile ngokuphelele, bawubekezelela ngokuthula, sihlala sinendawo yokugcina.

Sibeke la maseva kuma-DC ethu amathathu, futhi sathola amaphuzu amathathu okuba khona - ePrague, eMiami naseHong Kong.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Lokho. atholakala endaweni endaweni ngayinye yezimakethe zethu esiziqondise.

Futhi njengebhonasi enhle, sithole lo mmeleli wenqolobane, lapho i-CPU empeleni ingenzi lutho, ngoba ayidingeki kangako ukunikeza okuqukethwe. Futhi lapho, sisebenzisa i-NGINX+ Lua, senze izinto eziningi ezinengqondo ze-utilitarian.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Isibonelo, singazama nge-webb noma i-jpeg eqhubekayo (lawa amafomethi esimanjemanje), sibone ukuthi iyithinta kanjani ithrafikhi, senze izinqumo ezithile, siyinike amandla amazwe athile, njll.; yenza usayizi oguquguqukayo noma unqampune izithombe ngokuphazima kweso.

Lokhu kuyindlela enhle yokusebenzisa uma, ngokwesibonelo, unohlelo lweselula olubonisa izithombe, futhi uhlelo lokusebenza lweselula alufuni ukumosha i-CPU yeklayenti ngokucela isithombe esikhulu bese usishintsha usayizi othile ukuze usiphushele. umbono. Singamane sicacise ngokushintshashintshayo amanye amapharamitha ku-URL enemibandela ye-UPort, futhi inqolobane yesithombe izoshintsha usayizi wesithombe ngokwaso. Njengomthetho, izokhetha usayizi esinawo ngokomzimba kudiski, eduze ngangokunokwenzeka kulowo oceliwe, bese iwadayisela izixhumanisi ezithile.

Kodwa-ke, senze ukuqoshwa kwamavidiyo atholakala esidlangalaleni eminyakeni emihlanu edlule yengqungquthela yonjiniyela bamasistimu alayisha kakhulu. Ukulayisha Okuphezulu++. Buka, funda, wabelane futhi ubhalisele Isiteshi se-YouTube.

Futhi singangeza izinto eziningi zokucabanga komkhiqizo lapho. Isibonelo, singengeza ama-watermark ahlukene sisebenzisa amapharamitha e-URL, singafiphalisa, sifiphalise noma sifane nezithombe. Yilapho sifuna ukukhombisa isithombe somuntu, kodwa asifuni ukukhombisa ubuso bakhe, lokhu kusebenza kahle, konke kwenziwa lapha.

Sitholeni? Sithole amaphuzu amathathu okuba khona, izinga elihle lokukhohlisa, futhi ngesikhathi esifanayo asinayo i-CPU engenzi lutho kule mishini. Manje usebaluleke kakhulu kunakuqala. Kudingeka sizinikeze izimoto ezinamandla, kodwa kuyafaneleka.

Lokhu kuthinta ukubuyiswa kwezithombe. Konke lapha kucacile futhi kusobala. Ngicabanga ukuthi angizange ngithole iMelika, cishe noma iyiphi i-CDN isebenza ngale ndlela.

Futhi, cishe, umlaleli oyinkimbinkimbi angase abe nombuzo: kungani ungashintshi yonke into ku-CDN? Kungaba okufanayo; wonke ama-CDN anamuhla angakwenza lokhu. Futhi kunezizathu eziningana.

Eyokuqala yizithombe.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Leli elinye lamaphuzu abalulekile engqalasizinda yethu, futhi sidinga ukulawula okuningi ngangokunokwenzeka. Uma lokhu kuwuhlobo oluthile lwesixazululo oluvela kumthengisi wenkampani yangaphandle, futhi ungenawo amandla phezu kwalo, kuzoba nzima kakhulu kuwe ukuthi uhlale nalo uma unedathasethi enkulu, nalapho unokugeleza okukhulu kakhulu. kwezicelo zabasebenzisi.

Ake ngenze isibonelo. Manje, ngengqalasizinda yethu, ngokwesibonelo, uma kuba nezinkinga ezithile noma ukungqongqoza okungaphansi komhlaba, singakwazi ukuya emshinini futhi siphambanise lapho, uma kuqhathaniswa. Singangeza iqoqo lamamethrikhi athile esiwadinga kuphela, singazama ngandlela thile, sibone ukuthi lokhu kuwathinta kanjani amagrafu, njalo njalo. Manje izibalo eziningi ziyaqoqwa kuleli qoqo le-caching. Futhi siyayibuka ngezikhathi ezithile futhi sichithe isikhathi eside sihlola izinto ezididayo. Ukube bekusohlangothini lwe-CDN, bekungaba nzima kakhulu ukuyilawula. Noma, isibonelo, uma kwenzeka uhlobo oluthile lwengozi, siyazi ukuthi kwenzekeni, siyazi ukuthi singaphila kanjani nalo nokuthi singakunqoba kanjani. Lesi isiphetho sokuqala.

Isiphetho sesibili futhi kunalokho siwumlando, ngoba uhlelo selunesikhathi eside luthuthuka, futhi bekunezidingo eziningi zebhizinisi ezihlukene ezigabeni ezihlukene, futhi azihlali zingena emcabangweni we-CDN.

Futhi iphuzu elilandela kusukela kwangaphambilini

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Lokhu kungenxa yokuthi ezinqolobaneni zezithombe sinokunengqondo eminingi ethile, engeke yengezwe njalo uma iceliwe. Akunakwenzeka ukuthi noma iyiphi i-CDN izokwengeza izinto ezingokwezifiso ngokwesicelo sakho. Isibonelo, ukubethela ama-URL uma ungafuni ukuthi iklayenti likwazi ukushintsha okuthile. Uyafuna ukushintsha i-URL kuseva futhi uyibethele, bese uthumela amapharamitha ashukumisayo lapha.

Lokhu kusikisela siphi isiphetho? Esimweni sethu, i-CDN ayiyona enye indlela enhle kakhulu.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Futhi endabeni yakho, uma unezidingo ezithile zebhizinisi, ungasebenzisa kalula lokho engikubonise kona. Futhi lokhu kuzosebenza ngokuphelele ngephrofayili yokulayisha efanayo.

Kodwa uma unohlobo oluthile lwesixazululo esijwayelekile, futhi umsebenzi awuqondile kakhulu, ungathatha ngokuphepha i-CDN. Noma uma isikhathi nezinsiza kubaluleke kakhulu kuwe kunokulawula.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Futhi ama-CDN anamuhla anakho cishe yonke into engikutshele ngayo manje. Ngaphandle kokuhlanganisa noma susa ezinye izici.

Lokhu kumayelana nokunikeza izithombe.

Manje ake siye phambili kancane ekubukeni kwethu kwamuva futhi sikhulume ngesitoreji.

U-2013 wawudlula.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Iziphakeli zenqolobane zengeziwe, izinkinga zokusebenza zihambile. Konke kuhamba kahle. Isethi yedatha iyakhula. Kusukela ngo-2013, sasinamaseva angaba ngu-80 axhunywe kwisitoreji, futhi cishe angu-40 agcinwe kunqolobane ku-DC ngayinye. Lona ama-terabytes angu-560 wedatha ku-DC ngayinye, i.e. mayelana ne-petabyte isiyonke.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Futhi ngokukhula kwedathasethi, izindleko zokusebenza zaqala ukukhuphuka kakhulu. Kwakusho ukuthini lokhu?

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Kulo mdwebo odwetshiwe - nge-SAN, enemishini nezinqolobane ezixhunywe kuyo - kunamaphuzu amaningi okuhluleka. Uma ngabe sesivele sibhekane nokuhluleka kwamaseva we-caching ngaphambili, yonke into yayibikezela futhi iqondakala kancane, kodwa ohlangothini lwesitoreji konke kwakubi kakhulu.

Okokuqala, i-Storage Area Network (SAN) ngokwayo, engahluleka.

Okwesibili, ixhunywe nge-optics emishini yokuphela. Kungase kube nezinkinga ngamakhadi okubona kanye nama-spark plug.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Yiqiniso, azikho eziningi zazo njenge-SAN ngokwayo, kodwa, nokho, lezi futhi amaphuzu okwehluleka.

Okulandelayo umshini ngokwawo, oxhunywe kusitoreji. Ingahluleka futhi.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Sekukonke, sinamaphuzu amathathu okuhluleka.

Ngaphezu kwalokho, ngaphezu kwamaphuzu okwehluleka, kunokugcinwa okunzima kwesitoreji ngokwaso.

Lolu uhlelo oluyinkimbinkimbi lwezingxenye eziningi, futhi onjiniyela bezinhlelo bangaba nesikhathi esinzima ekusebenzeni nalo.

Futhi iphuzu lokugcina, elibaluleke kakhulu. Uma kwenzeka ukwehluleka kunoma yimaphi kulawa maphuzu amathathu, sinethuba elingelona iqanda lokulahlekelwa idatha yomsebenzisi ngoba isistimu yefayela ingase iphahlazeke.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Ake sithi isistimu yethu yefayela iphukile. Okokuqala, ukululama kwayo kuthatha isikhathi eside - kungathatha isonto ngenani elikhulu ledatha. Futhi okwesibili, ekugcineni cishe sizogcina sinenqwaba yamafayela angaqondakali azodinga ukuthi ngandlela thize ahlanganiswe ezithombeni zabasebenzisi. Futhi sisengozini yokulahlekelwa idatha. Ingozi iphezulu impela. Futhi lapho izimo ezinjalo zivame ukwenzeka, futhi izinkinga eziningi ziphakama kulo lonke lolu chungechunge, ingozi iyanda.

Kwakufanele kwenziwe okuthile ngalokhu. Futhi sinqume ukuthi sidinga nje ukwenza isipele idatha. Lokhu empeleni kuyisixazululo esisobala futhi esihle. Senzeni?

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Yile ndlela iseva yethu eyayibukeka ngayo ngenkathi ixhunywe kwisitoreji ngaphambilini. Lesi yisigaba esisodwa esiyinhloko, idivaysi nje evimbelayo emele ukukhweza kwesitoreji esikude nge-optics.

Sisanda kwengeza isigaba sesibili.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Sibeke isitoreji sesibili eduze kwayo (ngenhlanhla, ayibizi kangako ngokwemali), futhi sayibiza ngokuthi i-backup partition. Iphinde ixhunywe nge-optics futhi itholakala emshinini ofanayo. Kodwa sidinga ngandlela thize ukuvumelanisa idatha phakathi kwabo.

Lapha simane senze ulayini ongavumelanisiwe eduze.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Akamatasatasa kakhulu. Siyazi ukuthi asinawo amarekhodi anele. Ulayini uyitafula ku-MySQL lapho kubhalwa khona imigqa efana nokuthi β€œudinga ukwenza isipele lesi sithombe”. Nganoma yiluphi ushintsho noma ukulayisha, sikopisha ukusuka engxenyeni eyinhloko ukuya kukhophi yasenqolobaneni sisebenzisa i-asynchronous noma uhlobo oluthile lwesisebenzi sangemuva.

Futhi ngaleyo ndlela sihlale sinezigaba ezimbili ezingaguquki. Ngisho noma ingxenye eyodwa yalolu hlelo ihluleka, singahlala sishintsha ukwahlukanisa okuyinhloko ngesipele, futhi yonke into izoqhubeka nokusebenza.

Kodwa ngenxa yalokhu, umthwalo wokufunda ukhula kakhulu, ngoba... ngaphezu kwamaklayenti afunda kusukela esigabeni esiyinhloko, ngoba aqala ukubuka isithombe lapho (semuva nje lapho), bese ebheka ku-backup, uma engakayitholi (kodwa i-NGINX yenza lokhu nje), isistimu yethu futhi iyisipele esihlanganisiwe manje esifundwa ekwahlukaniseni okuyinhloko. Akukhona ukuthi lokhu bekuyibhodlela, kodwa bengingafuni ukukhulisa umthwalo, empeleni, kanjalo nje.

Futhi sengeze idiski yesithathu, okuyi-SSD encane, sayibiza ngokuthi i-buffer.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Isebenza kanjani manje.

Umsebenzisi ulayisha isithombe ku-buffer, bese umcimbi uphonswa kulayini okhombisa ukuthi udinga ukukopishwa ngezigaba ezimbili. Sikopishiwe, futhi isithombe sihlala ku-buffer isikhathi esithile (ake sithi, usuku), bese sihlanzwa lapho. Lokhu kuthuthukisa kakhulu isipiliyoni somsebenzisi, ngoba umsebenzisi ulayisha isithombe, njengomthetho, izicelo ziqala ukulandela ngokushesha, noma yena ngokwakhe ubuyekeze ikhasi futhi aliqabule. Kodwa konke kuncike kuhlelo lokusebenza elenza ukulayisha.

Noma, isibonelo, abanye abantu aqala ukuzibonakalisa kubo ngokushesha bathumela izicelo ngemva kwalesi sithombe. Ayikabi kunqolobane; isicelo sokuqala senzeka ngokushesha okukhulu. Ngokuyisisekelo kufana nokusuka kunqolobane yesithombe. Isitoreji esinensayo asibandakanyeki nhlobo kulokhu. Futhi uma ngemva kosuku ihlanzwa, isivele igcinwe kunqolobane yethu yokulondoloza isikhashana, noma, cishe, akekho oyidingayo. Labo. Okuhlangenwe nakho komsebenzisi lapha kukhule kahle kakhulu ngenxa yokukhohlisa okulula.

Yebo, futhi okubaluleke kakhulu: siyekile ukulahlekelwa idatha.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Ake sithi simile kungenzeka silahlekelwe idatha, ngoba asizange siyilahlekele. Kodwa kwakunengozi. Siyabona ukuthi lesi sixazululo, yiqiniso, sihle, kodwa sifana nokululamisa izimpawu zenkinga, esikhundleni sokuyixazulula ngokuphelele. Futhi ezinye izinkinga zisekhona lapha.

Okokuqala, leli iphuzu lokwehluleka ngendlela yokubamba iqhaza uqobo lapho yonke le mishini isebenza khona; ayihambanga.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Okwesibili, kusenezinkinga ngama-SAN, ukugcinwa kwawo kanzima, njll. Kwakungekhona ukuthi kwakuyisici esibucayi, kodwa ngangifuna ukuzama ngandlela-thile ukuphila ngaphandle kwayo.

Futhi senze inguqulo yesithathu (empeleni, eyesibili eqinisweni) - inguqulo yokubhuka. Yayibukeka kanjani?

Yilokhu okwakuyikho -

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Izinkinga zethu eziyinhloko yiqiniso lokuthi lo umninikhaya ongokwenyama.

Okokuqala, sisusa ama-SAN ngoba sifuna ukuzama, sifuna ukuzama ama-hard drive endawo.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Lokhu sekuvele ku-2014-2015, futhi ngaleso sikhathi isimo esinamadiski kanye nomthamo wabo kumphathi oyedwa saba ngcono kakhulu. Sinqume ukuthi kungani singazami.

Bese sithatha nje ukwahlukanisa kwethu okuyisipele bese sikudlulisela emshinini ohlukile.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Ngakho, sithola lo mdwebo. Sinezimoto ezimbili ezigcina idathasethi efanayo. Benza ikhophi yasenqolobaneni ngokuphelele futhi bavumelanise idatha kunethiwekhi ngomugqa ongavumelanisi ku-MySQL efanayo.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Kungani lokhu kusebenza kahle yingoba sinamarekhodi ambalwa. Labo. uma ukubhala bekuqhathaniseka nokufunda, mhlawumbe besiyoba nohlobo oluthile lwenethiwekhi kanye nezinkinga. Kukhona ukubhala okuncane, ukufunda okuningi - le ndlela isebenza kahle, i.e. Asivamile ukukopisha izithombe phakathi kwalezi ziphakeli ezimbili.

Lokhu kusebenza kanjani, uma ubheka kancane ngokuningiliziwe.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Layisha. Ibhalansi ivele ikhethe abasingathi abangahleliwe ngepheya futhi ilayishe kukho. Ngesikhathi esifanayo, ngokwemvelo uhlola impilo futhi uqinisekisa ukuthi imoto ayiwa. Labo. ulayisha izithombe kuseva ebukhoma kuphela, bese ngomugqa ongavumelaniyo zonke zikopishelwe kumakhelwane wakhe. Ngokulayisha konke kulula kakhulu.

Umsebenzi unzima kakhulu.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

U-Lua usisize lapha, ngoba kungaba nzima ukwenza i-logic enjalo ku-vanilla NGINX. Okokuqala senza isicelo kuseva yokuqala, sibone ukuthi isithombe sikhona yini, ngoba kungenzeka silayishwe, isibonelo, kumakhelwane, kodwa asikakafiki lapha. Uma isithombe sikhona, kuhle lokho. Ngokushesha siyinikeza iklayenti futhi, ngokunokwenzeka, siyigcine kunqolobane.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Uma ingekho, sivele senze isicelo kumakhelwane wethu futhi siqinisekisiwe ukuthi sizosithola lapho.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Lokho. futhi singasho ukuthi: kungase kube nezinkinga ngokusebenza, ngoba kukhona ukuhamba njalo nokujikeleza - isithombe salayishwa, asikho lapha, senza izicelo ezimbili esikhundleni soyedwa, lokhu kufanele kusebenze kancane.

Esimweni sethu, lokhu akusebenzi kancane.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Siqoqa inqwaba yamamethrikhi kule sistimu, futhi isilinganiso esihlakaniphile esinemibandela somshini onjalo singaba ngu-95%. Labo. I-lag yalesi sipele incane, futhi ngenxa yalokhu cishe sesiqinisekisiwe, ngemuva kokuthi isithombe sesilayishiwe, sizosithatha okokuqala futhi ngeke kudingeke ukuthi siye ndawo kabili.

Manje yini enye esinayo epholile ngempela?

Ngaphambilini, besine-partition enkulu yokusekelayo, futhi sifunda kuyo ngokulandelana. Labo. Sasihlala sicinga kweyinhloko kuqala, bese kuba isipele. Kwakuyisinyathelo esisodwa.

Manje sisebenzisa ukufunda emishinini emibili ngesikhathi esisodwa. Sisabalalisa izicelo sisebenzisa i-Round Robin. Ngephesenti elincane lezimo senza izicelo ezimbili. Kodwa sekukonke, manje sine-stock yokufunda ephindwe kabili kunangaphambili. Futhi umthwalo wehliswa kakhulu kokubili emishinini yokuthumela futhi ngokuqondile emishinini yokugcina impahla, esasinayo ngaleso sikhathi.

Ngokuqondene nokubekezelelana kwamaphutha. Empeleni, yilokhu ikakhulukazi esasikulwela. Ngokubekezelela amaphutha, konke kwahamba kahle lapha.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Kuphuka imoto eyodwa.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Ayikho inkinga! Unjiniyela wesistimu angase angavuki ngisho ebusuku, uzolinda kuze kuse, akukho okubi okuzokwenzeka.

Uma lo mshini uhluleka, ulayini awusebenzi, azikho izinkinga, ilogi izovele iqoqwe kuqala emshinini ophilayo, bese yengezwa emgqeni, bese idlulela emotweni iqale ukusebenza ngemva kwesikhathi esithile.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Into efanayo ngesondlo. Simane sicime omunye wemishini, siyikhiphe mathupha kuwo wonke amachibi, iyeke ukuthola ithrafikhi, senza uhlobo oluthile lokunakekela, sihlela okuthile, bese siyibuyisela kusevisi, futhi lesi sipele sibamba ngokushesha. Labo. ngosuku, isikhathi sokuphumula semoto eyodwa sifika phakathi nemizuzu embalwa. Lokhu kuncane kakhulu ngempela. Ngokubekezelela amaphutha, ngiyaphinda ngithi, yonke into ipholile lapha.

Yiziphi iziphetho ezingafinyelelwa kulolu hlelo lokudicilelwa phansi?

Sithole ukubekezelelana kwamaphutha.

Kulula ukuyisebenzisa. Njengoba imishini inama-hard drive endawo, lokhu kulula kakhulu ngokombono wokusebenza konjiniyela abasebenza ngawo.

Sithole isibonelelo sokufunda kabili.

Lena ibhonasi enhle kakhulu ngaphezu kokubekezelela amaphutha.

Kodwa kukhona nezinkinga. Manje sinokuthuthuka okuyinkimbinkimbi kakhulu kwezinye izici ezihlobene nalokhu, ngoba uhlelo selube ngu-100% ekugcineni olungaguquki.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Kufanele, sithi, komunye umsebenzi ongemuva, sihlale sicabanga: "Iyiphi iseva esisebenza kuyo manje?", "Ingabe sikhona ngempela isithombe samanje lapha?" njll. Lokhu, vele, kugoqwe konke, futhi kumhleli obhala i-logic yebhizinisi, kusobala. Kodwa, nokho, lolu ungqimba olukhulu oluyinkimbinkimbi luye lwavela. Kodwa sikulungele ukubekezelela lokhu ukuze sithole izinto ezinhle esizithole kuyo.

Futhi lapha futhi okunye ukungqubuzana kuvela.

Ngasho ekuqaleni ukuthi ukugcina yonke into kuma-hard drive asendaweni kubi. Futhi manje ngithi sithandile.

Yebo, ngempela, ngokuhamba kwesikhathi isimo sishintshile kakhulu, futhi manje le ndlela inezinzuzo eziningi. Okokuqala, sithola ukusebenza okulula kakhulu.

Okwesibili, ikhiqiza kakhulu, ngoba asinazo lezi zilawuli ezizenzakalelayo noma ukuxhumeka kumashalofu ediski.

Kunenqwaba yemishini lapho, futhi lawa amadiski ambalwa ahlanganiswe lapha emshinini ukuze ahlasele.

Kodwa kukhona futhi nezinkinga.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Lokhu kubiza cishe izikhathi ezi-1,5 ngaphezu kokusebenzisa ama-SAN ngisho namanani anamuhla. Ngakho-ke, sinqume ukungaliguquli ngesibindi lonke iqoqo lethu elikhulu libe yizimoto ezinamadrayivu aqinile endawo futhi sanquma ukushiya isisombululo esiyingxube.

Ingxenye yemishini yethu isebenza ngama-hard drive (kahle, hhayi ingxenye - cishe amaphesenti angama-30). Kanti ezinye izimoto ezindala ebezinohlelo lokuqala lokubhuka. Simane siwakhweze kabusha, njengoba singadingi idatha entsha nanoma yini enye, sivele sasusa izikhwezi ukusuka kumsingathi oyedwa kuya kokubili.

Futhi manje sinesamba esikhulu sokufunda, futhi siye sandisa. Uma ngaphambilini sikhweze isitoreji esisodwa emshinini owodwa, manje sesikhweza ezine, ngokwesibonelo, kupheya eyodwa. Futhi isebenza kahle.

Ake sibuke kafushane lokho esikufezile, esikulwela, nokuthi saphumelela yini.

Imiphumela

Sinabasebenzisi - abangaba yizigidi ezingama-33.

Sinamaphuzu amathathu okuba khona - ePrague, eMiami, eHong Kong.

Ziqukethe isendlalelo se-caching, esiqukethe izimoto ezinamadiski endawo asheshayo (ama-SSD), lapho imishini elula evela ku-NGINX, i-access.log yayo kanye nama-daemons e-Python agijimayo, acubungula konke lokhu futhi aphathe inqolobane.

Uma ufisa, ukuphrojekthi yakho, uma izithombe zingabalulekile kuwena njengoba zibalulekile kithi, noma uma ukulawulwa kokuhwebelana ngokumelene nesivinini sokuthuthukiswa kanye nezindleko zensiza zikwelinye icala kuwe, ungakwazi ukukubuyisela ngokuphephile. nge-CDN, ama-CDN esimanje enza kahle.

Okulandelayo kuza isendlalelo sesitoreji, lapho sineqoqo lamapheya emishini enza ikhophi yasenqolobaneni, amafayela akopishwa ngokulinganayo ukusuka komunye ukuya kwenye noma nini lapho eshintsha.

Ngaphezu kwalokho, eminye yale mishini isebenza ngama-hard drive asendaweni.

Eminye yale mishini ixhunywe kuma-SAN.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Futhi, ngakolunye uhlangothi, kulula kakhulu ukuyisebenzisa futhi ikhiqiza kancane, ngakolunye uhlangothi, ilula ngokuya ngokubeka kwabantu kanye nentengo ngegigabyte ngayinye.

Lona umbono omfushane wesakhiwo salokho esikutholile nokuthi konke kwathuthukiswa kanjani.

Amanye amathiphu ambalwa avela kukapteni, alula kakhulu.

Okokuqala, uma ngokungazelelwe unquma ukuthi udinga ngokuphuthumayo ukuthuthukisa yonke into engqalasizinda yesithombe sakho, linganisa kuqala, ngoba mhlawumbe akukho lutho oludinga ukuthuthukiswa.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Ake ngenze isibonelo. Sineqoqo lemishini ethumela izithombe kusuka kokunamathiselwe ezingxoxweni, futhi uhlelo belusebenza lapho kusukela ngo-2009, futhi akekho ohlushwa yilo. Wonke umuntu ulungile, wonke umuntu uthanda yonke into.

Ukuze ulinganise, qala ngokulenga inqwaba yamamethrikhi, uwabheke, bese unquma ukuthi yini ongajabuli ngayo nokuthi yini okudingeka ithuthukiswe. Ukuze ulinganise lokhu, sinethuluzi elipholile elibizwa ngokuthi i-Pinba.

Ikuvumela ukuthi uqoqe izibalo ezinemininingwane eminingi kusuka ku-NGINX ngesicelo ngasinye namakhodi okuphendula, kanye nokusatshalaliswa kwezikhathi - noma yini oyifunayo. Inesibopho kuzo zonke izinhlobo zezinhlelo zezibalo ezihlukene, bese ungakwazi ukukubuka konke kahle.

Saqale sayilinganisa, sase siyithuthukisa.

Ngokuqhubekayo. Sithuthukisa ukufunda ngenqolobane, sibhala nge-sharding, kodwa leli yiphuzu elisobala.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Ngokuqhubekayo. Uma usanda kuqala ukwakha isistimu yakho, kungcono kakhulu ukwenza izithombe zibe ngamafayela angenakuguquleka. Ngoba ulahlekelwa ngokushesha ikilasi lonke lezinkinga ngokungasebenzi kwe-cache, ngendlela i-logic okufanele ithole ngayo inguqulo elungile yesithombe, njalonjalo.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Ake sithi ulayishe ikhulu, wabe usulizungezisa, ulenze libe yifayela elihlukile ngokomzimba. Labo. asikho isidingo sokucabanga: manje ngizogcina isikhala esincane, ngibhale efayeleni elifanayo, ngishintshe inguqulo. Lokhu akusebenzi kahle ngaso sonke isikhathi futhi kubangela ubuhlungu bekhanda eliningi kamuva.

Iphuzu elilandelayo. Mayelana nokushintsha usayizi endizeni.

Ngaphambilini, lapho abasebenzisi belayisha isithombe, ngokushesha sasisika inqwaba yosayizi bazo zonke izikhathi, kumakhasimende ahlukene, futhi wonke ayekudiski. Manje sikuyekile lokhu.

Sishiye osayizi abathathu kuphela: abancane, abaphakathi nendawo nabakhulu. Simane sehlise yonke enye into kusukela kusayizi ongemuva kwalowo esicelwe wona e-Uport, senza nje ukwehlisa bese sikunikeza umsebenzisi.

I-CPU yesendlalelo senqolobane lapha ibonakala ishibhe kakhulu uma sihlala sivuselela lawa masayizi kusitoreji ngasinye. Ake sithi sifuna ukwengeza entsha, lokhu kuzothatha inyanga - sebenzisa iskripthi yonke indawo ezokwenza konke lokhu ngobunono, ngaphandle kokucekela phansi iqoqo. Labo. Uma unethuba lokukhetha manje, kungcono ukwenza osayizi abambalwa bomzimba ngangokunokwenzeka, kodwa ukuze okungenani ukusatshalaliswa okuthile, kuthiwe, kuthathu. Futhi konke okunye kungashintshwa kalula kundiza kusetshenziswa amamojula enziwe ngomumo. Konke kulula kakhulu futhi kuyafinyeleleka manje.

Futhi isipele se-asynchronous esikhulayo silungile.

Njengoba umkhuba wethu ubonisile, lolu hlelo lusebenza kahle ngokulibaziseka kokukopishwa kwamafayela ashintshiwe.

I-Architecture yokugcina nokwabelana ngezithombe ku-Badoo

Iphuzu lokugcina nalo lisobala. Uma ingqalasizinda yakho ingenazo izinkinga ezinjalo manje, kodwa kukhona okungaphuka, nakanjani izophuka uma isiba kancane. Ngakho-ke, kungcono ukucabanga ngalokhu kusengaphambili futhi ungabi nezinkinga ngakho. Yilokho kuphela ebengifuna ukukusho.

Oxhumana

Β» bo0rsh201
Β» I-Badoo Blog

Lo mbiko uwumbhalo wenye yezinkulumo ezihamba phambili engqungqutheleni yonjiniyela bamasistimu alayisha kakhulu Ukulayisha Okuphezulu++. Kusele isikhathi esingaphansi kwenyanga kuze kufike ingqungquthela ye-HighLoad++ 2017.

Sesivele siyilungisile Uhlelo lwenkomfa, uhlelo manje lwenziwa ngokuqhubekayo.

Kulo nyaka siyaqhubeka nokuhlola isihloko sezakhiwo nokukala:

Siphinde futhi sisebenzise ezinye zalezi zinto esifundweni sethu sokuqeqeshwa ku-inthanethi sokwakha amasistimu anomthwalo omkhulu I-HighLoad.Guide iwuchungechunge lwezinhlamvu ezikhethiwe ngokukhethekile, izihloko, izinto zokwakha, amavidiyo. Incwadi yethu isivele iqukethe izinto ezihlukile ezingaphezu kuka-30. Xhuma!

Source: www.habr.com

Engeza amazwana