Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Artem Denisov ( bo0rsh201, Badoo)

Badoo waa goobta shukaansiga adduunka ugu weyn. Waxaan hadda haynaa ilaa 330 milyan isticmaalayaasha adduunka oo dhan. Laakiin waxa aad uga muhimsan macnaha guud ee wada hadalkeena maanta waa in aan kaydinno ilaa 3 petabytes ee sawirada isticmaalaha. Maalin kasta isticmaaleyaasheenu waxay soo geliyaan ilaa 3,5 milyan sawiro cusub, culayska akhriskuna wuxuu ku saabsan yahay 80 kun oo codsi ilbiriqsikii. Tani aad bay ugu badan tahay dhabarkeena, mararka qaarkoodna waxaa jira dhibaatooyin tan.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waxaan ka hadli doonaa naqshadeynta nidaamkan, kaas oo kaydiya oo soo diraya sawirada guud ahaan, waxaanan ka eegi doonaa aragtida horumariyaha. Waxaa jiri doona dib u eegis kooban oo ku saabsan sida ay u horumartay, halkaas oo aan ku tilmaami doono marxaladaha ugu muhiimsan, laakiin kaliya waxaan si faahfaahsan uga hadli doonaa xalalka aan hadda isticmaaleyno.

Hadda aan bilowno.


Sida aan sheegay, tani waxay noqon doontaa dib-u-eegis, si aan meel uga bilowno, aan soo qaadanno tusaalaha ugu caansan.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waxaan leenahay hawl guud, waxaan u baahanahay inaan aqbalno, kaydinno oo u dirno sawirada isticmaalaha. Qaabkan, hawshu waa mid guud, waxaan isticmaali karnaa wax kasta:

  • kaydinta daruuraha casriga ah,
  • xal sanduuq, kaas oo ay sidoo kale jiraan wax badan oo hadda;
  • Waxaan ku dhejin karnaa dhowr mashiin oo ku yaal xaruntayada xogta waxaana ku dhejin karnaa darawallo waaweyn oo adag waxaana ku kaydin karnaa sawirro halkaas.

Badoo taariikh ahaan - hadda iyo ka dib (wakhtigii ay yarayd) - waxay ku nooshahay server-keeda, gudaha DC-yadayada. Sidaa darteed, doorashadan ayaa noogu fiicneyd.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waxaan qaadnay dhowr mashiin, oo aan ugu yeernay "sawiro", waxaana helnay koox kaydisa sawirro. Laakiin waxaad mooddaa inay wax maqan yihiin. Si ay waxaas oo dhami u shaqeeyaan, waxaan u baahanahay inaan si uun u go'aamino mashiinka aan ku kaydin doono sawirada. Oo halkan, sidoo kale, looma baahna in la furo Ameerika.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waxaan ku darnaa qayb ka mid ah kaydintayada macluumaadka ku saabsan isticmaalayaasha. Tani waxay noqon doontaa furaha sharding. Xaaladeena, waxaan ugu yeernay place_id, meeshan id waxay tilmaamaysaa meesha sawirada isticmaalaha lagu kaydiyo. Waxaan samaynaa maab

Marxaladda ugu horreysa, tan xitaa waxaa lagu samayn karaa gacanta - waxaanu nidhaahnaa sawirka isticmaalaha meel noocan oo kale ah ayaa ku soo degi doona server-ka noocaas ah. Waad ku mahadsan tahay khariidadan, waxaan had iyo jeer ognahay marka isticmaaluhu soo geliyo sawir, meesha lagu kaydiyo, waanan ognahay halka laga bixiyo.

Kani waa qorshe aad u yar, laakiin waxa uu leeyahay faa'iidooyin la taaban karo. Midda koowaad waa mid fudud, sidaan sheegay, ta labaadna waa in habkan aynu si fudud u cabbirno si siman innagoo si fudud baabuur cusub u keenayna oo ku daraya khariidada. Uma baahnid inaad wax kale samayso.

Sidaas ayay in muddo ah nagu ahayd.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Tani waxay ahayd qiyaastii 2009. Waxay geeyeen baabuur, geeyeen...

Iyo mar mar waxaan bilownay inaan ogaano in nidaamkani leeyahay khasaarooyin gaar ah. Waa maxay khasaaraha?

Marka hore, waxaa jira awood xaddidan. Ma ku xajin karno inta badan ee darawallada adag hal server-ka sida aan jeclaan lahayn. Waxayna tani noqotay dhibaato gaar ah waqti ka dib iyo kobaca xogta.

Iyo labaad. Tani waa qaabeynta mashiinada caadiga ah, maadaama mashiinada noocaan ah ay adagtahay in dib loogu isticmaalo kooxo kale qaarkood; waa kuwo gaar ah, ie. waa inay ku daciifaan waxqabadka, laakiin isla mar ahaantaana leh darawal adag oo weyn.

Dhammaan tani waxay ahayd 2009, laakiin, mabda'a, shuruudahan ayaa weli khuseeya maanta. Waxaan leenahay dib-u-eegis, sidaas darteed 2009 wax walba way ku xumaadeen tan.

Iyo qodobka ugu dambeeya waa qiimaha.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

qiimuhu wuxuu ahaa mid aad u kacsan wakhtigaas, waxaana loo baahan yahay inaan raadino qaar ka duwan. Kuwaas. Waxaan u baahneyn inaan si ka sii wanaagsan uga faa'ideysanno booska xarumaha xogta iyo server-yada jireed ee waxaas oo dhan ay ku yaalliin. Injineerada nidaamkayadu waxay bilaabeen daraasad ballaaran oo ay dib u eegis ku sameeyeen farabadan xulashooyin kala duwan. Waxa kale oo ay eegeen nidaamyada faylalka la ururiyey sida PolyCeph iyo Luster. Waxaa jiray dhibaatooyin shaqo iyo hawlgal aad u adag. Way diideen. Waxaan isku daynay inaan ku dhejino dhammaan xogta iyada oo loo sii marayo NFS baabuur kasta si aan si uun kor ugu qaadno. Akhrisku sidoo kale wuu xumaaday, waxaanu isku daynay xalal kala duwan oo ka yimid iibiyeyaal kala duwan.

Ugu dambayntiina waxa aanu isla meel dhignay adeegsiga waxa loo yaqaan Shabakadda Aagga Kaydinta.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Kuwani waa SHD-yo waaweyn oo si gaar ah loogu talagalay in lagu kaydiyo tiro badan oo xog ah. Waa khaanadaha leh saxanadaha ku rakiban mishiinnada wax soo saarka indhaha ee ugu dambeeya. Taasi. Waxaan haysanaa nooc ka mid ah barkadaha mashiinada, oo aad u yar, iyo SHD-yadan, kuwaas oo hufan si aan macquul ahayn diritaanka, i.e. nginx ama qof kasta oo kale si loogu adeego codsiyada sawiradan.

