Yadda ake sikelin daga 1 zuwa 100 masu amfani

Yawancin farawa sun shiga cikin wannan: taron sababbin masu amfani suna yin rajista kowace rana, kuma ƙungiyar ci gaba tana kokawa don ci gaba da sabis ɗin.

Matsala ce mai kyau a samu, amma akwai ƴan bayyanannun bayanai akan gidan yanar gizo game da yadda ake auna aikin yanar gizo a hankali daga komai zuwa dubunnan masu amfani. Yawanci akwai ko dai maganin wuta ko mafita na kwalba (kuma sau da yawa duka). Don haka, mutane suna amfani da dabarun da aka zayyana don auna aikin mai son zuwa wani abu mai mahimmanci.

Bari mu yi ƙoƙarin tace bayanai kuma mu rubuta ainihin dabara. Za mu haɓaka sabon shafin raba hoto na Graminsta mataki-mataki daga masu amfani 1 zuwa 100.

Bari mu rubuta takamaiman ayyuka da ake buƙatar ɗauka lokacin da masu sauraro suka ƙaru zuwa 10, 100, 1000, 10 da 000.

1 mai amfani: 1 inji

Kusan kowane aikace-aikacen, ya kasance gidan yanar gizo ko aikace-aikacen wayar hannu, yana da mahimman abubuwa guda uku:

  • API
  • database
  • abokin ciniki (wayar hannu kanta ko gidan yanar gizo)

Database yana adana bayanan dagewa. API ɗin yana ba da buƙatun zuwa da kewayen wannan bayanan. Abokin ciniki yana watsa bayanai ga mai amfani.

Na yanke shawarar cewa yana da sauƙin magana game da ƙaddamar da aikace-aikacen idan, daga ra'ayi na gine-gine, abokin ciniki da abubuwan API sun rabu gaba ɗaya.

Lokacin da muka fara gina aikace-aikacen, ana iya aiwatar da dukkan abubuwa guda uku akan sabar iri ɗaya. A wasu hanyoyi, wannan yayi kama da yanayin ci gaban mu: injiniya ɗaya yana gudanar da bayanai, API, da abokin ciniki akan na'ura ɗaya.

A ka'idar, za mu iya tura shi a cikin gajimare a kan DigitalOcean Droplet ko misali AWS EC2, kamar yadda aka nuna a ƙasa:
Yadda ake sikelin daga 1 zuwa 100 masu amfani
Da wannan ya ce, idan za a sami masu amfani fiye da ɗaya a kan rukunin yanar gizon, kusan koyaushe yana da ma'ana don keɓe bayanan bayanan.

Masu amfani 10: matsar da bayanan zuwa wani matakin daban

Rarraba bayanan zuwa ayyukan sarrafawa kamar Amazon RDS ko Database Manajan Tekun Dijital zai yi mana hidima na dogon lokaci. Yana da ɗan tsada fiye da ɗaukar nauyin kai akan injin guda ɗaya ko misalin EC2, amma tare da waɗannan ayyukan zaku sami ƙarin fa'idodi masu yawa daga cikin akwatin waɗanda zasu zo da amfani a nan gaba: madadin yanki da yawa, karanta kwafi, atomatik backups, da sauransu.

Wannan shine yadda tsarin yake a yanzu:
Yadda ake sikelin daga 1 zuwa 100 masu amfani

Masu amfani 100: matsar da abokin ciniki zuwa wani matakin daban

Abin farin ciki, masu amfani da mu na farko suna son aikace-aikacen mu sosai. Hanyoyin zirga-zirga suna ƙara samun kwanciyar hankali, don haka lokaci yayi da za a matsar da abokin ciniki zuwa wani matakin daban. Ya kamata a lura da cewa rabuwa ƙungiyoyi shine mahimmin al'amari na gina aikace-aikacen da za a iya daidaitawa. Kamar yadda wani ɓangare na tsarin ke karɓar ƙarin zirga-zirga, za mu iya raba shi don sarrafa yadda ma'aunin sabis ya dogara da takamaiman tsarin zirga-zirga.

Wannan shine dalilin da ya sa nake so in yi tunanin abokin ciniki a matsayin daban daga API. Wannan ya sa ya zama mai sauƙin tunani game da haɓakawa don dandamali da yawa: gidan yanar gizo, gidan yanar gizon wayar hannu, iOS, Android, aikace-aikacen tebur, sabis na ɓangare na uku, da sauransu. Duk abokan ciniki ne kawai masu amfani da API iri ɗaya.

Misali, yanzu masu amfani da mu galibi suna neman sakin aikace-aikacen hannu. Idan kun raba abokin ciniki da abubuwan API, wannan zai zama sauƙi.

Wannan shine yadda irin wannan tsarin yayi kama:

Yadda ake sikelin daga 1 zuwa 100 masu amfani

Masu amfani 1000: ƙara ma'aunin nauyi

Abubuwa suna kallo. Masu amfani da Graminsta suna ƙara ƙara hotuna. Yawan rajista kuma yana karuwa. Sabar API ɗin mu kaɗai yana da wahalar kiyaye duk zirga-zirga. Bukatar ƙarin ƙarfe!

