Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Ewr mîna qutiyek sêrbaz in - hûn çi hewce dikin dipirsin, û çavkanî tenê ji nedîtî ve xuya dibin. Makîneyên virtual, databases, torê - ev hemî tenê ji we re ye. Kirêdarên ewr ên din jî hene, lê di Gerdûna we de hûn yekane serwer in. Hûn pê ewle ne ku hûn ê her gav çavkaniyên pêwîst werbigirin, hûn kesek hesab nakin û hûn serbixwe diyar dikin ka dê torê çawa be. Ev sêrbaz çawa dixebite ku ewr bi elastîk çavkaniyan veqetîne û kirêdaran bi tevahî ji hev dûr bixe?

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Ewr AWS pergalek mega-super tevlihev e ku ji sala 2006-an vir ve bi pêşkeftinê ve diçe. Beşek ji vê pêşveçûnê pêk hat Vasily Pantyukhin - Mîmar Karûbarên Webê ya Amazon. Wekî mîmarek, ew ne tenê di encama dawîn de, lê di heman demê de li ser kêşeyên ku AWS bi ser dikeve jî di hundurê xwe de dinihêre. Her ku têgihiştina pergalê çawa dixebite, bawerî ew qas mezin dibe. Ji ber vê yekê, Vasily dê sirên karûbarên cloudê AWS parve bike. Li jêr sêwirana pêşkêşkerên AWS yên laşî, pîvana databasa elastîk, databasek xwerû ya Amazon û rêbazên ji bo zêdekirina performansa makîneyên virtual di heman demê de bihayê wan kêm dike heye. Zanîna nêzîkatiyên mîmarî yên Amazon dê ji we re bibe alîkar ku hûn karûbarên AWS bi bandortir bikar bînin û dibe ku ji bo avakirina çareseriyên xwe ramanên nû bidin we.

Li ser axaftvan: Vasily Pantyukhin (mirîşk) di pargîdaniyên .ru de wekî rêveberê Unix-ê dest pê kir, 6 salan li ser hardware ya mezin a Sun Microsystem xebitî, û 11 salan li EMC cîhanek data-navendî mizgîn kir. Ew bi xwezayî di nav ewrên taybet de pêşve çû, û di sala 2017-an de derbasî yên gelemperî bû. Naha ew şîreta teknîkî peyda dike da ku di ewrê AWS de bijî û pêşve bibe.

Daxuyaniyê: her tiştê jêrîn nerîna kesane ya Vasily ye û dibe ku bi pozîsyona Karûbarên Web Amazon-ê re hevûdu neke. Tomarkirina vîdyoyê Rapora ku gotar li ser hatiye amadekirin li ser kanala me ya YouTube-ê heye.

Çima ez behsa cîhaza Amazonê dikim?

Otomobîla min a yekem guhezek destanî hebû. Ji ber hesta ku ez dikarim otomobîlê bimeşînim û bi tevahî kontrola wê bikim pir xweş bû. Di heman demê de min jê hez kir ku min bi kêmanî prensîba xebata wê fêm kir. Bi xwezayî, min strukturê qutikê pir primitive xeyal kir - tiştek mîna gearboxek li ser bîsîkletê.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Her tişt pir xweş bû, ji xeynî tiştekê - di qelebalixên trafîkê de asê ma. Wusa dixuye ku hûn rûniştin û tiştek nakin, lê hûn bi domdarî pêlavan diguhezin, kulm, gaz, firnê dixin - ew bi rastî we westiyayî dike. Pirsgirêka qerebalixa trafîkê bi qismî hat çareserkirin dema ku malbatê otomobîlek otomatîk peyda kir. Di dema ajotinê de, wextê min hebû ku ez li ser tiştek bifikirim û li pirtûkek dengbêjî guhdarî bikim.

Nepeniyek din di jiyana min de xuya bû, ji ber ku min bi tevahî dev ji têgihîştina ku gerîdeya min çawa dixebite. Otomobîla nûjen amûrek tevlihev e. Otomobîl bi dehan parametreyên cihêreng re hevdem tê adaptekirin: zexta gazê, firnê, şêwaza ajotinê, kalîteya rê. Ez êdî fêm nakim ka ew çawa dixebite.

