Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifuIMEPOTEzwa na sophiagworld

Makala haya yana mifumo ya kawaida ya kuwasaidia wahandisi kufanya kazi na huduma za kiwango kikubwa zinazofikiwa na mamilioni ya watumiaji. 

Katika uzoefu wa mwandishi, hii sio orodha kamili, lakini kwa kweli ufanisi ushauri. Kwa hiyo, hebu tuanze.

Imetafsiriwa kwa usaidizi Mail.ru Cloud Solutions.

Kiwango cha kwanza

Hatua zilizoorodheshwa hapa chini ni rahisi kutekeleza lakini zina athari kubwa. Ikiwa haujazijaribu hapo awali, utashangazwa na maboresho makubwa.

Miundombinu kama kanuni

Sehemu ya kwanza ya ushauri ni kutekeleza miundombinu kama kanuni. Hii ina maana kwamba lazima uwe na njia ya kiprogramu ya kupeleka miundombinu yote. Inaonekana kuwa ngumu, lakini kwa kweli tunazungumza juu ya nambari ifuatayo:

Usambazaji wa mashine 100 pepe

  • na Ubuntu
  • 2 GB RAM kila moja
  • watakuwa na kanuni zifuatazo
  • na vigezo hivi

Unaweza kufuatilia mabadiliko kwenye miundombinu yako na kuyarejesha kwa haraka ukitumia udhibiti wa toleo.

Mwana kisasa ndani yangu anasema unaweza kutumia Kubernetes/Docker kufanya yote yaliyo hapo juu, na yuko sawa.

Kwa kuongeza, unaweza kutoa automatisering kwa kutumia Chef, Puppet au Terraform.

Ushirikiano unaoendelea na Utoaji

Ili kuunda huduma inayoweza kuongezeka, ni muhimu kuwa na bomba la kujenga na kupima kwa kila ombi la kuvuta. Hata kama jaribio ni rahisi sana, angalau litahakikisha kuwa nambari unayotuma inakusanya.

Kila wakati katika hatua hii unajibu swali: mkutano wangu utakusanya na kupitisha vipimo, ni halali? Hii inaweza kuonekana kama bar ya chini, lakini inasuluhisha shida nyingi.

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Hakuna kitu kizuri zaidi kuliko kuona kupe hizi

Kwa teknolojia hii unaweza kutathmini Github, CircleCI au Jenkins.

Mizani ya Mizigo

Kwa hivyo, tunataka kuendesha kisawazisha cha mzigo ili kuelekeza trafiki upya na kuhakikisha mzigo sawa kwenye nodi zote au huduma inaendelea ikiwa itashindwa:

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Sawazisha mzigo kawaida hufanya kazi nzuri ya kusambaza trafiki. Mbinu bora ni kusawazisha kupita kiasi ili usiwe na nukta moja ya kushindwa.

Kwa kawaida, visawazishaji vya mizigo husanidiwa katika wingu unalotumia.

RayID, kitambulisho cha uunganisho au UUID kwa maombi

Umewahi kukutana na hitilafu ya programu na ujumbe kama huu: "Kuna kitu kilienda vibaya. Hifadhi kitambulisho hiki na utume kwa timu yetu ya usaidizi"?

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Kitambulisho cha kipekee, kitambulisho cha uunganisho, RayID, au tofauti zozote, ni kitambulisho cha kipekee kinachokuruhusu kufuatilia ombi katika mzunguko wake wote wa maisha. Hii hukuruhusu kufuatilia njia nzima ya ombi kwenye kumbukumbu.

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Mtumiaji hufanya ombi kwa mfumo A, kisha A mawasiliano B, ambayo huwasiliana na C, huihifadhi katika X, na kisha ombi hurudishwa kwa A.

Ikiwa ungeunganisha kwa mbali kwa mashine pepe na kujaribu kufuatilia njia ya ombi (na uunganishe mwenyewe simu ambazo zinapigwa), ungeenda wazimu. Kuwa na kitambulisho cha kipekee hurahisisha maisha. Hiki ni mojawapo ya mambo rahisi unayoweza kufanya ili kuokoa muda huduma yako inapokua.