Load balancer ra'ayi ne mai ƙarfi sosai. Babban ra'ayin shine cewa mun sanya ma'aunin nauyi a gaban API, kuma yana rarraba zirga-zirga zuwa yanayin sabis na mutum. Wannan shine yadda muke aunawa a kwance, ma'ana muna ƙara ƙarin sabobin masu lamba iri ɗaya, ƙara yawan buƙatun da za mu iya aiwatarwa.

Za mu sanya ma'aunin nauyi daban a gaban abokin ciniki na yanar gizo da kuma gaban API. Wannan yana nufin za ku iya gudanar da lokuta da yawa masu gudana lambar API da lambar abokin ciniki na yanar gizo. Ma'auni mai ɗaukar nauyi zai jagoranci buƙatun zuwa sabar da ba ta da nauyi.

Anan mun sami wani muhimmin fa'ida - redundancy. Lokacin da misali ɗaya ya gaza (watakila an yi lodi fiye da kima ko ya fado), an bar mu tare da wasu waɗanda ke ci gaba da amsa buƙatun masu shigowa. Idan misali ɗaya ne kawai ke aiki, to idan ya gaza, tsarin gaba ɗaya zai faɗi.

Hakanan ma'aunin nauyi yana samar da sikelin atomatik. Za mu iya saita shi don ƙara yawan lokuta kafin babban nauyi, da rage shi lokacin da duk masu amfani ke barci.

Tare da ma'auni mai ɗaukar nauyi, ana iya haɓaka matakin API kusan har abada, kawai ƙara sabbin lokuta yayin da adadin buƙatun ke ƙaruwa.

Yadda ake sikelin daga 1 zuwa 100 masu amfani

Lura. A yanzu tsarin mu yayi kama da abin da kamfanonin PaaS kamar Heroku ko Elastic Beanstalk akan AWS ke bayarwa daga cikin akwatin (wanda shine dalilin da ya sa suka shahara sosai). Heroku yana sanya ma'ajin bayanai akan wani ma'aikaci daban, yana sarrafa ma'auni mai ɗaukar nauyi ta atomatik, kuma yana ba ku damar ɗaukar bakuncin abokin ciniki na yanar gizo daban daga API. Wannan babban dalili ne don amfani da Heroku don ayyukan matakin farko ko farawa - kuna samun duk mahimman ayyuka daga cikin akwatin.

Masu amfani 10: CDN

Wataƙila da mun yi wannan tun daga farko. Gudanar da buƙatun da karɓar sabbin hotuna yana fara sanya damuwa mai yawa akan sabar mu.

A wannan matakin, kuna buƙatar amfani da sabis na girgije don adana abubuwan da ke tsaye - hotuna, bidiyo da ƙari mai yawa (AWS S3 ko Sararin Tekun Dijital). Gabaɗaya, API ɗinmu yakamata ya guji sarrafa abubuwa kamar ba da hotuna da loda hotuna zuwa sabar.

Wani fa'ida na tallan girgije shine CDN (AWS yana kiran wannan add-on Cloudfront, amma yawancin masu samar da ajiyar girgije suna ba da shi daga cikin akwatin). CDN tana adana hotunan mu ta atomatik a cibiyoyin bayanai daban-daban a duniya.

Ko da yake babban cibiyar bayanan mu na iya kasancewa a Ohio, idan wani ya nemi hoto daga Japan, mai ba da girgije zai yi kwafi ya adana shi a cibiyar bayanan Jafananci. Mutum na gaba wanda ya nemi wannan hoton a Japan zai karɓi shi da sauri. Wannan yana da mahimmanci lokacin da muke aiki tare da manyan fayiloli, kamar hotuna ko bidiyoyi, waɗanda ke ɗaukar lokaci mai tsawo don saukewa da watsawa a duk duniya.

Yadda ake sikelin daga 1 zuwa 100 masu amfani

100 masu amfani: scaling da data Layer

CDN ya taimaka da yawa: zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar zirga-zirgar ababen hawa tana ci gaba da girma da sauri. Shahararren marubucin bidiyo Mavid Mobrick kawai ya yi rajista tare da mu kuma ya buga "labarinsa", kamar yadda suke faɗa. Godiya ga ma'auni mai ɗaukar nauyi, CPU da amfani da ƙwaƙwalwar ajiya akan sabobin API suna raguwa (alal misali guda goma na API suna gudana), amma muna fara samun lokaci mai yawa akan buƙatun ... daga ina waɗannan jinkirin ke fitowa?

Yin tono kaɗan cikin ma'auni, mun ga cewa CPU akan uwar garken bayanan an ɗora shi 80-90%. Muna kan iyaka.

Ƙididdigar bayanan bayanan ƙila shine mafi wahala sashi na lissafin. Sabar API tana ba da buƙatun marasa jiha, don haka kawai muna ƙara ƙarin abubuwan API. Hanci mafi rinjaye bayanan bayanai ba za su iya yin wannan ba. Za mu yi magana game da shahararrun tsarin sarrafa bayanan bayanai (PostgreSQL, MySQL, da sauransu).