Dema ku min dest bi xebata li ser ewrê Amazonê kir, ew ji min re jî sir bû. Tenê ev sir rêzek mezinahiyê mezintir e, ji ber ku di otomobîlê de ajokarek heye, û di AWS de bi mîlyonan ji wan hene. Hemî bikarhêner di heman demê de rêve dibin, gazê pê dikin û fren dikin. Ecêb e ku ew diçin cîhê ku ew dixwazin - ew ji min re mucîzeyek e! Pergal bixweber li gorî her bikarhênerek xwe diguhezîne, pîvan û elastîk eyar dike da ku ji wî re xuya bike ku ew di vê Gerdûnê de bi tenê ye.

Dema ku ez paşê hatim ku li Amazonê wekî mîmarî bixebitim, sêrbaz hinekî xirav bû. Min dît ku em bi çi pirsgirêkan re rû bi rû dimînin, em wan çawa çareser dikin, û em çawa xizmetguzariyan pêş dixin. Bi zêdebûna têgihiştina pergalê re çawa dixebite, bêtir pêbaweriya karûbarê xuya dike. Ji ber vê yekê ez dixwazim wêneyek tiştê ku di binê kapê ewrê AWS de ye parve bikim.

Em ê qala çi bikin

Min nêzîkatiyek cihêreng hilbijart - min 4 karûbarên balkêş ên ku hêjayî axaftinê ne hilbijartin.

Optimîzasyona serverê. Ewrên gemarî yên bi tevlêbûnek laşî: navendên daneya laşî ku li wir serverên laşî hene ku bi ronahiyê hûr dibin, germ dibin û dibiriqin.

fonksiyonên serverless (Lambda) belkî di ewr de karûbarê herî berbelav e.

Mezinkirina databasê. Ez ê ji we re bibêjim ka em çawa databasên xwe yên berbelav ava dikin.

Pîvana torê. Beşa paşîn a ku tê de ez ê cîhaza tora me vekim. Ev tiştek ecêb e - her bikarhênerek ewr bawer dike ku ew di ewr de tenê ye û qet kirêdarên din nabîne.

Not. Vê gotarê dê xweşbîniya server û pîvana databasê nîqaş bike. Em ê di gotara pêş de pîvana torê bifikirin. Fonksiyonên bê server li ku ne? Derbarê wan de nivîseke cuda hat weşandin.Piçûk, lê jîr. Unboxing Firecracker microvirtual" Ew li ser çend awayên pîvandinê yên cihêreng diaxive, û bi hûrgulî li ser çareseriya Firecracker nîqaş dike - hevrêzek ji kalîteyên çêtirîn ên makîneyek virtual û konteyneran.

Servers

Ewr gemar e. Lê belê ev gemarî hîn jî xwedan pêkvejiyana laşî ye - server. Di destpêkê de, mîmariya wan klasîk bû. Chipset x86 standard, kartên torê, Linux, Xen hypervisor ku makîneyên virtual li ser hatine xebitandin.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Di sala 2012-an de, vê mîmariyê bi karên xwe re pir baş bi rê ve çû. Xen hîpervisorek mezin e, lê kêmasiyek mezin heye. Ew têr bûye serê bilind ji bo emûlasyona amûrê. Her ku kartên torê yên nû, bileztir an ajokarên SSD peyda dibin, ev serma pir zêde dibe. Meriv çawa bi vê pirsgirêkê re mijûl dibe? Me biryar da ku em li ser du eniyan yekcar bixebitin - hem hardware û hem jî hypervisor xweşbîn bike. Kar pir giran e.

Optimîzekirina hardware û hypervisor

Her tiştî di carekê de bikin û baş bikin dê nekarin. Çi "baş" bû jî di destpêkê de ne diyar bû.

Me biryar da ku em nêzîkatiyek pêşveçûnê bikin - em yek hêmanek girîng a mîmariyê biguhezînin û wê bavêjin hilberînê.

Em li ser her rakêşanê gav diavêjin, guh didin gilî û pêşniyaran. Dûv re em pêkhateyek din diguherînin. Ji ber vê yekê, bi gavên piçûk, em li ser bingeha nerînên bikarhêner û piştgirîyê tevahî mîmariya radîkal diguherînin.

