Mar a nì thu sgèile bho 1 gu 100 neach-cleachdaidh

Tha mòran de luchd-tòiseachaidh air a dhol tro seo: bidh sluagh mòr de luchd-cleachdaidh ùr a’ clàradh a h-uile latha, agus tha an sgioba leasachaidh a’ strì gus an t-seirbheis a chumail a’ dol.

Tha e na dhuilgheadas math a bhith agad, ach chan eil mòran fiosrachaidh soilleir air an lìon mu mar as urrainn dhut tagradh lìn a sgèileadh gu faiceallach bho rud sam bith gu ceudan de mhìltean de luchd-cleachdaidh. Mar as trice tha fuasglaidhean teine ​​​​no fuasglaidhean botal (agus gu tric an dà chuid). Mar sin, bidh daoine a’ cleachdadh dhòighean caran clicedach gus am pròiseact neo-dhreuchdail aca a sgèileadh gu rudeigin fìor dhona.

Feuchaidh sinn ris an fhiosrachadh a shìoladh agus sgrìobh sìos am foirmle bunaiteach. Tha sinn gu bhith a’ sgèile ar làrach roinneadh dhealbhan ùr Graminsta ceum air cheum bho 1 gu 100 neach-cleachdaidh.

Sgrìobhamaid sìos dè na gnìomhan sònraichte a dh'fheumar a dhèanamh nuair a dh'àrdaicheas an luchd-èisteachd gu 10, 100, 1000, 10 agus 000 neach.

1 neach-cleachdaidh: 1 inneal

Tha trì prìomh phàirtean aig cha mhòr a h-uile tagradh, ge bith an e làrach-lìn no tagradh gluasadach a th’ ann:

  • API
  • база данных
  • neach-dèiligidh (iarrtas gluasadach fhèin no làrach-lìn)

Bidh an stòr-dàta a’ stòradh dàta leantainneach. Bidh an API a’ frithealadh iarrtasan gu agus timcheall air an dàta seo. Bidh an neach-dèiligidh a’ sgaoileadh dàta don neach-cleachdaidh.

Thàinig mi chun cho-dhùnadh gu bheil e tòrr nas fhasa bruidhinn mu bhith a’ sgèileadh iarrtas ma tha, bho shealladh ailtireil, an neach-dèiligidh agus buidhnean API air an sgaradh gu tur.

Nuair a thòisicheas sinn a’ togail tagradh an toiseach, faodar na trì pàirtean a ruith air an aon fhrithealaiche. Ann an cuid de dhòighean, tha seo coltach ris an àrainneachd leasachaidh againn: bidh aon innleadair a’ ruith an stòr-dàta, API, agus teachdaiche air an aon inneal.

Ann an teòiridh, b’ urrainn dhuinn a chleachdadh san sgòth air aon eisimpleir DigitalOcean Droplet no AWS EC2, mar a chithear gu h-ìosal:
Mar a nì thu sgèile bho 1 gu 100 neach-cleachdaidh
Le sin air a ràdh, ma bhios barrachd air aon neach-cleachdaidh air làrach, cha mhòr nach eil e an-còmhnaidh ciallach sreath stòr-dàta a choisrigeadh.

10 luchd-cleachdaidh: a 'gluasad an stòr-dàta gu ìre air leth

Le bhith a’ roinneadh an stòr-dàta gu seirbheisean fo stiùir leithid Amazon RDS no Stòr-dàta Riaghladh Cuan Didseatach bidh sin math dhuinn airson ùine mhòr. Tha e beagan nas daoire na bhith fèin-aoigheachd air aon inneal no eisimpleir EC2, ach leis na seirbheisean sin gheibh thu tòrr leudachaidhean feumail a-mach às a’ bhogsa a bhios feumail san àm ri teachd: cùl-taic ioma-sgìre, leugh mac-samhail, fèin-ghluasadach cùl-taic, agus barrachd.

Seo mar a tha an siostam coltach an-dràsta:
Mar a nì thu sgèile bho 1 gu 100 neach-cleachdaidh

100 neach-cleachdaidh: a 'gluasad an neach-dèiligidh gu ìre air leth

Gu fortanach, chòrd an tagradh againn gu mòr ris a’ chiad luchd-cleachdaidh againn. Tha trafaic a’ fàs nas seasmhaiche, agus mar sin tha an t-àm ann an neach-dèiligidh a ghluasad gu ìre air leth. Bu chòir a thoirt fa-near gu bheil dealachadh tha buidhnean na phrìomh phàirt de bhith a’ togail tagradh scalable. Leis gu bheil aon phàirt den t-siostam a’ faighinn barrachd trafaic, is urrainn dhuinn a sgaradh gus smachd a chumail air mar a bhios na h-ìrean seirbheis stèidhichte air pàtrain trafaic sònraichte.

