Indlela yokulinganisa ukusuka kwi-1 ukuya kubasebenzisi be-100

Uninzi lwabaqalisi baye badlula kule nto: izihlwele zabasebenzisi abatsha zibhalisa yonke imihla, kwaye iqela lophuhliso liyasokola ukugcina inkonzo isebenza.

Yingxaki entle ukuba nayo, kodwa luncinci ulwazi olucacileyo kwiwebhu malunga nendlela yokulinganisa ngononophelo usetyenziso lwewebhu ukusuka kwinto engekhoyo ukuya kumakhulu amawaka abasebenzisi. Ngokuqhelekileyo kukho izisombululo zomlilo okanye izisombululo zebhotile (kwaye kaninzi zombini). Ke ngoko, abantu basebenzisa ubuchule obuchwepheshile ukukala iprojekthi yabo ye-amateur ibe yinto enzulu.

Makhe sizame ukucoca ulwazi kwaye sibhale ifomyula esisiseko. Siza kukala indawo yethu entsha yokwabelana ngeefoto zeGraminsta inyathelo ngenyathelo ukusuka kwi-1 ukuya kwi-100 yabasebenzisi.

Masibhale phantsi ukuba ngawaphi amanyathelo athile ekufuneka ethathiwe xa abaphulaphuli besanda ukuya kwi-10, 100, 1000, 10 kunye ne-000 yabantu.

Umsebenzisi omnye: umatshini om-1

Phantse sonke isicelo, nokuba yiwebhusayithi okanye isicelo esiphathwayo, sinezinto ezintathu eziphambili:

  • API
  • idatabase
  • umxhasi (isicelo esiphathwayo ngokwaso okanye iwebhusayithi)

I-database igcina idatha eqhubekayo. I-API inikezela ngezicelo kwaye ijikeleze le datha. Umxhasi uthumela idatha kumsebenzisi.

Ndafikelela kwisigqibo sokuba kulula kakhulu ukuthetha malunga nokulinganisa isicelo ukuba, ukusuka kwindawo yokujonga izakhiwo, umxhasi kunye namaqumrhu e-API ahlulwe ngokupheleleyo.

Xa siqala ukwakha usetyenziso, omathathu amacandelo anokuqhutywa kumncedisi omnye. Ngandlela thile, oku kuyafana nendawo yethu yophuhliso: injineli enye iqhuba idatabase, iAPI, kunye nomxhasi kumatshini omnye.

Ngokwethiyori, sinokuyithumela efini kumzekelo omnye weDigitalOcean Droplet okanye i-AWS EC2, njengoko kubonisiwe ngezantsi:
Indlela yokulinganisa ukusuka kwi-1 ukuya kubasebenzisi be-100
Ngaloo nto ithethiweyo, ukuba kuya kubakho umsebenzisi omnye kwisayithi, phantse ihlala inengqondo ukunikezela ngoluhlu lwedatha.

Abasebenzisi be-10: ukuhambisa i-database ukuya kwinqanaba elahlukileyo

Ukwahlula i-database kwiinkonzo ezilawulwayo ezifana ne-Amazon RDS okanye i-Digital Ocean Managed Database iya kusisebenzela kakuhle ixesha elide. Ibiza kakhulu kune-self-host kumatshini omnye okanye umzekelo we-EC2, kodwa ngezi nkonzo ufumana izandiso ezininzi eziluncedo ngaphandle kwebhokisi eziya kuba luncedo kwixesha elizayo: i-backup yemimandla emininzi, funda iikopi, ngokuzenzekelayo. backups, kunye nokunye.

Nantsi indlela ejongeka ngayo ngoku:
Indlela yokulinganisa ukusuka kwi-1 ukuya kubasebenzisi be-100

Abasebenzisi be-100: ukuhambisa umxhasi kwinqanaba elahlukileyo

Ngethamsanqa, abasebenzisi bethu bokuqala bathande ngokwenene isicelo sethu. I-Trafiki iya izinza ngakumbi, ngoko lixesha lokususa umxhasi kwinqanaba elahlukileyo. Kufuneka kuqatshelwe ukuba ukwahlukana amaqumrhu ngumba ongundoqo wokwakha usetyenziso olunokwandiswa. Njengoko enye inxalenye yenkqubo ifumana i-traffic eninzi, sinokuyihlula ukulawula indlela izikali zenkonzo ezisekelwe kwiipatheni ezithile zendlela.