Veguherîn di sala 2013 de bi tiştê herî tevlihev - torê dest pê kir. LI S3 Mînakî, qertek Tora Acceleratorê ya taybetî li qerta torê ya standard hate zêdekirin. Ew bi rastî bi kabloyek paşîn a kurt a li ser panela pêşîn ve girêdayî bû. Ew ne xweşik e, lê ew di ewr de nayê dîtin. Lê danûstendina rasterast bi hardware re bi bingehîn jitter û berbi torê çêtir kir.

Dûv re me biryar da ku em gihîştina astengkirina hilanîna daneya EBS - Elastic Block Storage çêtir bikin. Ew tevliheviya torê û hilanînê ye. Zehmetî ev e ku dema ku kartên Lezkera Torgilokê li sûkê hebûn, vebijarkek tune ku meriv bi tenê hardware Storage Accelerator bikire. Ji ber vê yekê me berê xwe da destpêkek Annapurna Labs, ku ji bo me çîpên ASIC-ê yên taybetî pêşve xistin. Wan destûr da ku cildên EBS-ê yên ji dûr ve wekî amûrên NVMe werin danîn.

Di mînakan de C4 me du pirsgirêk çareser kirin. Ya yekem ev e ku me bingehek ji bo pêşeroja sozdar, lê di wê demê de nû, teknolojiya NVMe pêk anî. Ya duyemîn, me pêvajoya navendî bi girîngî dakêşand bi veguheztina pêvajoya daxwaznameyên ji EBS-ê re li ser qertek nû. Ew baş derket, ji ber vê yekê naha Annapurna Labs beşek Amazon e.

Di Mijdara 2017-an de, me fêm kir ku ew dem bû ku meriv hypervisor bixwe biguhezîne.

Hîpervisorê nû li ser bingeha modulên kernelê yên KVM-ê hatî guheztin hate pêşve xistin.

Vê mimkun kir ku bi bingehîn sermaya emûlasyona cîhazê kêm bike û rasterast bi ASIC-ên nû re bixebite. Instances S5 yekem makîneyên virtual bûn ku bi hîpervisorek nû di bin kaxezê de xebitîn. Me navê wî lê kir nitro.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinêPêşveçûna mînakên li ser demsalê.

Hemî celebên nû yên makîneyên virtual ku ji Mijdara 2017-an vir ve xuya bûne li ser vê hîpervisorê dixebitin. Mînakên Bare Metal ne xwedî hîpervisor in, lê ji wan re jî tê gotin Nitro, ji ber ku ew kartên Nitro yên pispor bikar tînin.

Di du salên pêş de, hejmara celebên nimûneyên Nitro ji du deh derbas kir: A1, C5, M5, T3 û yên din.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê
Cureyên nimûne.

Çawa makîneyên Nitro nûjen dixebitin

Ew sê hêmanên sereke hene: Nitro hypervisor (li jor hate nîqaş kirin), çîpê ewlehiyê û kartên Nitro.

Çîpa ewlehiyê rasterast di nav motherboard de entegre. Ew gelek fonksiyonên girîng kontrol dike, wekî kontrolkirina barkirina OS-ya mêvandar.

kartên Nitro - Çar cureyên wan hene. Hemî wan ji hêla Annapurna Labs ve têne pêşve xistin û li ser ASIC-ên hevpar têne çêkirin. Hin firmware wan jî hevpar in.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê
Çar cureyên kartên Nitro.

Yek ji kartên ji bo xebatê hatiye dîzaynkirin torêVPC. Ya ku di makîneyên virtual de wekî qerta torê tê xuyang kirin ev e ENA - Elastic Network Adapter. Di heman demê de ew seyrûseferê vediguhezîne dema ku wê bi navgînek torgilokek laşî veguhezîne (em ê di beşa duyemîn a gotarê de li ser vê biaxivin), dîwarê Grûpên Ewlekariyê kontrol dike, û berpirsiyariya rêvekirinê û tiştên din ên torê ye.

Kartên hilbijartî bi hilanîna blokê re dixebitin EBS û dîskên ku di nav serverê de têne çêkirin. Ew ji makîneya virtual ya mêvan re wekî xuya dibin adapterên NVMe. Ew di heman demê de ji şîfrekirina daneyê û çavdêriya dîskê berpirsiyar in.

Pergala kartên Nitro, hîpervisor û çîpê ewlehiyê di nav torgilokek SDN an de tête yek kirin Software Defined Network. Berpirsiyarê birêvebirina vê torê (Balafira Kontrolê) karta kontrolker.

