Ungakala kanjani kusuka kubasebenzisi abangu-1 kuye ku-100

Iziqalo eziningi zidlule kulokhu: izixuku zabasebenzisi abasha zibhalisa nsuku zonke, futhi ithimba labathuthukisi liyazabalaza ukugcina isevisi isebenza.

Kuyinkinga enhle ukuba nayo, kodwa kunolwazi oluncane olucacile kuwebhu mayelana nendlela yokukala ngokucophelela uhlelo lokusebenza lwewebhu kusukela engenalutho kuye kumakhulu ezinkulungwane zabasebenzisi. Ngokuvamile kukhona izixazululo zomlilo noma izixazululo zebhodlela (futhi ngokuvamile kokubili). Ngakho-ke, abantu basebenzisa amasu akhethekile ukuze balinganisele iphrojekthi yabo ye-amateur ibe into ebucayi ngempela.

Ake sizame ukuhlunga imininingwane futhi sibhale phansi ifomula eyisisekelo. Sizokala isayithi lethu elisha lokwabelana ngezithombe i-Graminsta isinyathelo ngesinyathelo ukusuka kubasebenzisi abangu-1 ukuya kwabangu-100.

Ake sibhale ukuthi yiziphi izinyathelo eziqondile okufanele zithathwe uma izethameli zanda zifinyelela ku-10, 100, 1000, 10 kanye nabantu abangu-000.

Umsebenzisi ongu-1: umshini ongu-1

Cishe zonke izinhlelo zokusebenza, kungaba iwebhusayithi noma uhlelo lokusebenza lweselula, zinezingxenye ezintathu ezibalulekile:

  • API
  • database
  • iklayenti (uhlelo lokusebenza lweselula ngokwalo noma iwebhusayithi)

Isizindalwazi sigcina idatha eqhubekayo. I-API inikezela ngezicelo kule datha naseduze kwayo. Iklayenti lidlulisela idatha kumsebenzisi.

Ngifinyelele esiphethweni sokuthi kulula kakhulu ukukhuluma mayelana nokukala uhlelo lokusebenza uma, ngokombono wezakhiwo, iklayenti kanye nezinhlangano ze-API zihlukaniswe ngokuphelele.

Uma siqala ukwakha uhlelo lokusebenza, zontathu izingxenye zingasebenza kuseva efanayo. Ngandlela thize, lokhu kufana nendawo yethu yokuthuthuka: unjiniyela oyedwa uqhuba isizindalwazi, i-API, kanye neklayenti emshinini ofanayo.

Ngokombono, singawusebenzisa efwini endaweni eyodwa ye-DigitalOcean Droplet noma i-AWS EC2, njengoba kukhonjisiwe ngezansi:
Ungakala kanjani kusuka kubasebenzisi abangu-1 kuye ku-100
Ngalokho sekushiwo, uma kuzoba nabasebenzisi abangaphezu koyedwa esizeni, cishe kuhlale kunengqondo ukunikezela isendlalelo sedathabheyisi.

Abasebenzisi abangu-10: ukuhambisa isizindalwazi siye ezingeni elihlukile

Ukuhlukanisa isizindalwazi ezinsizakalweni eziphethwe njenge-Amazon RDS noma i-Digital Ocean Managed Database kuzosisebenzela kahle isikhathi eside. Kubiza kakhulu kunokuzibamba emshinini owodwa noma isibonelo se-EC2, kodwa ngalawa masevisi uthola izandiso eziningi eziwusizo ngaphandle kwebhokisi ezizosebenza ngokuzayo: ukwenza isipele kwezifunda eziningi, ukufunda okukopishiwe, okuzenzakalelayo. ama-backups, nokuningi.

Nansi indlela isistimu ebukeka ngayo manje:
Ungakala kanjani kusuka kubasebenzisi abangu-1 kuye ku-100

Abasebenzisi abangu-100: ukuhambisa iklayenti ezingeni elihlukile