Sin as coireach gur toil leam a bhith a’ smaoineachadh air an neach-dèiligidh mar rud air leth bhon API. Tha seo ga dhèanamh gu math furasta a bhith a 'smaoineachadh mu bhith a' leasachadh airson iomadh àrd-ùrlar: lìn, lìn gluasadach, iOS, Android, aplacaidean deasg, seirbheisean treas-phàrtaidh, msaa. Tha iad uile dìreach nan luchd-dèiligidh a 'cleachdadh an aon API.

Mar eisimpleir, a-nis bidh ar luchd-cleachdaidh mar as trice ag iarraidh tagradh gluasadach a leigeil ma sgaoil. Ma dhealaicheas tu eadar an neach-dèiligidh agus buidhnean API, bidh seo nas fhasa.

Seo cò ris a tha siostam mar seo coltach:

Mar a nì thu sgèile bho 1 gu 100 neach-cleachdaidh

1000 neach-cleachdaidh: cuir cothromachadh luchdan

Tha cùisean a’ coimhead suas. Tha luchd-cleachdaidh Graminsta a’ luchdachadh suas barrachd is barrachd dhealbhan. Tha an àireamh de chlàraidhean a’ fàs cuideachd. Tha ùine chruaidh aig an t-seirbheisiche API singilte againn a’ cumail suas ris an trafaic gu lèir. Feum air barrachd iarann!

Tha cothromachadh luchdan na bhun-bheachd glè chumhachdach. Is e am prìomh bheachd gun cuir sinn cothromachadh luchdan air beulaibh an API, agus bidh e a’ cuairteachadh trafaic gu suidheachaidhean seirbheis fa leth. Seo mar a bhios sinn a’ sgèile gu còmhnard, a’ ciallachadh gun cuir sinn barrachd luchd-frithealaidh ris leis an aon chòd, a’ meudachadh na h-àireimh de dh’ iarrtasan as urrainn dhuinn a làimhseachadh.

Tha sinn gu bhith a’ cur luchd-cothromachaidh luchdan fa leth air beulaibh an neach-dèiligidh lìn agus air beulaibh an API. Tha seo a’ ciallachadh gun urrainn dhut iomadh suidheachadh a ruith a’ ruith còd API agus còd teachdaiche lìn. Stiùiridh an cothromachadh luchd iarrtasan chun an fhrithealaiche nach eil cho luchdaichte.

An seo gheibh sinn buannachd chudromach eile - call dreuchd. Nuair a dh’ fhailicheas aon eisimpleir (is dòcha cus cuideim no tuisleadh), tha sinn air ar fàgail le feadhainn eile a chumas oirnn a’ freagairt iarrtasan a tha a’ tighinn a-steach. Mura biodh ann ach aon eisimpleir ag obair, bhiodh an siostam gu lèir a’ tuiteam às a chèile nan tachradh sin.

Bidh an cothromachadh luchdan cuideachd a’ toirt seachad sgèileadh fèin-ghluasadach. Is urrainn dhuinn a rèiteachadh gus an àireamh de shuidheachaidhean a mheudachadh ro luchdan as àirde, agus a lughdachadh nuair a bhios a h-uile neach-cleachdaidh a’ cadal.

Le cothromachadh luchdan, faodar an ìre API a sgèileadh cha mhòr gun chrìoch, dìreach a’ cur suidheachaidhean ùra ris mar a bhios an àireamh de dh’ iarrtasan a’ dol am meud.

Mar a nì thu sgèile bho 1 gu 100 neach-cleachdaidh

Thoir an aire. An-dràsta tha an siostam againn glè choltach ris na tha companaidhean PaaS mar Heroku no Elastic Beanstalk air AWS a’ tabhann a-mach às a ’bhogsa (is e sin as coireach gu bheil fèill cho mòr orra). Bidh Heroku a’ cur an stòr-dàta air òstair air leth, a’ riaghladh cothromachadh luchdan fèin-sgèile, agus a’ leigeil leat aoigheachd a thoirt don neach-dèiligidh lìn air leth bhon API. Is e deagh adhbhar a tha seo airson Heroku a chleachdadh airson pròiseactan ìre thràth no tòiseachadh - gheibh thu a h-uile seirbheis bunaiteach a-mach às a’ bhogsa.