Kungenxa yoko le nto ndithanda ukucinga ngomthengi ngokwahlukileyo kwi-API. Oku kwenza kube lula kakhulu ukucinga malunga nokuphuhlisa amaqonga amaninzi: iwebhu, iwebhu ehambayo, i-iOS, i-Android, izicelo ze-desktop, iinkonzo zeqela lesithathu, njl. Bonke bangabathengi nje abasebenzisa i-API efanayo.

Umzekelo, ngoku abasebenzisi bethu bahlala becela ukukhulula usetyenziso lweselula. Ukuba uyahlula umxhasi kunye namaqumrhu e-API, oku kuba lula.

Nantsi indlela ekhangeleka ngayo inkqubo enjalo:

Indlela yokulinganisa ukusuka kwi-1 ukuya kubasebenzisi be-100

Abasebenzisi be-1000: yongeza isilinganisi somthwalo

Izinto zijonge phezulu. Abasebenzisi beGraminsta bafaka iifoto ezininzi nangakumbi. Inani labantu ababhalisileyo nalo liyakhula. Umncedisi wethu we-API eyedwa unobunzima bokugcina yonke i-traffic. Kufuneka intsimbi engakumbi!

I-balancer yomthwalo ngumbono onamandla kakhulu. Ingcamango ephambili kukuba sibeka ibhalansi yomthwalo phambi kwe-API, kwaye isasaza i-traffic kwiimeko zenkonzo nganye. Le yindlela esikala ngayo ngokuthe tye, oku kuthetha ukuba songeza iiseva ezininzi ngekhowudi efanayo, sisonyusa inani lezicelo esinokuziqhuba.

Siza kubeka abalinganisi bomthwalo abahlukeneyo phambi komthengi wewebhu naphambi kwe-API. Oku kuthetha ukuba ungaqhuba iimeko ezininzi usebenzisa ikhowudi ye-API kunye nekhowudi yomxhasi wewebhu. Isilinganisi somthwalo siya kubhekisa izicelo kwiseva engalayishwanga kancinci.

Apha sifumana enye inzuzo ebalulekileyo - ukungasebenzi. Xa umzekelo omnye ungaphumeleli (mhlawumbi ugcwele kakhulu okanye untlitheka), sishiyeka nabanye abaqhubeka nokuphendula izicelo ezingenayo. Ukuba bekukho umzekelo omnye kuphela osebenzayo, ngoko ke xa kusilele inkqubo yonke iya konakala.

Isilinganisi somthwalo sikwabonelela ngokukalwa okuzenzekelayo. Sinokuyiqwalasela ukwandisa inani leemeko phambi komthwalo ophezulu, kwaye sinciphise xa bonke abasebenzisi belele.

Ngomlinganiso womthwalo, umgangatho we-API unokulinganiswa phantse ngokungenasiphelo, ukongeza nje iimeko ezintsha njengoko inani lezicelo landa.

Indlela yokulinganisa ukusuka kwi-1 ukuya kubasebenzisi be-100

Phawula. Okwangoku inkqubo yethu ifana kakhulu neenkampani zePaaS ezifana neHeroku okanye i-Elastic Beanstalk kwi-AWS zinikezela ngaphandle kwebhokisi (yiyo loo nto zithandwa kakhulu). I-Heroku ibeka i-database kwi-host host eyahlukileyo, ilawula i-balancer yomthwalo we-auto-scaling, kwaye ikuvumela ukuba ubambe umxhasi wewebhu ngokwahlukileyo kwi-API. Esi sizathu esihle sokusebenzisa i-Heroku kwiiprojekthi zesigaba sokuqala okanye ukuqala-ufumana zonke iinkonzo ezisisiseko ngaphandle kwebhokisi.

Abasebenzisi be-10: CDN