Go'aankani wuxuu lahaa faa'iidooyin muuqda. Kani waa SHD. Waxaa loogu talagalay in lagu kaydiyo sawirrada. Tani waxay ku shaqaysaa ka jaban yahay in lagu qalabeeyo mishiinada wata darawalada adag.

Lagu daray labaad.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Tani waa in awoodda ay noqotay mid aad u weyn, i.e. waxaan ku qaadi karnaa wax badan oo kaydin ah oo mug aad u yar ah.

Laakiin waxa kale oo jiray faa'iido darrooyin si degdeg ah u soo baxay. Sida tirada isticmaalayaasha iyo culeyska nidaamkan uu kordhay, dhibaatooyinka waxqabadka ayaa bilaabay inay soo baxaan. Dhibaatada halkan waa mid iska cad - SHD kasta oo loogu talagalay in lagu kaydiyo sawirro badan oo mug yar ah, sida caadiga ah, waxay la il daran tahay akhris degdeg ah. Tani dhab ahaantii waa run kayd kasta oo daruur ah ama wax kale. Hadda ma hayno kayd ku habboon oo si xad dhaaf ah loo cabbiri karo, waxaad ku dhejin kartaa wax kasta, waxayna si fiican ugu dulqaadan doontaa akhrinta. Gaar ahaan wax-akhrisyada caadiga ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Sida kiiska sawiradayada, sababtoo ah sawirada waxaa loo codsadaa si aan kala go 'lahayn, tani waxay si weyn u saameyn doontaa waxqabadkooda.

Xitaa marka loo eego tirooyinka maanta, haddii aan helno in ka badan 500 RPS sawirada mashiinka kaas oo kaydinta ku xiran tahay, dhibaatooyin ayaa durba bilaabay. Oo waxay ahayd mid aad u xun oo nagu filan, sababtoo ah tirada isticmaalayaasha ayaa sii kordhaya, arrimuhuna way ka sii dari doonaan. Tani waxay u baahan tahay in si uun loo hagaajiyo.

Si loo hagaajiyo, waxaan go'aansanay wakhtigaas, si cad, si aan u eegno profile load - waxa, guud ahaan, dhacaya, waxa u baahan in la hagaajiyo.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Oo halkan wax walbaa waxay ku ciyaaraan gacmaheena.

Waxaan horeyba ugu sheegay bogga koowaad: waxaan haysanaa 80 kun oo codsi akhris ah ilbiriqsi kasta oo leh 3,5 milyan oo keliya maalintii. Taasi waa, tani waa farqi u dhexeeya saddex amar oo waaweyn. Way iska caddahay in wax-akhrisku u baahan yahay in la hagaajiyo oo ay si dhab ah u caddahay sida.

Waxaa jira hal dhibic oo kale oo yar. Waxyaabaha gaarka ah ee adeeggu waa sida in qofku isdiiwaangeliyo, sawiro, ka dibna uu bilaabo inuu si firfircoon u eego dadka kale, iyaga oo kale, oo si firfircoon loogu muujiyo dadka kale. Markaas ayuu hela saaxiib ama lama helo lamaane, waxay ku xiran tahay sida ay ku noqoto, oo joojiya isticmaalka adeegga in muddo ah. Waqtigan xaadirka ah, marka uu isticmaalo, sawirradiisu aad bay u kulul yihiin - waxay ku jiraan baahi, dad badan ayaa u fiirsada. Sida ugu dhakhsaha badan ee uu joojiyo samaynta this, si qurux badan si deg deg ah uu hoos u dhigista badan ee dadka kale sidii uu hore u lahaa, iyo sawirradiisa ku dhawaad ​​marnaba la codsan.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Kuwaas. Waxaan haynaa xog aad u kulul. Laakiin isla mar ahaantaana waxaa jira codsiyo badan isaga. Iyo xal gabi ahaanba cad halkan waa in lagu daro kayd.

Kaydka LRU wuxuu xallin doonaa dhammaan dhibaatooyinkayaga. Maxaan sameyneynaa?

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waxaan ku darnaa mid kale oo yar horteeda kooxdeena weyn ee kaydinta, kaas oo loo yaqaan sawir qaade. Kani asal ahaan waa wakiilka kaydinta.

Sidee uga shaqeysaa gudaha? Waa kan isticmaaleheenna, waa kan kaydinta. Wax walba waa la mid sidii hore. Maxaan ku darnaa inta u dhaxaysa?

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Kaliya waa mishiin leh saxan maxalli ah oo jireed, kaas oo degdeg ah. Tani waxay la socotaa SSD, tusaale ahaan. Oo nooc ka mid ah khasnado maxalli ah ayaa lagu kaydiyaa saxankan.

Sidee ayay u egtahay? Isticmaaluhu wuxuu soo diraa codsi sawir. NGINX waxay marka hore ka raadisaa khasnadda maxalliga ah. Haddaysan ahayn, si fudud proxy_pass kaydintayada, kala soo bax sawirka oo sii isticmaal isticmaalaha.

Laakiin kani waa banal aad u xun mana cadda waxa gudaha ka dhacaya. Waxay u shaqeysaa wax sidan oo kale ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Cache-ku si macquul ah ayaa loo qaybiyaa saddex lakab. Marka aan dhaho "saddex lakab", tani macnaheedu maaha in uu jiro nooc ka mid ah nidaam adag. Maya, kuwani shuruud ahaan waa saddex hage oo ku jira nidaamka faylka:

  1. Kani waa meel kayd ah oo sawiradu hadda laga soo dejiyo wakiil-goboleed.
  2. Tani waa kayd kulul oo kaydisa sawirada hadda si firfircoon loo codsaday.
  3. Iyo kayd qabow, halkaasoo sawiradu si tartiib tartiib ah looga riixayo kaydka kulul marka codsiyo yar ay u yimaadaan.

Si ay tani u shaqeyso, waxaan u baahanahay inaan si uun u maareyno kaydkan, waxaan u baahanahay inaan dib u habeyn ku sameyno sawirada ku jira, iwm. Tani sidoo kale waa geeddi-socod aad u asal ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Nginx waxay si fudud ugu qortaa RAMDisk access.log codsi kasta, kaas oo ay ku muujinayso dariiqa sawirka ay hadda u adeegtay (dabcan qaraabo, dabcan), iyo qaybta loo adeegay. Kuwaas. waxaa laga yaabaa inay tiraahdo "sawir 1" ka dibna ha ahaato kayd, ama kayd kulul, ama kayd qabow, ama wakiil.

Iyadoo taasi ku xiran tahay, waxaan u baahanahay inaan si uun u go'aansano waxa lagu sameeyo sawirka.