10 neach-cleachdaidh: CDN

Is dòcha gum bu chòir dhuinn a bhith air seo a dhèanamh bhon fhìor thoiseach. Tha làimhseachadh iarrtasan agus gabhail ri dealbhan ùra a’ tòiseachadh a’ cur cus cuideam air na frithealaichean againn.

Aig an ìre seo, feumaidh tu seirbheis neòil a chleachdadh airson susbaint statach a stòradh - ìomhaighean, bhideothan agus mòran a bharrachd (AWS S3 no Digital Ocean Spaces). San fharsaingeachd, bu chòir don API againn a bhith a’ seachnadh làimhseachadh rudan mar a bhith a’ frithealadh ìomhaighean agus a’ luchdachadh suas ìomhaighean chun t-seirbheisiche.

Is e buannachd eile a tha ann an aoigheachd sgòthan an CDN (tha AWS a’ gairm an tuilleadan seo Cloudfront, ach tha mòran de sholaraichean stòraidh sgòthan ga thabhann a-mach às a’ bhogsa). Bidh an CDN gu fèin-ghluasadach a’ tasgadh ar n-ìomhaighean ann an grunn ionadan dàta air feadh an t-saoghail.

Ged a dh’ fhaodadh gum bi am prìomh ionad dàta againn ann an Ohio, ma dh’ iarras cuideigin dealbh à Iapan, nì an solaraiche sgòthan leth-bhreac agus stòraidh e san ionad dàta Iapanach aca. Gheibh an ath neach a dh'iarras an ìomhaigh seo ann an Iapan e fada nas luaithe. Tha seo cudromach nuair a bhios sinn ag obair le faidhlichean mòra, leithid dealbhan no bhideothan, a bheir ùine mhòr airson luchdachadh sìos agus sgaoileadh thairis air a’ phlanaid.

Mar a nì thu sgèile bho 1 gu 100 neach-cleachdaidh

100 neach-cleachdaidh: a’ sgèileadh an ìre dàta

Tha CDN air mòran a chuideachadh: tha trafaic a’ fàs aig làn astar. Tha am blogair bhidio ainmeil Mavid Mobrick dìreach air clàradh leinn agus air an “sgeulachd” aige a phostadh, mar a chanas iad. Taing don chothromachadh luchdan, tha an CPU agus cleachdadh cuimhne air na frithealaichean API air a chumail ìosal (deich suidheachaidhean API a’ ruith), ach tha sinn a’ tòiseachadh a’ faighinn tòrr ùine a-mach air iarrtasan… cò às a tha an dàil seo a’ tighinn?

A ’cladhach beagan a-steach do na meatrach, chì sinn gu bheil an CPU air frithealaiche an stòr-dàta air a luchdachadh 80-90%. Tha sinn aig a’ chrìoch.

Is dòcha gur e sgèileadh an ìre dàta am pàirt as duilghe den cho-aontar. Bidh frithealaichean API a’ frithealadh iarrtasan gun stàit, agus mar sin bidh sinn dìreach a’ cur barrachd eisimpleirean API ris. Sròn a ’mhòr-chuid chan urrainn dha stòran-dàta seo a dhèanamh. Bruidhnidh sinn mu shiostaman riaghlaidh stòr-dàta dàimh mòr-chòrdte (PostgreSQL, MySQL, msaa).

caching

Is e aon de na dòighean as fhasa air coileanadh ar stòr-dàta àrdachadh pàirt ùr a thoirt a-steach: an ìre tasgadan. Is e an dòigh caching as cumanta stòr clàraidh luach iuchrach cuimhne, leithid Redis no Memcached. Tha dreach stiùirichte de na seirbheisean sin aig a’ mhòr-chuid de sgòthan: Elasticache air AWS agus Memorystore air Google Cloud.

Tha tasgadan feumail nuair a bhios seirbheis a’ cur iomadh fios chun stòr-dàta gus an aon fhiosrachadh fhaighinn air ais. Gu bunaiteach, chan fhaigh sinn cothrom air an stòr-dàta ach aon turas, bidh sinn a’ stòradh an fhiosrachaidh san tasgadan, agus na bi a ’beantainn ris a-rithist.

Mar eisimpleir, anns an t-seirbheis Graminsta againn, a h-uile uair a thèid cuideigin gu duilleag ìomhaigh an rionnag Mobrik, bidh an frithealaiche API a’ ceasnachadh an stòr-dàta airson fiosrachadh bhon phròifil aige. Bidh seo a’ tachairt a-rithist is a-rithist. Leis nach eil fiosrachadh pròifil Mobrik ag atharrachadh le gach iarrtas, tha e sàr-mhath airson tasgadh.