Ngenhlanhla, abasebenzisi bethu bokuqala baluthande ngempela uhlelo lwethu lokusebenza. Ithrafikhi iya izinza, ngakho sekuyisikhathi sokuyisa iklayenti kwelinye izinga. Kufanele kuqashelwe ukuthi ukwehlukana amabhizinisi iyisici esibalulekile sokwakha uhlelo lokusebenza olungaka. Njengoba ingxenye eyodwa yesistimu ithola ithrafikhi eyengeziwe, singayihlukanisa ukuze silawule ukuthi izikali zesevisi zisuselwe kumaphethini athile wethrafikhi.

Yingakho ngithanda ukucabanga ngeklayenti njengehlukile ku-API. Lokhu kwenza kube lula kakhulu ukucabanga ngokuthuthukisa izinkundla eziningi: iwebhu, iwebhu yeselula, i-iOS, i-Android, izinhlelo zokusebenza zedeskithophu, izinsizakalo zezinkampani zangaphandle, njll. Wonke angamakhasimende asebenzisa i-API efanayo.

Isibonelo, manje abasebenzisi bethu bavame ukucela ukukhipha uhlelo lokusebenza lweselula. Uma uhlukanisa iklayenti nezinhlangano ze-API, lokhu kuba lula.

Yile ndlela isistimu ebukeka ngayo:

Ungakala kanjani kusuka kubasebenzisi abangu-1 kuye ku-100

Abasebenzisi abangu-1000: engeza isilinganisi somthwalo

Izinto zibheke phezulu. Abasebenzisi be-Graminsta balayisha izithombe eziningi kakhulu. Isibalo sababhalisile siyakhula. Iseva yethu ye-API eyodwa ikuthola kunzima ukuhambisana nayo yonke ithrafikhi. Udinga insimbi eyengeziwe!

Isilinganisi somthwalo siwumqondo onamandla kakhulu. Umbono oyinhloko ukuthi sibeka isilinganisi somthwalo phambi kwe-API, futhi isabalalisa ithrafikhi kuzimo zesevisi ngayinye. Lena yindlela esikala ngayo ngokuvundlile, okusho ukuthi sengeza amaseva amaningi ngekhodi efanayo, sikhulisa inani lezicelo esingazicubungula.

Sizobeka izilinganisi zomthwalo ezihlukene phambi kweklayenti lewebhu naphambi kwe-API. Lokhu kusho ukuthi ungasebenzisa izikhathi eziningi usebenzisa ikhodi ye-API kanye nekhodi yeklayenti lewebhu. Isilinganisi somthwalo sizoqondisa izicelo kuseva engalayishiwe kancane.

Lapha sithola enye inzuzo ebalulekile - redundancy. Uma isenzakalo esisodwa sihluleka (mhlawumbe sigcwele kakhulu noma siphahlazeka), sisala nezinye eziqhubeka nokuphendula izicelo ezingenayo. Uma bekunesenzakalo esisodwa kuphela esisebenzayo, uma kwenzeka kwehluleka lonke uhlelo luzophahlazeka.

Isilinganisi somthwalo sinikeza nokukala okuzenzakalelayo. Singayilungiselela ukuze sandise inani lezenzakalo ngaphambi kokulayisha okuphezulu, futhi sinciphise lapho bonke abasebenzisi belele.

Ngesilinganisi somthwalo, ileveli ye-API ingakalwa cishe unomphela, ivele ingeze izimo ezintsha njengoba inani lezicelo likhula.

Ungakala kanjani kusuka kubasebenzisi abangu-1 kuye ku-100

Qaphela. Njengamanje uhlelo lwethu lufana kakhulu nalokho okunikezwa izinkampani ze-PaaS ezifana ne-Heroku noma i-Elastic Beanstalk ku-AWS ngaphandle kwebhokisi (yingakho zidume kakhulu). I-Heroku ibeka isizindalwazi kumsingathi ohlukile, iphatha isilinganisi somthwalo esikala ngokuzenzakalela, futhi ikuvumela ukuthi uphathe iklayenti lewebhu ngokuhlukile ku-API. Lesi yisizathu esihle sokusebenzisa i-Heroku kumaphrojekthi esiteji sokuqala noma ukuqalisa - uthola zonke izinsiza eziyisisekelo ngaphandle kwebhokisi.

Abasebenzisi abangu-10: CDN