Waxaan haynaa daemon yar oo ku shaqeeya mishiin kasta oo si joogto ah u akhriya qoraalkan oo kaydiya tirakoobyada isticmaalka sawirada qaarkood ee xusuusta.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Si fudud ayuu meeshaas wax ugu urursadaa, miisaamaadka ayuu u hayaa, marmarna waxa uu sameeyaa waxyaalahan soo socda. Waxa uu u dhaqaaqaa sawirro si firfircoon u codsaday, kuwaas oo ay jiraan codsiyo badan, kaydka kulul, meel kasta oo ay joogaan.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Sawirada si naadir ah loo codsado oo si yar loo codsado ayaa si tartiib tartiib ah looga soo saarayaa kaydka kulul oo la geliyaa qabowga.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Oo markii aan ka dhammaanno meel bannaan oo kaydka ah, waxaan si fudud u bilownaa inaan wax walba ka tirtirno kaydka qabow si aan kala sooc lahayn. Iyo habka, tani waxay si fiican u shaqeysaa.

Si sawirka loo kaydiyo isla markaaba marka loo wakiilanayo kaydiyaha, waxaanu isticmaalnaa dardaaranka proxy_store sidoo kale kaydku waa RAMDisk, i.e. isticmaalaha si degdeg ah ayuu u shaqeeyaa. Tani waxay khusaysaa gudaha serverka kaydinta laftiisa.

Su'aasha hadhsan ayaa ah sida codsiyada loogu qaybiyo server-yadan.

Aynu nidhaahno waxaa jira koox labaatan mishiin oo kaydinta ah iyo saddex kaydiyayaal (sidan ayaa dhacday).

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waxaan u baahanahay inaan si uun u go'aamino codsiyada sawirada iyo halka laga dejiyo.

Doorashada ugu caansan waa Round Robin. Mise shil ku samee?

Tani waxay si cad u leedahay tiro faa'iido darrooyin ah sababtoo ah waxaan u isticmaali karnaa kaydka si aan waxtar lahayn marka lagu jiro xaaladdan oo kale. Codsiyada waxay ku soo degi doonaan mashiinada random: halkan waa la kaydiyay, laakiin kan ku xiga ma sii jiro. Oo haddii waxaas oo dhan ay shaqeeyaan, aad bay u xumaan doontaa. Xataa iyadoo tiro yar oo mashiinno ah ay ku jiraan kooxda.

Waxaan u baahanahay inaan si aan mugdi ku jirin u go'aaminno server-ka aan soo dejineyno codsiga.

Waxaa jira hab banal ah. Waxaan xashiishka ka soo qaadanaa URL ama xashiishka furaha sharding-ka, kaas oo ku jira URL-ka, waxaanan u qaybinnaa tirada server-yada. Ma shaqayn doonaa? Dardaaran

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Kuwaas. Waxaan haynaa codsi 2% ah, tusaale ahaan, qaar ka mid ah "example_url" waxay had iyo jeer ku soo degi doontaa server-ka leh index "XNUMX", kaydinta si joogto ah ayaa loo tuuri doonaa sida ugu macquulsan.

Laakin dhib baa ka jirta dib u wadaagida nidaamkan. Dib-u-sharrid - Waxaan ula jeedaa beddelka tirada server-yada.

Aynu ka soo qaadno in kooxdayada kaydintu aanay xamili karin oo aanu go'aansanay inaanu ku darno mishiin kale.

Aan ku daro.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Hadda wax walba saddex looma qaybin, laakiin waxaa loo qaybiyaa afar. Markaa, ku dhawaad ​​dhammaan furayaasha aan haysan jirnay, ku dhawaad ​​​​dhammaan URL-yada hadda waxay ku nool yihiin adeegayaal kale. Dhammaan khasnadda ayaa la buriyay si fudud wax yar. Dhammaan codsiyada ayaa ku dhacay kooxdayada kaydinta, waxa ay noqotay mid aan fiicneyn, adeegga oo xumaaday iyo isticmaalayaasha aan ku qanacsanayn. Ma doonayo inaan taas sameeyo.

Doorashadan sidoo kale naguma habboona.

Taasi. maxaan sameynaa? Waa in aan si hufan u isticmaalno khasnadda, codsi la mid ah isla server-ka ku soo noqnoqda, laakiin u adkaysanno dib u wadaagista. Oo waxaa jira xal noocaas ah, ma aha mid adag. Waxa loo yaqaan xashiish joogto ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Muxuu u eg yahay?

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waxaan ka qaadnaa xoogaa shaqo ah furaha sharding waxaanan ku faafineynaa dhammaan qiyamkeeda goobada. Kuwaas. marka la joogo barta 0, qiimaheeda ugu yar iyo kan ugu badan ayaa isu yimaada. Marka xigta, waxaan ku dhejineynaa dhammaan server-yadayada isku goobabada sidaan oo kale:

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Server kasta waxaa lagu qeexaa hal dhibic, qaybta u socota dhanka saacadda, sidaas awgeed, waxaa u adeega martigeliyahaan. Marka codsiyadu noo yimaadaan, waxaanu isla markiiba aragnaa, tusaale ahaan, codsiga A - wuxuu leeyahay hash - waxaana u adeega server 2. Codsiga B - server 3. iyo wixii la mid ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Maxaa dhacaya xaaladan inta lagu jiro dib u qaybinta?

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Ma burino khasnadda oo dhan, sidii hore oo dhan, furayaasha oo dhanna ma beddelno, laakiin waax kasta waxaan u wareejinnaa masaafo yar si, marka loo eego, server-keena lixaad, oo aan rabno inaan ku darno, ku habboon booska bannaan, iyo halkaas ayaanu ku daraynaa.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Dabcan, xaaladdan oo kale furayaasha ayaa sidoo kale guuraya. Laakiin waxay ka guuraan si ka liita sidii hore. Oo waxaan aragnaa in labadayada furayaal ee hore ay ku hadheen server-yadooda, iyo server-kii kaydinta kaliya ee furihii ugu dambeeyay la bedelay. Tani waxay u shaqeysaa si hufan, oo haddii aad ku darto martigaliyayaasha cusub si kordheysa, markaa ma jirto dhibaato weyn halkan. Waxaad ku dartaa oo ku dartaa wax yar markiiba, sug ilaa inta kaydku ka buuxsamo mar kale, oo wax waliba si fiican u shaqeeyaan.

Su'aasha kaliya ayaa hadhsan diidmo. Aynu ka soo qaadno in nooc ka mid ah baabuurku aanu shaqaynayn.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Dhab ahaantiina ma doonayno inaan dib-u-cusboonaysiinno khariidadan hadda, baabi'inno qayb ka mid ah khasnadda, iyo wixii la mid ah, haddii, tusaale ahaan, mishiinka dib loo bilaabay, oo waxaan u baahanahay inaan si uun u isticmaalno codsiyada adeegga. Waxaan si fudud ku haynaa hal kayd sawir oo kayd ah goob kasta, kaas oo u shaqeeya sidii beddelka mishiin kasta oo hadda maqan. Oo haddii si lama filaan ah mid ka mid ah server-yadayada uu noqdo mid aan la heli karin, taraafikada halkaas ayaa tagta. Dabcan, ma hayno wax kayd ah, i.e. waa qabow, laakiin ugu yaraan codsiyada isticmaalaha waa la habeeyey. Haddii tani ay tahay muddo gaaban, markaa waxaan si buuxda ula kulannaa si deggan. Waxa jira culays badan oo kaydinta Haddii muddadani dheer tahay, markaa waxaan horayba u gaari karnaa go'aan - in laga saaro server-kan khariidada ama haddii kale, ama laga yaabo in lagu beddelo mid kale.