Tasgaidh sinn na toraidhean bhon stòr-dàta ann an Redis le iuchair user:id le ùine dligheachd de 30 diogan. A-nis, nuair a thèid cuideigin gu ìomhaigh Mobrik, bheir sinn sùil air Redis an toiseach, agus ma tha an dàta ann, bidh sinn dìreach ga ghluasad gu dìreach bho Redis. A-nis cha mhòr nach eil iarrtasan chun phròifil as mòr-chòrdte air an làrach a’ luchdachadh ar stòr-dàta.

Is e buannachd eile bhon mhòr-chuid de sheirbheisean caching gu bheil iad nas fhasa an sgèile na frithealaichean stòr-dàta. Tha modh Redis Cluster stèidhichte aig Redis. Coltach ri cothromachadh luchdan1, leigidh e leat an tasgadan Redis agad a sgaoileadh thairis air grunn innealan (thairis air mìltean de luchd-frithealaidh ma tha feum air).

Bidh cha mhòr a h-uile tagradh mòr a’ cleachdadh caching; tha e na phàirt gu tur riatanach de API luath. Tha giullachd cheistean nas luaithe agus còd nas cinneasaiche uile cudromach, ach às aonais tasgadan tha e cha mhòr do-dhèanta seirbheis a thoirt do mhilleanan de luchd-cleachdaidh.

Leugh Mac-samhail

Nuair a tha an àireamh de cheistean chun an stòr-dàta air a dhol suas gu mòr, is e aon rud eile as urrainn dhuinn a dhèanamh mac-samhail leughaidh a chur ris an t-siostam riaghlaidh stòr-dàta. Leis na seirbheisean stiùirichte a tha air am mìneachadh gu h-àrd, faodar seo a dhèanamh ann an aon bhriogadh. Bidh am mac-samhail leughaidh fhathast gnàthach sa phrìomh stòr-dàta agus tha e ri fhaighinn airson aithrisean SELECT.

Seo an siostam againn a-nis:

Mar a nì thu sgèile bho 1 gu 100 neach-cleachdaidh

Na h-ath cheumannan

Mar a bhios an tagradh a’ leantainn air adhart, cumaidh sinn oirnn a’ sgaradh nan seirbheisean gus an sgèile gu neo-eisimeileach. Mar eisimpleir, ma thòisicheas sinn a’ cleachdadh Websockets, tha e ciallach an còd giollachd Websockets a tharraing gu seirbheis air leth. Is urrainn dhuinn a chuir air suidheachaidhean ùra air cùl ar cothromachadh luchdan fhèin, a dh’ fhaodas sgèile suas is sìos stèidhichte air ceanglaichean fosgailte Websockets agus ge bith dè an àireamh de dh’iarrtasan HTTP.

Cumaidh sinn oirnn cuideachd a’ strì ri cuingeachaidhean aig ìre an stòr-dàta. Is ann aig an ìre seo a tha an t-àm ann sgrùdadh a dhèanamh air roinneadh agus roinneadh stòr-dàta. Feumaidh an dà dhòigh-obrach cosgais a bharrachd, ach leigidh iad leat an stòr-dàta a sgèileadh cha mhòr gun chrìoch.

Tha sinn cuideachd airson seirbheis sgrùdaidh is anailis a chuir a-steach mar New Relic no Datadog. Cuidichidh seo thu gus ceistean slaodach aithneachadh agus tuigsinn far a bheil feum air leasachadh. Mar a bhios sinn a’ sgèile, tha sinn airson fòcas a chuir air lorg botail agus cuir às dhaibh - gu tric a’ cleachdadh cuid de na beachdan bho earrannan roimhe seo.

Stòran

Tha an dreuchd seo air a bhrosnachadh le fear de na puist as fheàrr leam mu dheidhinn scalability àrd. Bha mi airson an artaigil a dhèanamh beagan nas mionaidiche airson na ciad ìrean de phròiseactan agus a cheangal bho aon reiceadair. Dèan cinnteach gun leugh thu ma tha ùidh agad sa chuspair seo.

Bun-notaichean

  1. Ged a tha e coltach a thaobh cuairteachadh luchdan thar iomadh suidheachadh, tha buileachadh bunaiteach cruinneachadh Redis gu math eadar-dhealaichte bho chothromachadh luchdan. [tilleadh]

Mar a nì thu sgèile bho 1 gu 100 neach-cleachdaidh

Source: www.habr.com

Cuir beachd ann