Conas scála a dhéanamh ó 1 go 100 úsáideoir

Tá go leor gnólachtaí tosaithe tar éis dul tríd seo: cláraíonn na sluaite úsáideoirí nua gach lá, agus bíonn an fhoireann forbartha ag streachailt leis an tseirbhís a choinneáil ar siúl.

Is fadhb mhaith é a bheith agat, ach níl mórán eolais shoiléir ar an ngréasán faoi conas feidhmchlár gréasáin a scála go cúramach ó rud ar bith go dtí na céadta mílte úsáideoir. De ghnáth bíonn réitigh dóiteáin nó réitigh scrogaill ann (agus go minic an dá cheann). Dá bhrí sin, úsáideann daoine teicníochtaí sách cliched chun a dtionscadal amaitéarach a scála i rud fíor-thromchúiseach.

Déanaimis iarracht an fhaisnéis a scagadh agus an fhoirmle bhunúsach a scríobh síos. Táimid chun ár suíomh comhroinnte grianghraf nua Graminsta a scála céim ar chéim ó 1 go 100 úsáideoir.

Déanaimis a scríobh síos cad iad na gníomhartha sonracha is gá a dhéanamh nuair a mhéadaítear an lucht féachana go 10, 100, 1000, 10 agus 000 duine.

1 úsáideoir: 1 meaisín

Tá trí phríomhchuid ag beagnach gach feidhmchlár, bíodh sé ina shuíomh Gréasáin nó ina fheidhmchlár soghluaiste:

  • API
  • bunachar sonraí
  • cliant (feidhmchlár soghluaiste é féin nó suíomh Gréasáin)

Stórálann an bunachar sonraí sonraí leanúnacha. Freastalaíonn an API ar iarratais chuig na sonraí seo agus timpeall orthu. Tarchuireann an cliant sonraí chuig an úsáideoir.

Tháinig mé ar an tátal go bhfuil sé i bhfad níos éasca labhairt faoi scálú iarratas más rud é, ó thaobh ailtireachta, go bhfuil an cliant agus eintitis API scartha go hiomlán.

Nuair a thosaímid ag tógáil feidhmchlár ar dtús, is féidir na trí chomhpháirt go léir a rith ar an bhfreastalaí céanna. Ar roinnt bealaí, tá sé seo cosúil lenár dtimpeallacht forbartha: ritheann innealtóir amháin an bunachar sonraí, API, agus cliant ar an meaisín céanna.

Go teoiriciúil, d’fhéadfaimis é a imscaradh sa scamall ar shampla amháin DigitalOcean Droplet nó AWS EC2, mar a thaispeántar thíos:
Conas scála a dhéanamh ó 1 go 100 úsáideoir
Agus é sin ráite, más rud é go mbeidh níos mó ná úsáideoir amháin ar shuíomh, bíonn sé ciall i gcónaí ciseal bunachar sonraí a thiomnú.

10 n-úsáideoirí: an bunachar sonraí a aistriú go leibhéal ar leith

Má dhéantar an bunachar sonraí a roinnt ina sheirbhísí bainistithe ar nós Amazon RDS nó Bunachar Sonraí Bainistithe Aigéan Digiteach beidh sé go maith dúinn ar feadh i bhfad. Tá sé beagán níos daoire ná féin-óstáil ar mheaisín amháin nó ar shampla EC2, ach leis na seirbhísí seo gheobhaidh tú go leor síntí úsáideacha as an mbosca a bheidh áisiúil amach anseo: cúltaca il-réigiúin, macasamhla a léamh, uathoibríoch cúltacaí, agus níos mó.

Seo mar atá an córas anois:
Conas scála a dhéanamh ó 1 go 100 úsáideoir

100 úsáideoir: ag bogadh an chliaint go leibhéal ar leith