Bê guman, em pêşveçûna ASIC-ên nû berdewam dikin. Mînakî, di dawiya sala 2018-an de wan çîpa Inferentia berdan, ku dihêle hûn bi karên fêrbûna makîneyê re bi bandortir bixebitin.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê
Çîpa Pêvajoya Fêrbûna Makîneya Inferentia.

Database Scalable

Databasek kevneşopî xwedan avahiyek qatkirî ye. Ji bo ku pir hêsan bikin, astên jêrîn têne cuda kirin.

  • SQL - xerîdar û belavkerên daxwaznameyê li ser wê dixebitin.
  • Erzaq muamele - Li vir her tişt zelal e, ACID û her tişt.
  • Caching, ku ji hêla hewzên tampon ve tê peyda kirin.
  • Logging - kar bi têketinên ji nû ve peyda dike. Di MySQL de ji wan re tê gotin Bin Logs, di PosgreSQL - Write Ahead Logs (WAL).
  • Storage - tomarkirina rasterast li ser dîskê.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê
Struktura databasa qatkirî.

Ji bo pîvandina databasan awayên cihêreng hene: parkirin, mîmariya Shared Thing, dîskên hevbeş.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Lêbelê, van hemî rêbazan heman avahiya databasa monolîtîk diparêzin. Ev bi girîngî pîvandinê sînor dike. Ji bo çareserkirina vê pirsgirêkê, me databasa xwe pêşxist - Amazon Aurora. Ew bi MySQL û PostgreSQL re hevaheng e.

Amazon Aurora

Fikra sereke ya mîmarî ev e ku meriv astên hilanîn û tomarkirinê ji databasa bingehîn veqetîne.

Li pêş çavan, ez ê bibêjim ku me asta caching jî serbixwe kir. Mîmarî ji yekalîbûnê namîne, û em di pîvandina blokên takekesî de derecên din ên azadiyê bi dest dixin.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê
Asta têketin û hilanînê ji databasê veqetandî ne.

DBMSek kevneşopî di forma blokan de daneyan li pergalek hilanînê dinivîse. Li Amazon Aurora, me depoya biaqil a ku dikare bi ziman biaxive afirand ji nû ve têketin. Di hundurê de, hilanînê têketin vediguhere blokên daneyê, yekparebûna wan dişopîne û bixweber pişta xwe digire.

Ev nêzîkatî dihêle hûn tiştên weha balkêş bicîh bikin klonkirin. Ew bi bingehîn zûtir û aborîtir dixebite ji ber vê yekê ku ew hewce nake ku kopiyek bêkêmasî ya hemî daneyan biafirîne.

Parçeya hilanînê wekî pergalek belavkirî tête bicîh kirin. Ew ji hejmareke pir mezin a pêşkêşkerên laşî pêk tê. Her têketinek ji nû ve bi hevdemî tê hilanîn û hilanîn şeş girêk. Ev parastina daneyê û hevsengiya barkirinê misoger dike.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Pîvana xwendinê dikare bi karanîna kopiyên guncan were bidestxistin. Hilbera belavkirî hewcedariya hevdemkirinê di navbera mînaka databasa bingehîn de, ku bi navgîniya wê em daneyan dinivîsin, û kopiyên mayî ji holê radike. Daneyên nûjen têne garantî kirin ku ji hemî kopiyan re peyda bibin.

Pirsgirêk tenê veşartina daneyên kevn li ser kopiyên xwendinê ye. Lê ev pirsgirêk çareser dibe veguhestina hemî têketinên dubare ji bo kopiyên li ser tora navxweyî. Ger têketin di cacheyê de be, ew wekî xelet tê nîşankirin û li ser tê nivîsandin. Ger ew ne di kaşê de be, ew bi hêsanî tê avêtin.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Me depo ji hev veqetand.

Meriv çawa rêzikên DBMS-ê pîvan dike

Li vir, pîvana horizontal pir dijwartir e. Ji ber vê yekê em herin riya lêdanê pîvana vertîkal a klasîk.

Ka em bihesibînin ku serîlêdanek me heye ku bi DBMS-ê re bi girêkek master re danûstendinê dike.