Tani waxay ku saabsan tahay nidaamka kaydinta Aynu eegno natiijada.

Waxay u egtahay inaysan jirin wax adag halkan. Laakiin habkan loo maareeyo khasnadda ayaa na siisay qiime khiyaano ah oo ku saabsan 98%. Kuwaas. 80 kun oo ka mid ah codsiyadan ilbiriqsi kasta, 1600 oo keliya ayaa gaadha kaydinta, tanina waa culays caadi ah, si degan ayay ugu adkaystaan, mar walba kayd ayaynu leenahay.

Waxaan dhignay serfaradan saddex ka mid ah DC-yadayada, waxaanan helnay saddex dhibcood oo joogitaanka - Prague, Miami iyo Hong Kong.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Taasi. Waxay ku badan yihiin ama ka yar yihiin maxalli ah mid kasta oo ka mid ah suuqyadeena bartilmaameedka ah.

Iyo sida gunno fiican, waxaan helnay wakiilkan kaydinta, kaas oo CPU-gu dhab ahaantii shaqo-la'aan yahay, sababtoo ah looma baahna si loogu adeego nuxurka. Halkaasna, annagoo adeegsanayna NGINX+ Lua, waxaan hirgelinay caqli-gal badan oo faa'iido leh.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Tusaale ahaan, waxaan ku tijaabin karnaa webp ama jpeg horusocod ah (kuwani waa qaabab casri ah oo wax ku ool ah), arag sida ay u saamayso taraafikada, samaynta go'aamada qaarkood, u suurtageliso wadamada qaarkood, iwm.; samee cabbir firfircoon ama jar sawiro duullimaad.

Tani waa adeeg fiican marka tusaale ahaan, aad haysato app mobile oo muujinaya sawiro, codsiga moobilkuna ma rabo inuu ku lumiyo CPU-ga macmiilka marka uu codsado sawir weyn ka dibna dib u habeyn lagu sameeyo si uu u riixo aragtida. Waxaan si fudud u qeexi karnaa qaar ka mid ah xuduudaha URL-ka shuruudaha ku jira ee UPrt, iyo kaydka sawirku wuxuu cabbiri doonaa sawirka laftiisa. Sida caadiga ah, waxay dooran doontaa cabbirka aan jir ahaan ku leenahay diskka, sida ugu dhow ee suurtogalka ah midka la codsaday, oo hoos u dhigaya isku-duwayaasha gaarka ah.

Jid ahaan, waxaanu samaynay cajalado muuqaal ah oo si cad loo heli karo shantii sano ee la soo dhaafay ee shirka horumarinta nidaamyada culeyska sarreeya HighLoad++. Daawo, baro, wadaag oo is-qor YouTube channel.

Waxaan sidoo kale ku dari karnaa waxyaabo badan oo macquul ah oo alaabta halkaas. Tusaale ahaan, waxaan ku dari karnaa calaamado-biyoodyo kala duwan annagoo adeegsanayna cabbirada URL, waxaan blur karnaa, blur ama sawirro pixelate. Tani waa marka aan rabno inaan muujino sawirka qofka, laakiin ma rabno inaan muujinno wejigiisa, tani waxay si fiican u shaqeysaa, dhammaan halkan ayaa laga fuliyay.

Maxaan helnay? Waxaan helnay seddex dhibcood oo joogitaanka, heer khiyaano wanaagsan, isla markaana kuma haysanno CPU shaqo la'aan mashiinadan. Hadda waxa uu noqday, dabcan, ka muhiimsan sidii hore. Waxaan u baahanahay inaan nafteena siino baabuur ka xoog badan, laakiin waa u qalantaa.

Tani waxay khusaysaa soo celinta sawirada. Wax walba halkan waa cad yihiin oo cad. Waxaan u maleynayaa inaanan helin Ameerika, ku dhawaad ​​CDN kasta ayaa sidan u shaqeeya.

Iyo, ay u badan tahay, dhegeyste casri ah ayaa laga yaabaa inuu qabo su'aal: maxaa diidaya oo kaliya in wax walba loogu beddelo CDN? Waxay noqon doontaa isku mid; dhammaan CDN-yada casriga ah ayaa tan samayn kara. Waxaana jira dhowr sababood.

Ka hore waa sawiro.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Tani waa mid ka mid ah qodobbada muhiimka ah ee kaabayaasheena, waxaanan u baahanahay in la xakameeyo intii suurtagal ah. Haddii tani ay tahay nooc ka mid ah xalalka iibiye dhinac saddexaad ah, oo aanad wax awood ah ku lahayn, way kugu adkaan doontaa inaad la noolaato marka aad haysato kayd badan, iyo markaad leedahay qulqul aad u weyn. codsiyada isticmaalaha.

Aan ku siiyo tusaale. Hadda, kaabayaashayaga, waxaan awoodnaa, tusaale ahaan, haddii ay dhacdo qaar ka mid ah dhibaatooyinka ama garaaca dhulka hoostiisa, aado mishiinka oo ku qaso meeshaas, si qiyaas ah. Waxaan ku dari karnaa ururinta qiyaasaha qaar ee aan u baahanahay oo kaliya, waxaan tijaabin karnaa si uun, arag sida tani u saamayso garaafyada, iyo wixii la mid ah. Hadda tirokoobyo badan ayaa laga ururiyay kooxdan kaydinta. Waxaannu si xilliyo ah u eegnaa oo aan waqti dheer ku qaadannaa sahaminta cilladaha qaarkood. Haddii ay ahaan lahayd dhinaca CDN, aad bay u adkaan lahayd in la xakameeyo. Ama, tusaale ahaan, haddii nooc ka mid ah shil dhaco, waan ognahay waxa dhacay, waan ognahay sida loola noolaado iyo sida looga gudbo. Tani waa gunaanadkii ugu horreeyay.

Gabagabada labaad sidoo kale waa mid taariikhi ah, sababtoo ah nidaamku wuxuu soo socday muddo dheer, waxaana jiray shuruudo badan oo ganacsi oo kala duwan oo heerar kala duwan ah, mar walbana kuma haboona fikradda CDN.

Qodobka ka dambeeyana kii hore waa

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Tani waa sababta oo ah kaydinta sawirada waxaan ku haynaa caqli badan oo gaar ah, oo aan mar walba lagu dari karin codsi. Uma badna in CDN uu kugu daro waxyaabo caado ah markaad codsato. Tusaale ahaan, siraynta URL-yada haddii aadan rabin in macmiilku awoodo inuu wax beddelo. Ma doonaysaa inaad beddesho URL-ka server-ka oo aad sirayso, ka dibna aad u soo dirto qaar ka mid ah cabbirrada firfircoon halkan.