Mhlawumbi bekufanele ukuba sikwenzile oku kwasekuqaleni. Ukuqhuba izicelo kunye nokwamkela iifoto ezintsha kuqalisa ukubeka uxinzelelo oluninzi kwiiseva zethu.

Ngeli nqanaba, kufuneka usebenzise inkonzo yefu yokugcina umxholo we-static - imifanekiso, iividiyo kunye nokunye okuninzi (i-AWS S3 okanye i-Digital Ocean Spaces). Ngokubanzi, i-API yethu kufuneka igweme ukuphatha izinto ezifana nokukhonza imifanekiso kunye nokulayisha imifanekiso kwiseva.

Enye inzuzo yokubamba ifu yi-CDN (i-AWS ibiza le nto yokongeza kwi-Cloudfront, kodwa abaninzi ababoneleli bokugcina ifu banikezela ngaphandle kwebhokisi). I-CDN igcina ngokuzenzekelayo imifanekiso yethu kumaziko ahlukeneyo edatha emhlabeni jikelele.

Nangona iziko lethu ledatha eliphambili linokuthi libekwe e-Ohio, ukuba umntu ucela umfanekiso ovela eJapan, umboneleli wefu uya kwenza ikopi kwaye ayigcine kwiziko labo ledatha yaseJapan. Umntu olandelayo ocela lo mfanekiso eJapan uya kuwufumana ngokukhawuleza okukhulu. Oku kubalulekile xa sisebenza ngeefayile ezinkulu, ezifana neefoto okanye iividiyo, ezithatha ixesha elide ukukhuphela nokuhambisa kwiplanethi yonke.

Indlela yokulinganisa ukusuka kwi-1 ukuya kubasebenzisi be-100

Abasebenzisi be-100: ukulinganisa umaleko wedatha

I-CDN incede kakhulu: i-traffic ikhula ngesantya esipheleleyo. I-blogger yevidiyo eyaziwayo uMavid Mobrick usanda kubhaliswa nathi kwaye wathumela "ibali" lakhe, njengoko bethetha. Ndiyabulela kwi-balancer yomthwalo, i-CPU kunye nokusetyenziswa kwememori kwiiseva ze-API zigcinwa ziphantsi (izihlandlo ezilishumi ze-API zisebenza), kodwa siqala ukufumana ixesha elininzi lokuphuma kwizicelo ... apho oku kulibaziseka kuvela phi?

Ukumba kancinci kwiimethrikhi, sibona ukuba i-CPU kwiseva yedatha ye-80-90% ilayishiwe. Sisemdeni.

Ukulinganisa umaleko wedatha yeyona nxalenye inzima yenxaki. Iiseva ze-API zibonelela ngezicelo ezingenammiselo, ke ngoko songeza ngakumbi iimeko ze-API. Impumlo uninzi oovimba beenkcukacha abanakwenza oku. Siza kuthetha malunga neenkqubo zolawulo lwedatha ethandwayo (i-PostgreSQL, i-MySQL, njl.).

Ugcino

Enye yeendlela ezilula zokwandisa ukusebenza kwesiseko sedatha yethu kukwazisa icandelo elitsha: i-cache layer. Eyona ndlela iqhelekileyo ye-caching yi-in-memory key-value record store, njengeRedis okanye iMemcached. Uninzi lwamafu lunenguqulelo elawulwayo yezi nkonzo: I-Elasticache kwi-AWS kunye neMemorystore kwiLifu likaGoogle.

I-cache iluncedo xa inkonzo yenza iifowuni ezininzi eziphindaphindiweyo kwi-database ukufumana ulwazi olufanayo. Ngokusisiseko, sifikelela kwi-database kanye kuphela, sigcine ulwazi kwi-cache, kwaye ungayichukumisi kwakhona.

Umzekelo, kwinkonzo yethu yeGraminsta, ngalo lonke ixesha umntu esiya kwiphepha leprofayile yenkwenkwezi ye-Mobrik, umncedisi we-API ubuza i-database ngolwazi oluvela kwiprofayili yakhe. Oku kwenzeka kwakhona kwaye kwakhona. Kuba ulwazi lweprofayile kaMobrik alutshintshi kwisicelo ngasinye, luhle kakhulu kwi-caching.