Ar ámharaí an tsaoil, thaitin ár n-iarratas go mór lenár gcéad úsáideoirí. Tá an trácht ag éirí níos cobhsaí, mar sin tá sé in am an cliant a aistriú go leibhéal ar leith. Ba chóir a thabhairt faoi deara go scaradh is príomhghné d’fheidhmchlár inscálaithe é eintitis a thógáil. De réir mar a fhaigheann cuid amháin den chóras níos mó tráchta, is féidir linn é a dheighilt chun rialú a dhéanamh ar an gcaoi a bhfuil na scálaí seirbhíse bunaithe ar phatrúin tráchta ar leith.

Sin é an fáth is maith liom smaoineamh ar an gcliant mar scartha ón API. Déanann sé seo an-éasca smaoineamh ar fhorbairt le haghaidh ardáin iolracha: gréasáin, gréasáin soghluaiste, iOS, Android, feidhmchláir deisce, seirbhísí tríú páirtí, srl. Níl iontu go léir ach cliaint a úsáideann an API céanna.

Mar shampla, anois is minic a iarrann ár n-úsáideoirí feidhmchlár soghluaiste a scaoileadh. Má scarann ​​tú an cliant agus eintitis API, éireoidh sé seo níos éasca.

Seo an chuma atá ar chóras den sórt sin:

Conas scála a dhéanamh ó 1 go 100 úsáideoir

1000 úsáideoir: cuir cothromaíocht ualaigh leis

Tá rudaí ag breathnú suas. Tá níos mó agus níos mó grianghraf á uaslódáil ag úsáideoirí Graminsta. Tá méadú ag teacht ar líon na gclárúchán freisin. Tá sé deacair ar ár bhfreastalaí API aonair coinneáil suas leis an trácht ar fad. Teastaíonn níos mó iarainn!

Is coincheap an-chumhachtach é cothromóir ualaigh. Is é an príomh-smaoineamh ná go gcuirfimid cothromaíocht ualaigh os comhair an API, agus dáileann sé trácht ar chásanna seirbhíse aonair. Seo mar a dhéanaimid scála cothrománach, rud a chiallaíonn go gcuirfimid níos mó freastalaithe leis an gcód céanna, ag méadú líon na n-iarratas is féidir linn a phróiseáil.

Táimid chun cothromóirí ualaigh ar leith a chur os comhair an chliaint gréasáin agus os comhair an API. Ciallaíonn sé seo gur féidir leat go leor cásanna a reáchtáil ag rith cód API agus cód cliant gréasáin. Díreoidh an cothromóir ualaigh iarratais chuig an bhfreastalaí is lú ualach.