Waa maxay gunaanad tani soo jeedinaysaa? Xaaladeena, CDN ma aha beddel aad u wanaagsan.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Iyo kiiskaaga, haddii aad leedahay wax shuruudo ganacsi oo gaar ah, markaa waxaad si fudud u hirgelin kartaa wixii aan ku tusay naftaada. Oo tani waxay si fiican ula shaqayn doontaa profile load la mid ah.

Laakiin haddii aad haysato nooc ka mid ah xalalka guud, oo hawshu aanay ahayn mid gaar ah, waxaad si badbaado leh u qaadan kartaa CDN. Ama haddii wakhtiga iyo agabka ay kaaga muhiimsan yihiin xakamaynta.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

CDN-yada casriga ahi waxay haystaan ​​ku dhawaad ​​wax kasta oo aan hadda kaaga sheegay. Marka laga reebo lagu daray ama laga jaray sifooyinka qaar.

Tani waxay ku saabsan tahay bixinta sawirada.

Bal hadda aynu in yar hore u socono dib-u-eegisteena oo aynu ka hadalno kaydinta.

2013 ayaa maraysa.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Serfarada kaydinta ayaa lagu daray, dhibaatooyinka wax qabadku way baxeen. Wax walba waa fiican yihiin. Xogta xogta ayaa koraysa Laga bilaabo 2013, waxaan haysanay ilaa 80 adeegayaal oo ku xidhan kaydinta, iyo ilaa 40 kuwa kaydiya DC kasta. Tani waa 560 terabyte oo xog ah DC kasta, i.e. qiyaastii petabyte guud ahaan.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Iyo kobaca xogta xogta, kharashyada hawlgelinta ayaa bilaabay inay si weyn kor ugu qaadaan. Maxay tani ka dhigan tahay?

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Jaantuskan la sawiray - oo leh SAN, oo leh mashiinno iyo khasnado ku xiran - waxaa jira dhibco badan oo guuldarro ah. Haddii aan horeba wax uga qabannay fashilka kaydinta server-ka ka hor, wax walba waxay ahaayeen wax badan ama ka yar oo la saadaalin karo oo la fahmi karo, laakiin dhinaca kaydinta wax walba ayaa ka sii xumaaday.

Marka hore, Shabakadda Aagga Kaydinta (SAN) lafteeda, taas oo dhici karta.

Marka labaad, waxay ku xidhan tahay iyada oo loo marayo optics ilaa mishiinnada dhamaadka. Waxaa laga yaabaa inay jiraan dhibaatooyin kaadhadhka indhaha iyo dhinbiilayaasha.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Dabcan, ma jiraan qaar badan oo iyaga ka mid ah sida SAN lafteeda, laakiin, si kastaba ha ahaatee, kuwani waa qodobbada fashilka.

Marka xigta waa mashiinka laftiisa, kaas oo ku xiran kaydinta. Waxa kale oo ay ku fashilmi kartaa.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Isku soo wada duuboo, waxaan leenahay seddex dhibcood oo guul darro ah.

Intaa waxaa dheer, marka lagu daro dhibcaha guuldarrooyinka, waxaa jira dayactir culus oo kaydinta lafteeda.

Tani waa nidaam isku dhafan oo ka kooban qaybo badan, iyo injineerada nidaamyada waxay yeelan karaan waqti adag inay la shaqeeyaan.

Iyo qodobka ugu dambeeya, ee ugu muhiimsan. Haddii guuldarradu ku dhacdo mid ka mid ah saddexdan dhibcood, waxaan haysanaa fursad aan eber ahayn oo ah inaan lumino xogta isticmaalaha sababtoo ah nidaamka faylka ayaa dhici karta.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Aynu nidhaahno nidaamkayaga faylka wuu jabay. Marka hore, soo kabashadiisu waxay qaadataa waqti dheer - waxay qaadan kartaa hal usbuuc oo leh tiro badan oo xog ah. Marka labaadna, aakhirka waxay u badan tahay inaynu ku dambayn doono tiro badan oo faylal ah oo aan la fahmi karin kuwaas oo u baahan doona in si uun loogu daro sawirrada isticmaaleyaasha. Waxaanan halis ugu jirnaa inaan lumino xogta. Khatartu aad bay u sarraysaa. Iyo mar kasta oo xaaladahan oo kale ay dhacaan, iyo dhibaatooyinka badan ee ka soo baxa silsiladdan oo dhan, khatartan sareeysa.

Waxay ahayd in arrintan wax laga qabto. Oo waxaan go'aansanay in aan u baahanahay oo kaliya in aan kaydin xogta. Tani dhab ahaantii waa xal muuqda iyo mid wanaagsan. Maxaan samaynay?

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Tani waa sida uu u ekaa serverkayagu markii lagu xidhay kaydinta ka hor. Tani waa hal qayb oo muhiim ah, waa kaliya qalab xannibaya oo dhab ahaantii u taagan buurta kaydinta fog ee loo marayo optics.

Waxa aanu ku darnay qayb labaad.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waxaan dhignay kayd labaad oo agtiisa ah (nasiib wanaag, maaha wax qaali ah xagga lacagta), waxaanan ugu yeernay qayb kayd ah. Waxa kale oo ay ku xidhan tahay iyada oo loo marayo optics waxana ay ku taal isla mashiinka. Laakin waxaan u baahanahay in aan si uun isu dhigno xogta dhexdooda.

Halkan waxa aanu si fudud ku samaynaynaa saf aan isku mid ahayn.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Mashquul badan maaha. Waan ognahay inaanaan haysan diiwaan ku filan. Safku waa uun miis ku yaal MySQL oo ay ku qoran yihiin khadadka sida "waxaad u baahan tahay inaad sawirkan ku soo celiso". Isbeddel kasta ama soo rarid kasta, waxaan ka koobiyeynaa qaybta ugu weyn si aan u kaydino annagoo isticmaalna asynchronous ama nooc ka mid ah shaqaalaha asalka ah.

Oo sidaas daraaddeed waxaan had iyo jeer leenahay laba qaybood oo iswaafaqsan. Xitaa haddii qayb ka mid ah nidaamkan uu ku guuldareysto, waxaan had iyo jeer bedeli karnaa qaybta ugu weyn ee kaydinta, wax walbana way sii wadi doonaan inay shaqeeyaan.

Laakiin sababtaas awgeed, culeyska wax-akhrisku aad buu u kordhayaa, sababtoo ah... Marka lagu daro macaamiisha wax ka akhriya qaybta ugu muhiimsan, sababtoo ah waxay marka hore eegaan sawirka halkaas (waa mid aad u dhow halkaas), ka dibna ka raadi kaydka, haddii aysan helin (laakiin NGINX kaliya ayaa tan sameeya), Nidaamkeena sidoo kale waa kayd dheeri ah oo hadda laga akhriyo qaybta ugu weyn. Ma ahan in tani ay ahayd dhalo, laakiin ma aanan dooneynin inaan kordhiyo culeyska, asal ahaan, sidaas oo kale.