Kiwango cha wastani

Ushauri hapa ni ngumu zaidi kuliko yale yaliyotangulia, lakini zana zinazofaa hufanya kazi iwe rahisi, kutoa kurudi kwa uwekezaji hata kwa makampuni madogo na ya kati.

Ukataji miti wa kati

Hongera! Umesambaza mashine 100 pepe. Siku iliyofuata, Mkurugenzi Mtendaji anakuja na kulalamika kuhusu kosa alilopata wakati wa kupima huduma. Inaripoti kitambulisho kinacholingana tulichozungumza hapo juu, lakini itabidi utafute kumbukumbu za mashine 100 ili kupata ile iliyosababisha ajali. Na inahitaji kupatikana kabla ya uwasilishaji wa kesho.

Ingawa hii inaonekana kama tukio la kufurahisha, ni vyema kuhakikisha kuwa una uwezo wa kutafuta majarida yote katika sehemu moja. Nilitatua tatizo la kuweka kumbukumbu kati kwa kutumia utendakazi uliojengwa ndani wa stack ya ELK: inasaidia mkusanyiko wa logi unaoweza kutafutwa. Hii itasaidia sana kutatua tatizo la kutafuta jarida maalum. Kama bonasi, unaweza kuunda chati na vitu vingine vya kufurahisha kama hivyo.

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Utendaji wa stack ya ELK

Wakala wa ufuatiliaji

Sasa kwa kuwa huduma yako iko na inafanya kazi, unahitaji kuhakikisha kuwa inaendeshwa vizuri. Njia bora ya kufanya hivyo ni kukimbia kadhaa mawakala, ambayo hufanya kazi kwa sambamba na kuangalia kuwa inafanya kazi na shughuli za msingi zinafanywa.

Katika hatua hii wewe kuangalia kwamba muundo wa kukimbia unahisi vizuri na unafanya kazi vizuri.

Kwa miradi midogo hadi ya kati, ninapendekeza Postman kwa ufuatiliaji na kumbukumbu za API. Lakini kwa ujumla, unataka tu kuhakikisha kuwa una njia ya kujua wakati kukatika kumetokea na kuarifiwa kwa wakati unaofaa.

Kuongeza kiotomatiki kulingana na mzigo

Ni rahisi sana. Ikiwa una maombi ya huduma ya VM na inakaribia utumiaji wa kumbukumbu 80%, unaweza kuongeza rasilimali zake au kuongeza VM zaidi kwenye nguzo. Utekelezaji wa moja kwa moja wa shughuli hizi ni bora kwa mabadiliko ya nguvu ya elastic chini ya mzigo. Lakini unapaswa kuwa mwangalifu kila wakati kuhusu ni pesa ngapi unazotumia na kuweka mipaka inayofaa.

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Ukiwa na huduma nyingi za wingu, unaweza kuisanidi kwa kipimo kiotomatiki kwa kutumia seva zaidi au seva zenye nguvu zaidi.

Mfumo wa majaribio

Njia nzuri ya kusambaza masasisho kwa usalama ni kuweza kujaribu kitu kwa 1% ya watumiaji kwa saa moja. Kwa kweli, umeona njia kama hizo zikifanya kazi. Kwa mfano, Facebook huonyesha sehemu za hadhira rangi tofauti au kubadilisha ukubwa wa fonti ili kuona jinsi watumiaji wanavyoona mabadiliko. Hii inaitwa upimaji wa A/B.

Hata kutoa kipengele kipya kunaweza kuanzishwa kama jaribio na kisha kuamua jinsi ya kukitoa. Pia unapata uwezo wa "kukumbuka" au kubadilisha usanidi kwenye kuruka kulingana na kazi ambayo inasababisha uharibifu katika huduma yako.

Kiwango cha juu

Hapa kuna vidokezo ambavyo ni ngumu sana kutekeleza. Labda utahitaji rasilimali kidogo zaidi, kwa hivyo kampuni ndogo au ya kati itakuwa na wakati mgumu kudhibiti hii.

Usambazaji wa bluu-kijani