Mhlawumbe bekufanele sikwenze lokhu kusukela ekuqaleni. Ukucubungula izicelo nokwamukela izithombe ezintsha sekuqala ukufaka ubunzima obukhulu kumaseva ethu.

Kulesi sigaba, udinga ukusebenzisa isevisi yefu ukuze ugcine okuqukethwe okumile - izithombe, amavidiyo nokunye okuningi (AWS S3 noma i-Digital Ocean Spaces). Ngokuvamile, i-API yethu kufanele igweme ukuphatha izinto ezifana nokuphakela izithombe nokulayisha izithombe kuseva.

Enye inzuzo yokubamba ifu i-CDN (i-AWS ibiza lesi sengezo se-Cloudfront, kodwa abahlinzeki abaningi besitoreji samafu banikeza ngaphandle kwebhokisi). I-CDN igcina ngokuzenzakalelayo izithombe zethu ezikhungweni zedatha ezahlukahlukene emhlabeni jikelele.

Nakuba isikhungo sethu sedatha esikhulu singase sibe e-Ohio, uma othile ecela isithombe esivela e-Japan, umhlinzeki wamafu uzokwenza ikhophi futhi asigcine esikhungweni sabo sedatha sesi-Japanese. Umuntu olandelayo ocela lesi sithombe e-Japan uzosithola ngokushesha okukhulu. Lokhu kubalulekile uma sisebenza ngamafayela amakhulu, njengezithombe noma amavidiyo, athatha isikhathi eside ukulanda futhi adluliselwe emhlabeni wonke.

Ungakala kanjani kusuka kubasebenzisi abangu-1 kuye ku-100

Abasebenzisi abangu-100: ukukala isendlalelo sedatha

I-CDN isize kakhulu: ithrafikhi ikhula ngesivinini esigcwele. Umbhali wevidiyo odumile uMavid Mobrick usanda kubhaliswa nathi futhi wathumela "indaba" yakhe, njengoba besho. Ngenxa yebhalansi yokulayisha, i-CPU kanye nokusetshenziswa kwememori kumaseva e-API kugcinwa kuphansi (izikhathi eziyishumi ze-API ziyasebenza), kodwa sesiqala ukuthola isikhathi esiningi sokuvala ngezicelo... kusuka kuphi lokhu kubambezeleka?

Ukumba kancane kumamethrikhi, siyabona ukuthi i-CPU kuseva yedathabheyisi ilayishiwe ngo-80-90%. Sisekupheleni.

Ukukala isendlalelo sedatha cishe ingxenye enzima kakhulu yezibalo. Amaseva e-API anikezela ngezicelo ezingenasisekelo, ngakho-ke simane sengeze izimo ze-API ezengeziwe. Ikhala iningi isizindalwazi asikwazi ukwenza lokhu. Sizokhuluma ngezinhlelo zokuphatha isizindalwazi esihlobene (PostgreSQL, MySQL, njll.).

Ukulondoloza inqolobane

Enye yezindlela ezilula zokwandisa ukusebenza kwesizindalwazi sethu ukwethula ingxenye entsha: isendlalelo senqolobane. Indlela ejwayeleke kakhulu yokugcina isikhashana isitolo serekhodi lenani lokhiye wememori, njenge-Redis noma i-Memcached. Amafu amaningi anenguqulo ephethwe yalezi zinsizakalo: I-Elasticache ku-AWS ne-Memorystore ku-Google Cloud.

Inqolobane iwusizo lapho isevisi yenza izingcingo eziningi eziphindaphindiwe kusizindalwazi ukuze ithole ulwazi olufanayo. Empeleni, sifinyelela kusizindalwazi kanye kuphela, sigcine imininingwane kunqolobane, futhi singaphinde siyithinte.

Isibonelo, kusevisi yethu ye-Graminsta, ngaso sonke isikhathi uma othile eya ekhasini lephrofayela lenkanyezi i-Mobrik, iseva ye-API ibuza kusizindalwazi ukuze ithole ulwazi oluvela kuphrofayela yakhe. Lokhu kwenzeka ngokuphindaphindiwe. Njengoba ulwazi lwephrofayela ka-Mobrik lungashintshi esicelweni ngasinye, luhle kakhulu ekugcinweni kwesikhashana.