Waxa aanu ku darnay saxan sadexaad oo ah SSD yar oo aanu u bixinay buffer.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Sida ay hadda u shaqeyso.

Isticmaaluhu waxa uu sawir ku dhejiyaa kaydiyaha, ka dib dhacdo ayaa lagu tuuray safka taas oo muujinaysa in loo baahan yahay in la koobiyeeyo laba qaybood. Waa la koobiyeeyay, sawirkuna wuxuu ku nool yahay kaydka in muddo ah (dheh, maalin), ka dibna kaliya ayaa halkaas laga nadiifiyaa. Tani waxay si weyn u wanaajisaa waayo-aragnimada isticmaalaha, sababtoo ah isticmaaluhu wuxuu soo dhejiyaa sawir, sida caadiga ah, codsiyada isla markiiba waxay bilaabaan inay raacaan, ama isaga laftiisa ayaa cusbooneysiiyay bogga oo dib u cusbooneysiiyay. Laakiin wax walba waxay ku xiran tahay codsiga samaynta soo dejinta.

Ama, tusaale ahaan, dadka kale ee uu bilaabay inuu is tuso isla markiiba waxay soo diraan codsiyo sawirkan ka dib. Weli kuma jirto kaydka; codsiga ugu horreeya wuxuu u dhacaa si degdeg ah. Asal ahaan la mid ah sida kaydka sawirka. Kaydinta qunyar socodka ah kuma lug laha tan gabi ahaanba. Oo marka maalin ka dib la nadiifiyo, mar hore ayaa lagu kaydiyay lakabka kaydinta, ama, waxay u badan tahay, qofna uma baahna mar dambe. Kuwaas. Khibrada isticmaale ee halkan ayaa si aad u wanaagsan u koray sababtoo ah wax-is-daba-marin fudud oo noocaas ah.

Waa hagaag, iyo tan ugu muhiimsan: waxaan joojinay luminta xogta.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Aynu nidhaahno waanu joojinay suurtagal ah lumin xogta, sababtoo ah runtii ma aanan lumin. Laakiin waxaa jirtay khatar. Waxaan aragnaa in xalkani, dabcan, wanaagsan yahay, laakiin waa wax yar oo la mid ah hagaajinta calaamadaha dhibaatada, halkii si buuxda loo xalin lahaa. Dhibaatooyinka qaarna halkan ayay ku haraan.

Marka hore, tani waa barta guuldarada ee qaabka martigeliyaha jirka laftiisa oo ay ku shaqeeyaan dhammaan mishiinnadan; ma aysan tagin.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Marka labaad, waxaa weli jira dhibaatooyin SAN-yada, dayactirkooda culus, iwm. Ma ahayn inay ahayd arrin muhiim ah, laakiin waxaan doonayay inaan isku dayo inaan si uun u noolaado la'aanteed.

Oo waxaan samaynay version saddexaad (xaqiiqda, labaad ee dhabta ah) - version boos celinta. Sidee bay u ekayd?

Tani waa waxa ay ahayd -

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Dhibaatooyinkayaga ugu muhiimsan waa xaqiiqda ah in tani ay tahay martigeliyaha jirka.

Marka hore, waxaan ka saareynaa SAN-yada sababtoo ah waxaan rabnaa inaan tijaabino, waxaan dooneynaa inaan isku dayno kaliya darawalada adag ee maxaliga ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Tani waxay horeyba u ahayd 2014-2015, iyo wakhtigaas xaaladda saxanadaha iyo awoodda ay ku leeyihiin hal marti ayaa aad u fiicnaaday. Waxaan go'aansanay sababta aan isku dayin.

Ka dibna waxaan si fudud u qaadannaa qaybtayada kaydka ah oo aan jir ahaan ugu wareejinno mishiin gaar ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Sidaa darteed, waxaan helnaa jaantuskan. Waxaanu haynaa laba baabuur oo kaydiya xog isku mid ah. Si buuxda ayay isu xoojiyaan oo xogta isku xidh-xidhaan iyagoo isticmaalaya saf aan caadi ahayn oo isla MySQL ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waa maxay sababta tani si fiican u shaqeyso waa sababtoo ah waxaan haynaa diiwaanno yar. Kuwaas. Haddii qoraalku u dhigmi lahaa wax akhriska, waxa laga yaabaa in aanu yeelan lahayn nooc ka mid ah shabakadaha dusha iyo dhibaatooyinka. Waxaa jira qoraal yar, wax badan oo akhrin ah - habkani si fiican ayuu u shaqeeyaa, i.e. Marar dhif ah ayaanu nuqul ka samaynaa sawirada labadan adeeg.

Sidee tani u shaqeysaa, haddii aad eegto wax yar oo faahfaahsan.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Soo rar. Isku-dheellitirku si fudud ayuu u dooranayaa martigaliyayaasha aan kala sooc lahayn oo laba-labo ku dhejinaya. Isla mar ahaantaana, wuxuu si dabiici ah u sameeyaa hubinta caafimaadka wuxuuna hubiyaa in baabuurku uusan dhicin. Kuwaas. waxa uu sawiro ku dhejiyaa kaliya server-ka tooska ah, ka dibna safka aan la socon waxa oo dhan waxa loo koobiyeeyay deriskiisa. Marka la soo geliyo wax walba waa mid aad u fudud.

Hawshu way ka yara adag tahay.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Lua ayaa naga caawiyay halkan, sababtoo ah way adkaan kartaa in la sameeyo macquulka noocaas ah vanilj NGINX. Waxaan marka hore codsi u dirnaa server-ka ugu horreeya, arag haddii sawirku jiro, sababtoo ah waxaa suurtogal ah in la soo dhejiyo, tusaale ahaan, deriska, laakiin weli halkan ma iman. Haddii sawirku jiro, taasi way fiican tahay. Isla markiiba waxaan siinaa macmiilka iyo, suurtogal ahaan, kaydin.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Haddii aysan halkaas joogin, waxaan si fudud u codsaneynaa deriskeena waxaanan dammaanad qaadaynaa inaan ka helno halkaas.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Taasi. mar labaad waxaan dhihi karnaa: waxaa laga yaabaa inay jiraan dhibaatooyin ku saabsan waxqabadka, sababtoo ah waxaa jira safarro wareeg ah oo joogto ah - sawirka ayaa la soo galiyay, halkan maaha, waxaan sameyneynaa laba codsi halkii mid ka mid ah, tani waa inay si tartiib ah u shaqeyso.

Xaaladeena, tani si tartiib tartiib ah uma shaqeyso.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waxa aanu ku ururinay tiro cabbirro ah nidaamkan, iyo heerka caqliga ku salaysan ee habkan oo kale waa 95%. Kuwaas. Dib-u-dhaca kaydkani waa mid yar, taas awgeedna waxaan ku dhownahay dammaanad, ka dib markii sawirka la dhejiyo, waxaan qaadi doonaa markii ugu horeysay oo aan meelna tagin laba jeer.