Anseo faigheann muid buntáiste tábhachtach eile - iomarcaíocht. Nuair a theipeann ar chás amháin (b'fhéidir ró-ualú nó tuairteála), fágtar muid le cinn eile a leanann ar aghaidh ag freagairt d'iarratais a thagann isteach. Mura raibh ach cás amháin ag obair, ansin i gcás teipe bheadh ​​an córas ar fad tuairteála.

Soláthraíonn an cothromóir ualaigh scálú uathoibríoch freisin. Is féidir linn é a chumrú chun líon na gcásanna roimh bhuaicualach a mhéadú, agus é a laghdú nuair a bhíonn gach úsáideoir ag codladh.

Le cothromóir ualaigh, is féidir leibhéal an API a scála beagnach ar feadh tréimhse éiginnte, gan ach cásanna nua a chur leis de réir mar a mhéadaíonn líon na n-iarratas.

Conas scála a dhéanamh ó 1 go 100 úsáideoir

Nóta. Faoi láthair tá ár gcóras an-chosúil leis an méid a thairgeann cuideachtaí PaaS cosúil le Heroku nó Elastic Beanstalk ar AWS as an mbosca (agus sin an fáth a bhfuil an oiread sin tóir orthu). Cuireann Heroku an bunachar sonraí ar óstach ar leith, bainistíonn sé cothromaíocht ualaigh uathoibríoch-scála, agus ligeann duit an cliant gréasáin a óstáil ar leithligh ón API. Is cúis iontach é seo chun Heroku a úsáid le haghaidh tionscadal luathchéime nó tosaithe - gheobhaidh tú na seirbhísí bunúsacha go léir as an mbosca.

10 úsáideoir: CDN

B'fhéidir gur cheart dúinn é seo a dhéanamh ón tús. Tá iarratais á bpróiseáil agus glacadh le grianghraif nua ag cur an iomarca brú ar ár bhfreastalaithe.

Ag an gcéim seo, ní mór duit seirbhís scamall a úsáid chun ábhar statach a stóráil - íomhánna, físeáin agus i bhfad níos mó (AWS S3 nó Digital Ocean Spaces). Go ginearálta, ba cheart go seachnódh ár n-API rudaí a láimhseáil mar íomhánna a sheirbheáil agus íomhánna a uaslódáil chuig an bhfreastalaí.

Buntáiste eile a bhaineann le óstáil scamall ná an CDN (glaonna AWS an breiseán seo Cloudfront, ach cuireann go leor soláthraithe stórála scamall é as an mbosca). Déanann an CDN ár n-íomhánna a thaisceadh go huathoibríoch in ionaid sonraí éagsúla ar fud an domhain.

Cé go bhféadfadh ár bpríomhionad sonraí a bheith lonnaithe i Ohio, má iarrann duine éigin íomhá ón tSeapáin, déanfaidh an soláthraí scamall cóip agus é a stóráil ina ionad sonraí Seapáine. Gheobhaidh an chéad duine eile a iarrann an íomhá seo sa tSeapáin é i bhfad níos tapúla. Tá sé seo tábhachtach agus muid ag obair le comhaid mhóra, cosúil le grianghraif nó físeáin, a thógann go leor ama iad a íoslódáil agus a tharchur ar fud an domhain.

Conas scála a dhéanamh ó 1 go 100 úsáideoir

100 úsáideoir: an ciseal sonraí a scálú

Chuidigh CDN go leor: tá an trácht ag fás ag luas iomlán. Chláraigh an blagaire físe cáiliúil Mavid Mobrick linn agus chuir sé a “scéal”, mar a deir siad, sa phost. A bhuí leis an gcothromóir ualaigh, coinnítear an úsáid LAP agus cuimhne ar na freastalaithe API íseal (deich gcinn de chásanna API ar siúl), ach táimid ag tosú ar go leor teorainneacha ama a fháil ar iarratais ... cad as a bhfuil na moilleanna seo ag teacht?

Ag tochailt beagán isteach sa mhéadracht, feicimid go bhfuil an LAP ar an bhfreastalaí bunachar sonraí luchtaithe 80-90%. Táimid ag an teorainn.

Is dócha gurb é scála na sraithe sonraí an chuid is deacra den chothromóid. Freastalaíonn freastalaithe API ar iarratais gan stát, mar sin ní dhéanaimid ach níos mó cásanna API a chur leis. Srón an chuid is mó ní féidir le bunachair shonraí é seo a dhéanamh. Labhróimid faoi chórais bhainistíochta bunachar sonraí coibhneasta coitianta (PostgreSQL, MySQL, etc.).

taisceadh

Ceann de na bealaí is éasca chun feidhmíocht ár mbunachar sonraí a mhéadú ná comhpháirt nua a thabhairt isteach: an ciseal taisce. Is é an modh taisce is coitianta ná stór taifead de luach eochair-chuimhne, mar Redis nó Memcached. Tá leagan bainistithe de na seirbhísí seo ag formhór na scamaill: Elasticache ar AWS agus Memorystore ar Google Cloud.

Bíonn taisce úsáideach nuair a dhéanann seirbhís go leor glaonna arís agus arís eile chuig an mbunachar sonraí chun an fhaisnéis chéanna a fháil. Go bunúsach, ní dhéanaimid rochtain ar an mbunachar sonraí ach uair amháin, stóráilimid an fhaisnéis sa taisce, agus ní dhéanaimid teagmháil leis arís.

Mar shampla, inár seirbhís Graminsta, gach uair a théann duine chuig leathanach próifíle an réalta Mobrik, cuireann an freastalaí API ceist ar an mbunachar sonraí chun faisnéis a fháil óna phróifíl. Tarlaíonn sé seo arís agus arís eile. Ós rud é nach n-athraíonn faisnéis phróifíl Mobrik le gach iarratas, tá sé ar fheabhas le haghaidh taisce.

Taiscefaimid na torthaí ón mbunachar sonraí i Redis le heochair user:id le tréimhse bailíochta 30 soicind. Anois, nuair a théann duine chuig próifíl Mobrik, déanaimid seiceáil ar Redis ar dtús, agus má tá na sonraí ann, ní dhéanaimid ach é a aistriú go díreach ó Redis. Anois iarratais ar an bpróifíl is coitianta ar an suíomh go praiticiúil ní luchtú ár mbunachar sonraí.

Buntáiste eile a bhaineann le formhór na seirbhísí taisce ná go bhfuil siad níos éasca le scála ná freastalaithe bunachar sonraí. Tá modh Braisle Redis ionsuite ag Redis. Cosúil le cothromóir ualaigh1, ligeann sé duit do thaisce Redis a dháileadh ar ilinnill (thar na mílte freastalaithe más gá).

Úsáideann beagnach gach feidhmchlár ar scála mór taisce; is cuid dhílis de API tapa é. Tá próiseáil fiosrúcháin níos tapúla agus cód níos táirgiúla ar fad tábhachtach, ach gan taisce tá sé beagnach dodhéanta seirbhís a scála do na milliúin úsáideoirí.

Léigh Macasamhla

Nuair a tháinig méadú mór ar líon na bhfiosrúchán chuig an mbunachar sonraí, rud amháin eile is féidir linn a dhéanamh ná macasamhla léite a chur leis an gcóras bainistíochta bunachar sonraí. Leis na seirbhísí bainistithe a thuairiscítear thuas, is féidir é seo a dhéanamh i gceann cliceáil. Fanfaidh an macasamhail léite reatha sa phríomhbhunachar sonraí agus tá sé ar fáil le haghaidh ráitis SELECT.

Seo é ár gcóras anois:

Conas scála a dhéanamh ó 1 go 100 úsáideoir

Na chéad chéimeanna eile

De réir mar a leanann an feidhmchlár de réir scála, leanfaimid orainn ag scaradh na seirbhísí chun iad a scála go neamhspleách. Mar shampla, má thosaímid ag úsáid Websockets, bíonn ciall leis an gcód próiseála Websockets a tharraingt isteach i seirbhís ar leith. Is féidir linn é a chur ar chásanna nua taobh thiar dár gcothromóir ualaigh féin, ar féidir leo scála suas agus síos a dhéanamh bunaithe ar naisc oscailte Websockets agus beag beann ar líon na n-iarratas HTTP.

Leanfaimid freisin le srianta a chomhrac ar leibhéal an bhunachair shonraí. Is ag an bpointe seo atá sé in am staidéar a dhéanamh ar dheighilt agus ar roinnt bunachar sonraí. Teastaíonn forchostais bhreise ón dá chur chuige, ach ligeann siad duit an bunachar sonraí a scála beagnach ar feadh tréimhse éiginnte.

Ba mhaith linn freisin seirbhís monatóireachta agus anailíse a shuiteáil cosúil le New Relic nó Datadog. Cabhróidh sé seo leat fiosruithe malla a aithint agus tuiscint a fháil ar na háiteanna ina bhfuil gá le feabhsú. Agus muid ag scála, ba mhaith linn díriú ar scrogaill a aimsiú agus deireadh a chur leo - go minic ag baint úsáide as cuid de na smaointe ó na rannáin roimhe seo.

Foinsí

Tá an post seo spreagtha ag ceann de na poist is fearr liom faoi scalability ard. Theastaigh uaim an t-alt a dhéanamh beagán níos sainiúla do chéimeanna tosaigh na dtionscadal agus é a dhícheangal ó dhíoltóir amháin. Bí cinnte a léamh má tá suim agat san ábhar seo.

Fonótaí

  1. Cé go bhfuil comhchosúil maidir le dáileadh ualaigh ar fud cásanna iolracha, tá cur chun feidhme bunúsach braisle Redis an-difriúil ó chothromóir ualaigh. [fill]

Conas scála a dhéanamh ó 1 go 100 úsáideoir

Foinse: will.com

Add a comment