Hii ndio ninaiita njia ya "Erlang" ya kufunuliwa. Erlang ilitumika sana makampuni ya simu yalipotokea. Softswichi zilianza kutumika kuelekeza simu. Kusudi kuu la programu kwenye swichi hizi lilikuwa kutotupa simu wakati wa uboreshaji wa mfumo. Erlang ana njia nzuri ya kupakia moduli mpya bila kugonga iliyotangulia.

Hatua hii inategemea uwepo wa usawa wa mzigo. Hebu fikiria una toleo la N la programu yako, halafu unataka kupeleka toleo la N+1. 

Wewe tunaweza acha tu huduma na utoe toleo linalofuata kwa wakati unaofanya kazi kwa watumiaji wako na upate muda wa kupumzika. Lakini tuseme unayo kweli masharti magumu ya SLA. Kwa hivyo, SLA 99,99% inamaanisha kuwa unaweza kwenda nje ya mtandao tu kwa dakika 52 kwa mwaka.

Ikiwa unataka kufikia viashiria vile, unahitaji kupelekwa mbili kwa wakati mmoja: 

  • ile iliyopo sasa hivi (N);
  • toleo linalofuata (N+1). 

Unamwambia msawazishaji aelekeze upya asilimia ya trafiki kwa toleo jipya (N+1) huku ukifuatilia kwa makini urejeshaji.

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Hapa tunayo uwekaji wa N ya kijani ambayo inafanya kazi vizuri. Tunajaribu kuhamia toleo linalofuata la utumiaji huu

Kwanza tunatuma jaribio dogo sana ili kuona ikiwa utumaji wetu wa N+1 unafanya kazi na idadi ndogo ya trafiki:

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Hatimaye, tuna seti ya ukaguzi wa kiotomatiki ambao hatimaye tunaendesha hadi utumaji wetu ukamilike. Kama wewe sana sana kwa uangalifu, unaweza pia kuhifadhi upelekaji wako wa N milele kwa urejeshaji wa haraka ikiwa kuna hali mbaya ya kumbukumbu:

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Iwapo ungependa kufikia kiwango cha juu zaidi, ruhusu kila kitu kwenye uwekaji wa bluu-kijani kiendeshe kiotomatiki.

Ugunduzi wa hitilafu na kupunguza kiotomatiki

Kwa kuzingatia kwamba una ukataji miti wa kati na mkusanyiko mzuri wa kumbukumbu, unaweza tayari kuweka malengo ya juu. Kwa mfano, tabiri kushindwa kwa bidii. Kazi zinafuatiliwa kwenye wachunguzi na katika kumbukumbu na michoro mbalimbali hujengwa - na unaweza kutabiri mapema nini kitaenda vibaya:

Jinsi ya kulala vizuri wakati una huduma ya wingu: vidokezo vya msingi vya usanifu
Mara tu matatizo yanapogunduliwa, unaanza kuchunguza baadhi ya vidokezo ambavyo huduma hutoa. Kwa mfano, spike katika mzigo wa CPU inaweza kuonyesha kwamba gari ngumu inashindwa, wakati mwiba katika maombi inaweza kuonyesha kwamba unahitaji kuongeza kiwango. Aina hii ya data ya takwimu hukuruhusu kufanya huduma kuwa makini.

Ukiwa na maarifa haya, unaweza kuongeza ukubwa wowote na kubadilisha kwa vitendo na kwa vitendo sifa za mashine, hifadhidata, miunganisho na rasilimali nyingine.

Ni hayo tu!

Orodha hii ya vipaumbele itakuokoa matatizo mengi ikiwa unainua huduma ya wingu.

Mwandishi wa makala asili anawaalika wasomaji kuacha maoni yao na kufanya mabadiliko. Nakala hiyo inasambazwa kama chanzo wazi, maombi ya kuvuta na mwandishi inakubali kwenye Github.

Nini kingine cha kusoma kwenye mada:

  1. Nenda na kache za CPU
  2. Kubernetes katika ari ya uharamia na kiolezo cha utekelezaji
  3. Kituo chetu Karibu Kubernetes katika Telegram

Chanzo: mapenzi.com

Kuongeza maoni