Haddaba maxaa kale oo aan helnay oo runtii fiican?

Markii hore, waxaan haysanay qaybta ugu muhiimsan ee kaydinta, waxaanan ka akhrinay iyaga si isdaba-joog ah. Kuwaas. Had iyo jeer waxaanu ka baadhnay kan ugu horreeya, ka dibna kaydinta. Waxay ahayd hal dhaqaaq.

Hadda waxaan ka faa'iidaysannaa akhrinta laba mishiin hal mar. Waxaan u qaybin codsiyada iyadoo la isticmaalayo Round Robin. Boqolkiiba yar kiisaska waxaanu samaynaa laba codsi. Laakiin guud ahaan, hadda waxaan haysanaa kayd wax-akhris oo laba jibaar ka badan intii aan haysanay. Waxaana aad loo dhimay culayskii mishiinadii dirida iyo si toosaba u saarnaa mishiinada kaydka ah ee aanu markaas haysanay.

Xagga dulqaadka khaladka. Runtii, tani waa waxa aan inta badan u dagaalanay. Dulqaadka khaladka ah, wax walba waxay u noqdeen si weyn halkan.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Hal baabuur ayaa jabay.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Dhib malahan! Injineerka nidaamka xitaa ma toosin karo habeenkii, wuxuu sugi doonaa ilaa subaxda, wax xun ma dhici doono.

Haddii xitaa haddii mishiinkani uu xumaado, safku wuu maqan yahay, sidoo kale wax dhib ah ma jiraan, loggu wuxuu si fudud ugu urursan doonaa marka hore mashiinka nool, ka dibna waxaa lagu darayaa safka, ka dibna wuxuu ku sii gudbi doonaa gaariga. shaqada geli muddo ka dib.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Wax la mid ah dayactirka. Waxaan si fudud u daminnaa mid ka mid ah mishiinada, gacanta ka soo saar dhammaan barkadaha, waxay joojisaa helitaanka gaadiidka, waxaanu samaynaa nooc ka mid ah dayactirka, waxaanu wax ka beddelnaa, ka dibna waxaan ku soo celinaa adeegga, iyo kaydkani si dhakhso ah ayuu u qabtaa. Kuwaas. maalintii, wakhtiga dhimista hal baabuur ayaa ku soo kordha dhowr daqiiqo gudahood. Tani runtii aad ayey u yar tahay. Dulqaadka qaladka, waxaan mar kale ku idhi, wax walba waa ku fiican yihiin halkan.

Maxa go'aan laga gaari karaa qorshahan shaqo ka joojinta?

Waxaan helnay dulqaad qalad ah.

fududahay in la isticmaalo Maadaama mashiinadu leeyihiin darawalo adag oo maxalli ah, tani aad bay ugu habboon tahay marka laga eego dhinaca shaqada ee aragtida injineerada la shaqeeya.

Waxaan helnay gunno akhris oo laba jibaaran.

Tani waa gunno aad u wanaagsan marka lagu daro dulqaadka qaladka.

Laakiin sidoo kale waxaa jira dhibaatooyin. Hadda waxaan haynaa horumarin aad u adag oo ka mid ah sifooyinka qaarkood ee la xiriira tan, sababtoo ah nidaamku wuxuu noqday 100% ugu dambeyntii joogto ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Waa in aan, nidhaahnaa, shaqada asalka ah, si joogto ah u fekero: "Waa maxay server-ka aan hadda ku shaqaynayno?", "Ma dhab ahaantii halkan sawir hadda ma jiraa?" iwm. Tani, dabcan, dhammaantood waa la duubay, iyo barnaamij-yaqaanka qoraya macquulka ganacsiga, waa mid hufan. Laakiin, si kastaba ha ahaatee, lakabkan weyn ee adag ayaa soo muuqday. Waxaanse diyaar u nahay inaan arrintaas uga dulqaadno wanaagga aan ka helnay.

Oo halkan mar kale xoogaa khilaaf ah ayaa ka dhasha.

Waxaan ku idhi bilawgii in wax walba lagu kaydiyo darawallada adag ee maxaliga ahi ay xun yihiin. Haddana waxaan leeyahay waanu ka helnay.

Haa, runtii, muddo ka dib xaaladdu aad bay isu beddeshay, hadda habkani wuxuu leeyahay faa'iidooyin badan. Marka hore, waxaan helnaa qalliin aad uga fudud.

Marka labaad, waa wax soo saar badan, sababtoo ah ma hayno kuwan kantaroolayaasha tooska ah ama isku xirka khaanadaha diskka.

Waxaa jira tiro aad u badan oo mashiinno ah, kuwanuna waa dhowr saxanadood oo halkan ku urursan mashiinka dushiisa oo weerar lagu qaaday.

Laakiin waxaa sidoo kale jira khasaare.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Tani waa ku dhawaad ​​1,5 jeer ka qaalisan isticmaalka SAN-yada xitaa qiimaha maanta. Sidaa darteed, waxaan go'aansanay inaanan si geesinimo leh ugu beddelin kooxdayada weyn baabuurta leh darawallada adag ee maxalliga ah waxaanan go'aansannay inaan ka tagno xal isku-dhafan.

Kala badh mashiinadayadu waxay ku shaqeeyaan darawallada adag (si fiican, badh ma aha - malaha boqolkiiba 30). Inta soo hartayna waa baabuur duug ah oo lahaan jiray nidaamkii boos celinta ee ugu horreeyay. Si fudud ayaanu dib ugu soo dejinay, maadaama aanan u baahnayn xog cusub ama wax kale, waxa aanu si fudud uga soo guurnay hal-marti jidheed oo aanu laba ka guurnay.

Hadda waxaan haysanaa kayd badan oo wax-akhris ah, waanan ballaarinnay. Haddii hore aan hal bakhaar ku rakibnay hal mashiin, hadda waxaan ku dhejineynaa afar, tusaale ahaan, hal lamaane. Oo si fiican ayay u shaqeysaa.

Aynu si kooban u soo qaadano waxa inoo qabsoomay, waxa aanu u soo halgamay iyo in aanu guulaysanay.

Natiijooyinka

Waxaan leenahay isticmaaleyaal - ilaa 33 milyan.

Waxaan leenahay saddex dhibcood oo joogitaanka - Prague, Miami, Hong Kong.

Waxay ka kooban yihiin lakabka kaydinta, kaas oo ka kooban baabuur leh saxanadaha maxaliga ah ee degdega ah (SSDs), kuwaas oo mashiinada fudud ee NGINX, access.log iyo Python daemons ay shaqeeyaan, kuwaas oo ka shaqeeya waxaas oo dhan oo maamula kaydinta.

Haddii aad rabto, waxaad ku jirtaa mashruucaaga, haddii sawiradu aanay ahayn kuwo muhiim kuu ah sida ay annaga noo yihiin, ama haddii xakamaynta ganacsiga ee ka soo horjeeda xawaaraha horumarinta iyo kharashyada kheyraadka ay ku jiraan jihada kale ee adiga, markaa waxaad si badbaado leh u bedeli kartaa CDN leh, CDN-yada casriga ah si fiican ayey u shaqeeyaan.