Dema ku bi rengek vertîkal pîvandin, em girêkek nû vediqetînin ku dê bêtir pêvajo û bîranîn hebe.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Dûv re, em serîlêdanê ji girêka sereke ya kevn vediguhezînin ya nû. Pirsgirêk derdikevin.

  • Ev ê hewceyê dakêşana serîlêdanê ya girîng hewce bike.
  • Hêza sereke ya nû dê xwedan cacheyek sar be. Performansa databasê tenê piştî ku cache germ bû dê herî zêde be.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Meriv çawa rewşê baştir bike? Di navbera serîlêdanê û girêka sereke de proxyek saz bikin.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Ev dê çi bide me? Naha hemî serîlêdan ne hewce ne ku bi destan berbi girêka nû ve werin rêve kirin. Veguheztin dikare di bin proxy de were kirin û bi bingehîn zûtir e.

Xuya ye ku pirsgirêk çareser bûye. Lê na, em hîn jî ji hewcedariya germkirina kaşê dikişînin. Wekî din, pirsgirêkek nû derketiye holê - naha proxy xalek potansiyel a têkçûnê ye.

Çareseriya dawîn bi Amazon Aurora bê server

Me van pirsgirêkan çawa çareser kir?

Wekîlekî hiştin. Ev ne mînakek veqetandî ye, lê fîloya tevahî belavkirî ya proxyan e ku bi navgîniya serîlêdan bi databasê ve girêdayî ye. Di rewşek têkçûn de, yek ji girêkan hema hema di cih de dikare were guheztin.

Komek girêkên germ ên cûrbecûr zêde kirin. Ji ber vê yekê, heke hewce be ku girêkek nû ya mezin an piçûktir were veqetandin, ew tavilê peyda dibe. Ne hewce ye ku li benda barkirinê bisekinin.

Tevahiya pêvajoya pîvandinê ji hêla pergalek çavdêriya taybetî ve tê kontrol kirin. Şopandin bi berdewamî rewşa girêka masterê ya heyî dişopîne. Mînakî, heke ew tespît bike ku barkirina pêvajoyê gihîştiye nirxek krîtîk, ew hewza bûyerên germ di derheqê hewcedariya veqetandina girêkek nû de agahdar dike.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê
Wekîlên belav kirin, bûyerên germ û çavdêriyê.

Nodek bi hêza pêwîst heye. Hewzên tampon jê re têne kopî kirin, û pergal dest pê dike ku li benda veguheztina demek ewle bimîne.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Bi gelemperî dema veguhertinê pir zû tê. Dûv re danûstendina di navbera proxy û girêka sereke ya kevn de tê sekinandin, hemî danişîn li girêka nû têne guheztin.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Bi databasê re ji nû ve kar bikin.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Graf nîşan dide ku sekinandin bi rastî pir kurt e. Grafika şîn barkirinê nîşan dide, û gavên sor jî kêliyên pîvandinê nîşan dide. Kevirên kurt-kurt ên di grafika şîn de bi rastî ew derengiya kurt e.

Çawa AWS karûbarên xwe yên elastîk çêdike. Pêşkêşker û databasa pîvandinê

Bi awayê, Amazon Aurora dihêle hûn bi tevahî drav bidin hev û dema ku ew nayê bikar anîn, mînakî, di dawiya hefteyê de, databasê qut bikin. Piştî rawestandina barkirinê, DB hêdî hêdî hêza xwe kêm dike û ji bo demekê vediqete. Dema ku bar vegere, ew ê dîsa bi aramî rabe.

Di beşa paşîn a çîroka li ser cîhaza Amazon de, em ê li ser pîvana torê biaxivin. Subscribe poste û li bendê bin da ku hûn gotarê ji bîr nekin.

li ser HighLoad ++ Vasily Pantyukhin dê raporek bide "Houston, pirsgirêkek me heye. Sêwirana pergalên ji bo têkçûnê, qalibên pêşkeftinê yên ji bo karûbarên cloudê yên hundurîn ên Amazon" Kîjan şêweyên sêwiranê ji bo pergalên belavbûyî ji hêla pêşdebirên Amazon ve têne bikar anîn, sedemên têkçûna karûbarê çi ne, mîmariya bingehîn a hucreyê çi ye, Karê Berdewam, Shuffle Sharding - ew ê balkêş be. Ji konferansê kêmtir ji mehekê - bilêtên xwe veqetînin. 24ê cotmehê bihayê dawîn zêde dibe.

Source: www.habr.com

Add a comment