Siza kubamba iziphumo kwisiseko sedatha kwiRedis ngesitshixo user:id kunye nexesha elisemthethweni le-30 imizuzwana. Ngoku, xa umntu esiya kwiprofayile kaMobrik, siqale sijonge iRedis, kwaye ukuba idatha ikhona, siyidlulisela ngqo kwiRedis. Ngoku izicelo zeyona profayile idumileyo kwisiza ayilayishi idatabase yethu.

Enye inzuzo yeenkonzo ezininzi ze-caching kukuba kulula ukukala kuneseva yedatha. IRedis inemowudi yeRedis Cluster eyakhelweyo. Ifana ne-balancer yomthwalo1, ikuvumela ukuba usasaze iCache yakho yeRedis kumatshini amaninzi (kumawaka eeseva ukuba ziyafuneka).

Phantse zonke izicelo ezinkulu zisebenzisa i-caching; yinxalenye ye-API ekhawulezayo. Ukusetyenzwa kwemibuzo ngokukhawuleza kunye nekhowudi evelisa ngakumbi zonke zibalulekile, kodwa ngaphandle kwe-cache phantse akunakwenzeka ukukala inkonzo kwizigidi zabasebenzisi.

Funda iiReplicas

Xa inani lemibuzo kwi-database liye landa kakhulu, enye into esinokuyenza kukongeza i-replicas yokufunda kwinkqubo yolawulo lwedatha. Ngeenkonzo ezilawulwayo ezichazwe ngasentla, oku kunokwenziwa ngonqakrazo olunye. I-replica efundwayo iya kuhlala ikhoyo kwisiseko sedatha engundoqo kwaye iyafumaneka kwiinkcazo KHETHA.

Nantsi inkqubo yethu ngoku:

Indlela yokulinganisa ukusuka kwi-1 ukuya kubasebenzisi be-100

Amanyathelo alandelayo

Njengoko isicelo siqhubeka sikhula, siya kuqhubeka nokwahlula iinkonzo ukuze sizilinganise ngokuzimeleyo. Umzekelo, ukuba siqala ukusebenzisa iiWebsockets, kuyavakala ukutsala ikhowudi yokusetyenzwa kweWebsockets kwinkonzo eyahlukileyo. Singayibeka kwiimeko ezitsha emva kwe-balancer yethu yomthwalo, enokuthi inyuke kwaye ihle ngokusekwe kuqhagamshelo lweWebsockets oluvulekileyo kwaye kungakhathaliseki inani lezicelo ze-HTTP.

Siza kuqhubeka nokulwa izithintelo kwinqanaba ledathabheyisi. Kukweli nqanaba ukuba lixesha lokufunda ukwahlula kwedatha kunye nokwahlulahlula. Zombini iindlela zifuna ngaphezulu okongeziweyo, kodwa zikuvumela ukuba ulinganise i-database phantse ngokungenasiphelo.

Sikwafuna ukufaka esweni kunye nenkonzo yohlalutyo efana neNew Relic okanye iDatadog. Oku kuya kukunceda uchonge imibuzo ecothayo kwaye uqonde apho kufuneka uphuculo. Njengoko silinganisa, sifuna ukugxila ekufumaneni iibhotile kunye nokuzisusa-kaninzi zisebenzisa ezinye zeengcamango ezivela kumacandelo angaphambili.

Imithombo

Esi sithuba siphefumlelwe yenye ye izithuba endizithandayo malunga scalability eliphezulu. Bendifuna ukulenza eli nqaku licace ngakumbi kumanqanaba okuqala eeprojekthi kwaye ndilikhulule kumthengisi omnye. Qiniseka ukuba ufunda ukuba unomdla kwesi sihloko.

Umbhalo osemazantsi

  1. Nangona kuyafana ngokumalunga nokuhanjiswa komthwalo kwiimeko ezininzi, ukuphunyezwa okusisiseko kweqela leRedis kwahluke kakhulu kwisilinganisi somthwalo. [buya]

Indlela yokulinganisa ukusuka kwi-1 ukuya kubasebenzisi be-100

umthombo: www.habr.com

Yongeza izimvo