Waxa ku xiga lakabka kaydinta, kaas oo aanu ku hayno rucubyo lammaane oo mashiinno ah oo midba midka kale taageerayo, faylalka si isku mid ah ayaa midba midka kale looga koobiyeeyay mar kasta oo ay isbeddelaan.

Waxaa intaa dheer, qaar ka mid ah mishiinadan waxay la shaqeeyaan darawallada adag ee maxaliga ah.

Qaar ka mid ah mishiinadan waxay ku xidhan yihiin SAN.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Iyo, dhinaca kale, way ku habboon tahay in la isticmaalo iyo wax yar oo wax soo saar leh, dhinaca kale, waxay ku habboon tahay cufnaanta meelaynta iyo qiimaha halkii gigabyte.

Tani waa dulmar kooban oo ku saabsan qaab-dhismeedka waxa aan helnay iyo sida ay u horumareen.

Dhowr talooyin oo kale oo ka yimid kabtanka, kuwa aad u fudud.

Marka hore, haddii aad si lama filaan ah u go'aansato inaad si degdeg ah ugu baahan tahay inaad hagaajiso wax kasta oo ka mid ah kaabayaasha sawirkaaga, cabbir marka hore, sababtoo ah malaha waxba uma baahna in la hagaajiyo.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Aan ku siiyo tusaale. Waxaan haynaa koox mashiinno ah oo soo diraya sawiro ku lifaaqan sheekeysiga, nidaamkuna wuxuu ka shaqeynayay halkaas ilaa 2009, qofna kuma dhibtoonayo. Qof kastaa wuu fiican yahay, qof kastaa wuu jecel yahay wax walba.

Si loo cabbiro, marka hore soo laadlaad farabadan oo cabbirro ah, eeg, ka dibna go'aanso waxaadan ku faraxsanayn iyo waxa u baahan in la hagaajiyo. Si loo cabbiro tan, waxaan haynaa qalab qabow oo la yiraahdo Pinba.

Waxay kuu ogolaanaysaa inaad ka ururiso tirokoob aad u faahfaahsan NGINX codsi kasta iyo koodka jawaabta, iyo qaybinta wakhtiyada - wax kasta oo aad rabto. Waxay leedahay xidhidhyo dhammaan noocyada hababka falanqaynta kala duwan, ka dibna waxaad u eegi kartaa dhammaan si qurux badan.

Marka hore waanu cabbirnay, ka dibna waanu hagaajinnay.

Dheeraad ah. Waxaan ku wanaajinaa wax-akhrinta khasnad, ku qorista shaandheynta, laakiin tani waa qodob cad.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Dheeraad ah. Haddii aad hadda bilaabayso inaad dhisto nidaamkaaga, markaa waxa aad u fiican inaad sawirro u samayso sidii faylal aan beddeli karin. Sababtoo ah isla markiiba waxaad lumisaa dhibco dhan oo dhan oo leh khasnado aan ansax ahayn, sida caqligu u helo nooca saxda ah ee sawirka, iyo wixii la mid ah.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Aynu nidhaahno waxaad soo galisay boqol, ka dibna beddeshay, ka dhig si ay u noqoto fayl jir ahaan ka duwan. Kuwaas. Looma baahna in la fekero: hadda waxaan kaydin doonaa meel yar, u qor isla faylka, beddel nooca. Tani had iyo jeer si fiican uma shaqeyso oo waxay keentaa madax xanuun badan oo dambe.

Qodobka xiga. Ku saabsan wax ka beddelka duulimaadka

Markii hore, marka isticmaalayaashu soo dhejiyaan sawir, waxaanu isla markiiba gooyay tiro dhan oo cabbir ah dhammaan munaasabadaha, macaamiisha kala duwan, dhammaantoodna waxay ku jireen diskka. Hadda waan ka tagnay tan.

Waxaan ka tagnay kaliya saddex cabbir oo waaweyn: yar, dhexe iyo weyn. Waxaan si fudud wax kasta oo kale ka yareyneynaa cabbirka ka dambeeya midka nalaga codsaday Uport, waxaan si fudud u sameynaa hoos u dhigista oo siino isticmaalaha.

CPU-da lakabka kaydinta halkan ayaa soo baxday inay aad uga jaban tahay haddii aan si joogto ah u soo celinno cabbiradan kaydinta kasta. Aynu nidhaahno waxaan rabnaa inaan ku darno mid cusub, tani waxay qaadan doontaa hal bil - meel kasta ku samee qoraal si habsami leh u samayn lahaa, iyada oo aan la burburin kooxda. Kuwaas. Haddii aad haysato fursad aad ku doorato hadda, way fiicantahay inaad sameyso qiyaaso jireed oo yar intii suurtagal ah, laakiin si ugu yaraan qaybinta qaar ay tahay, dheh, saddex. Iyo wax kasta oo kale si fudud ayaa loo qiyaasi karaa duulista iyadoo la adeegsanayo modules diyaarsan. Dhammaan waa mid aad u fudud oo hadda la heli karo.

Iyo kordhinta kaabaynta asynchronous waa fiican tahay.

Sida dhaqankayagu muujiyay, nidaamkani wuxuu si weyn u shaqeeyaa dib u dhigista faylasha la beddelay.

Qaab dhismeedka kaydinta iyo wadaaga sawirada Badoo

Qodobka ugu dambeeya sidoo kale waa cad yahay. Haddii kaabayaashaagu aysan hadda haysan dhibaatooyinkan oo kale, laakiin ay jiraan wax jabin kara, hubaal way jabi doontaa marka ay noqoto wax yar. Sidaa darteed, waxaa fiican inaad hore uga fikirto arrintan oo aadan la kulmin dhibaatooyin. Taasi waa waxa aan rabay in aan sheego.

Xiriirada

» bo0rsh201
» Badoo Blog

Warbixintani waa qoraal ka mid ah khudbadihii ugu fiicnaa ee laga jeediyay shirka horumarinta nidaamyada rarka sare leh HighLoad++. In ka yar hal bil ayaa ka hartay inta laga gaarayo shirka HighLoad++ 2017.

Horay ayaanu u diyaarsannay Barnaamijka shirkaJadwalka ayaa hadda si firfircoon loo sameeyay.

Sannadkan waxaan sii wadeynaa sahaminta mawduuca naqshadaha iyo cabbirka:

Waxaan sidoo kale u isticmaalnaa qaar ka mid ah agabkan koorsadayada tababarka onlaynka ah ee ku saabsan horumarinta hababka rarka sarreeya HighLoad.Hagaha waa silsilad xarfo, maqaallo, qalab, muuqaallo si gaar ah loo soo xulay. Buuggeena wax-barashada waxa uu ka kooban yahay in ka badan 30 walxood oo gaar ah. Ku xidhnow!

Source: www.habr.com

Add a comment