Sizogcina imiphumela ku-database e-Redis ngokhiye user:id nesikhathi sokuqinisekisa samasekhondi angama-30. Manje, uma othile eya kuphrofayela ka-Mobrik, siqale sihlole i-Redis, futhi uma idatha ikhona, sivele siyidlulisele isuka kwa-Redis. Manje izicelo zephrofayili edume kakhulu esizeni azilayishi isizindalwazi sethu.

Enye inzuzo yezinsizakalo eziningi zokugcinwa kwesikhashana ukuthi kulula ukukala kunamaseva esizindalwazi. I-Redis inemodi ye-Redis Cluster eyakhelwe ngaphakathi. Kufana nesilinganisi somthwalo1, ikuvumela ukuthi usabalalise inqolobane yakho ye-Redis emishinini eminingi (ezinkulungwaneni zamaseva uma kudingeka).

Cishe zonke izinhlelo zokusebenza ezinkulu zisebenzisa i-caching; kuyingxenye ebalulekile ye-API esheshayo. Ukucubungula umbuzo osheshayo kanye nekhodi ekhiqiza kakhudlwana konke kubalulekile, kodwa ngaphandle kwenqolobane cishe akunakwenzeka ukukala isevisi ezigidini zabasebenzisi.

Funda ama-Replicas

Lapho inani lemibuzo kusizindalwazi selikhule kakhulu, enye into esingayenza ukwengeza ama-replicas afundiwe ohlelweni lokuphatha ledathabheyisi. Ngezinsizakalo eziphethwe ezichazwe ngenhla, lokhu kungenziwa ngokuchofoza okukodwa. I-replica efundiwe izohlala ingeyamanje kusizindalwazi esikhulu futhi itholakalela izitatimende KHETHA.

Nali isistimu yethu manje:

Ungakala kanjani kusuka kubasebenzisi abangu-1 kuye ku-100

Izinyathelo ezilandelayo

Njengoba uhlelo lokusebenza luqhubeka nokukala, sizoqhubeka nokuhlukanisa izinsiza ukuze sizikale ngokuzimela. Isibonelo, uma siqala ukusebenzisa ama-Websockets, khona-ke kunengqondo ukudonsa ikhodi yokucubungula ye-Websockets kusevisi ehlukile. Singakubeka ezimeni ezintsha ngemuva kwesakhe isilinganisi somthwalo, esingakhuphuka sikhuphuke ngokususelwa ekuxhumekeni okuvulekile kwamaWebsockets futhi kungakhathaliseki inani lezicelo ze-HTTP.

Sizoqhubeka nokulwa nemikhawulo ezingeni lesizindalwazi. Kungalesi sigaba lapho sekuyisikhathi sokufunda ukwahlukanisa kwesizindalwazi kanye ne-sharding. Zombili izindlela zidinga i-overhead eyengeziwe, kodwa zikuvumela ukuthi ulinganise i-database cishe unomphela.

Sifuna futhi ukufaka isevisi yokuqapha nezibalo njenge-New Relic noma i-Datadog. Lokhu kuzokusiza ukuthi ubone imibuzo ehamba kancane futhi uqonde lapho kudingeka khona ukuthuthukiswa. Njengoba sikala, sifuna ukugxila ekutholeni izingqinamba futhi siziqedeβ€”ngokuvamile sisebenzisa eminye yemibono evela ezigabeni ezedlule.

Imithombo

Lokhu okuthunyelwe kugqugquzelwe omunye wabo okuthunyelwe engikuthandayo mayelana scalability eliphezulu. Bengifuna ukwenza i-athikili icace kakhudlwana ezigabeni zokuqala zamaphrojekthi futhi ngiyikhulule kumthengisi oyedwa. Qiniseka ukuthi uyafunda uma unentshisekelo kulesi sihloko.

Imibhalo yaphansi

  1. Nakuba kufana ngokuya ngokusatshalaliswa komthwalo kuzo zonke izimo eziningi, ukuqaliswa okuyisisekelo kweqoqo le-Redis kuhluke kakhulu kusilinganisi somthwalo. [buya]

Ungakala kanjani kusuka kubasebenzisi abangu-1 kuye ku-100

Source: www.habr.com

Engeza amazwana