caching

Ɗaya daga cikin mafi sauƙi hanyoyin da za a ƙara aiki na bayanan mu shine gabatar da sabon sashi: Layer cache. Hanyar caching na yau da kullun ita ce kantin ajiyar ƙimar maɓalli na ƙwaƙwalwar ajiya, kamar Redis ko Memcached. Yawancin gizagizai suna da tsarin sarrafa waɗannan ayyukan: Elasticache akan AWS da Memorystore akan Google Cloud.

Cache yana da amfani lokacin da sabis yayi kira da yawa zuwa ma'ajin bayanai don dawo da bayanai iri ɗaya. Ainihin, muna samun dama ga bayanan sau ɗaya kawai, adana bayanan a cikin cache, kuma kada mu sake taɓa shi.

Misali, a cikin sabis ɗinmu na Graminsta, duk lokacin da wani ya je shafin bayanin martaba na tauraron Mobrik, uwar garken API ta nemi bayanai daga bayanan martabarsa. Wannan yana faruwa akai-akai. Tunda bayanin martabar Mobrik baya canzawa tare da kowace buƙatu, yana da kyau don caching.

Za mu adana sakamakon daga ma'ajin bayanai a cikin Redis ta maɓalli user:id tare da lokacin aiki na 30 seconds. Yanzu, lokacin da wani ya je bayanin martabar Mobrik, mu fara bincika Redis, kuma idan bayanan yana nan, kawai mu canza shi kai tsaye daga Redis. Yanzu buƙatun zuwa ga shahararrun bayanan martaba akan rukunin yanar gizon a zahiri ba sa loda bayanan mu.

Wani fa'idar mafi yawan ayyukan caching shine cewa suna da sauƙin ƙima fiye da sabar bayanai. Redis yana da ginannen yanayin Redis Cluster. Mai kama da ma'aunin nauyi1, yana ba ku damar rarraba cache ɗin ku na Redis a cikin injuna da yawa (a cikin dubban sabobin idan an buƙata).

Kusan duk manyan aikace-aikace suna amfani da caching; yana da cikakken sashe na API mai sauri. Saurin sarrafa tambaya da ƙarin lambobi masu fa'ida duk suna da mahimmanci, amma ba tare da cache ba kusan ba zai yuwu a haɓaka sabis ga miliyoyin masu amfani ba.

Karanta Kwafi

Lokacin da adadin tambayoyin da ke cikin ma'ajin bayanai ya ƙaru sosai, wani abu kuma da za mu iya yi shi ne ƙara kwafin karantawa a cikin tsarin sarrafa bayanai. Tare da ayyukan sarrafawa da aka bayyana a sama, ana iya yin wannan a dannawa ɗaya. Kwafin da aka karanta zai kasance a halin yanzu a cikin babban bayanan bayanai kuma yana samuwa don maganganun SELECT.

Ga tsarin mu yanzu:

Yadda ake sikelin daga 1 zuwa 100 masu amfani

Karin ayyuka

Yayin da aikace-aikacen ke ci gaba da ƙima, za mu ci gaba da rarraba ayyukan don auna su da kansa. Misali, idan muka fara amfani da Websockets, to yana da ma'ana don ja lambar sarrafa Websockets zuwa sabis na daban. Za mu iya sanya shi a kan sababbin lokuta a bayan namu ma'aunin ma'auni, wanda zai iya haɓaka sama da ƙasa bisa buɗaɗɗen haɗin yanar gizo na Websockets kuma ba tare da la'akari da adadin buƙatun HTTP ba.

Za mu kuma ci gaba da yaki da ƙuntatawa a matakin bayanai. A wannan mataki ne lokaci ya yi da za a yi nazarin rarraba bayanai da rarraba bayanai. Duk hanyoyin biyu suna buƙatar ƙarin sama da ƙasa, amma suna ba ku damar haɓaka bayanan kusan har abada.

Muna kuma son shigar da sabis na sa ido da nazari kamar Sabon Relic ko Datadog. Wannan zai taimaka muku gano jinkirin tambayoyin da fahimtar inda ake buƙatar haɓakawa. Yayin da muke auna, muna so mu mai da hankali kan gano ƙullun da kawar da su-yawanci amfani da wasu ra'ayoyin daga sassan da suka gabata.

Sources

Wannan post ɗin ya sami wahayi daga ɗayan Abubuwan da na fi so game da babban scalability. Ina so in sanya labarin ɗan ƙarami kaɗan don matakan farko na ayyukan kuma in kwance shi daga mai siyarwa ɗaya. Tabbatar karantawa idan kuna sha'awar wannan batu.

Bayanin kafa

  1. Ko da yake kama da yanayin rarraba kaya a cikin lokuta da yawa, aiwatar da aiwatar da gungu na Redis ya bambanta da ma'aunin nauyi. [dawo]

Yadda ake sikelin daga 1 zuwa 100 masu amfani

source: www.habr.com

Add a comment