Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Nwaj yo tankou yon bwat majik - ou mande sa ou bezwen, ak resous yo jis parèt soti nan okenn kote. Machin vityèl, baz done, rezo - tout bagay sa yo fè pati ou sèlman. Gen lòt lokatè nwaj, men nan Linivè ou se sèl chèf. Ou asire w ke w ap toujou resevwa resous ki nesesè yo, ou pa pran pèsonn an kont epi ou poukont ou detèmine kisa rezo a pral ye. Ki jan maji sa a travay ki fè nwaj la elastikman asiyen resous ak konplètman izole lokatè youn ak lòt?

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Nwaj AWS a se yon sistèm mega-super konplèks ki te evolye depi 2006. Yon pati nan devlopman sa a te fèt Vasily Pantyukhin - Amazon Web Services Architect. Kòm yon achitèk, li jwenn yon gade anndan non sèlman nan rezilta final la, men tou nan defi yo AWS genyen batay yo. Plis konpreyansyon yo genyen sou fason sistèm nan fonksyone, se plis konfyans nan. Se poutèt sa, Vasily pral pataje sekrè sèvis nwaj AWS yo. Anba a se konsepsyon sèvè AWS fizik yo, évolutivité baz done elastik, yon baz done Amazon koutim ak metòd pou ogmante pèfòmans machin vityèl pandan y ap diminye pri yo. Konesans sou apwòch achitekti Amazon yo pral ede w itilize sèvis AWS yo yon fason pi efikas epi li ka ba w nouvo lide pou konstwi pwòp solisyon ou yo.

Konsènan oratè a: Vasily Pantyukhin (Hen) te kòmanse kòm yon admin Unix nan konpayi .ru, te travay sou gwo pyès ki nan konpitè Sun Microsystem pou 6 ane, epi preche yon mond ki santre sou done nan EMC pou 11 ane. Li natirèlman evolye nan nyaj prive, ak nan 2017 demenaje ale rete nan nyaj piblik yo. Kounye a li bay konsèy teknik pou ede viv ak devlope nan nwaj AWS la.

Limit responsabilite nou: tout bagay ki anba a se opinyon pèsonèl Vasily epi yo pa ka kowenside ak pozisyon Amazon Web Services. Anrejistreman videyo Rapò ki baze sou atik la disponib sou chanèl YouTube nou an.

Poukisa mwen pale de aparèy Amazon an?

Premye machin mwen an te gen yon transmisyon manyèl. Li te gwo paske nan santi a ke mwen te kapab kondwi machin nan epi gen kontwòl konplè sou li. Mwen te renmen tou ke mwen omwen apeprè konprann prensip la nan operasyon li yo. Natirèlman, mwen imajine estrikti nan bwat la yo dwe byen primitif - yon bagay tankou yon bwat vitès sou yon bisiklèt.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Tout bagay te gwo, eksepte pou yon sèl bagay - kole nan anbouteyaj. Li sanble tankou w ap chita epi w pa fè anyen, men w ap toujou ap chanje angrenaj, peze anbreyaj la, gaz, fren - sa vrèman fè ou fatige. Pwoblèm anbouteyaj la te pasyèlman rezoud lè fanmi an te resevwa yon machin otomatik. Pandan m te kondui, mwen te gen tan reflechi sou yon bagay epi koute yon liv odyo.

Yon lòt mistè parèt nan lavi mwen, paske mwen konplètman sispann konprann ki jan machin mwen an fonksyone. Yon machin modèn se yon aparèy konplèks. Machin nan adapte ansanm ak plizyè douzèn paramèt diferan: peze gaz la, fren, style kondwi, bon jan kalite wout. Mwen pa konprann ki jan li fonksyone ankò.

Lè mwen te kòmanse travay sou Amazon nwaj la, li te tou yon mistè pou mwen. Sèlman mistè sa a se yon lòd nan grandè pi gwo, paske gen yon sèl chofè nan machin nan, ak nan AWS gen dè milyon de yo. Tout itilizatè yo anmenmtan dirije, peze gaz la ak fren. Li etonan ke yo ale kote yo vle - se yon mirak pou mwen! Sistèm nan otomatikman adapte, balanse ak elastikman ajiste nan chak itilizatè konsa ke li sanble ke li se poukont li nan Linivè sa a.

Majik la te fini yon ti jan lè mwen pita te vin travay kòm yon achitèk nan Amazon. Mwen te wè ki pwoblèm nou fè fas a, ki jan nou rezoud yo, ak ki jan nou devlope sèvis yo. Avèk konpreyansyon ogmante sou fason sistèm nan fonksyone, plis konfyans nan sèvis la parèt. Se konsa, mwen vle pataje yon foto nan sa ki anba kapo nwaj la AWS.

De kisa nap pale

Mwen te chwazi yon apwòch divèsifye - mwen chwazi 4 sèvis enteresan ki vo pale sou yo.

Optimize sèvè. Nwaj efemèr ak yon reyalizasyon fizik: sant done fizik kote gen sèvè fizik ki hum, chofe ak bat ak limyè.

Fonksyon san sèvè (Lambda) se pwobableman sèvis ki pi évolutive nan nwaj la.

Echèl baz done. Mwen pral di w sou fason nou bati pwòp baz done évolutive nou yo.

Echèl rezo a. Dènye pati kote mwen pral louvri aparèy rezo nou an. Sa a se yon bèl bagay - chak itilizatè nwaj kwè ke li se poukont li nan nwaj la epi li pa wè lòt lokatè ditou.

Remak. Atik sa a pral diskite sou optimize sèvè ak dekale baz done. Nou pral konsidere echèl rezo nan pwochen atik la. Ki kote fonksyon san sèvè yo ye? Yon transkripsyon separe te pibliye sou yo "Ti, men entelijan. Unboxing Firecracker microvirtual" Li pale sou plizyè metòd dekale diferan, ak diskite an detay solisyon an peta - yon senbyotik nan pi bon kalite yo nan yon machin vityèl ak resipyan.

Servers

Nwaj la se efemèr. Men, efemèr sa a toujou gen yon reyalizasyon fizik - serveurs. Okòmansman, achitekti yo te klasik. Estanda x86 chipset, kat rezo, Linux, Xen hypervisor sou ki machin vityèl yo te kouri.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Nan 2012, achitekti sa a fè fas ak travay li yo byen byen. Xen se yon gwo hypervisor, men li gen yon gwo dezavantaj. Li gen ase segondè anlè pou imitasyon aparèy. Kòm nouvo kat rezo pi rapid oswa kondui SSD vin disponib, tèt sa a vin twò wo. Ki jan fè fas ak pwoblèm sa a? Nou deside travay sou de fwon an menm tan - optimize tou de pyès ki nan konpitè ak hypervisor. Travay la grav anpil.

Optimize pyès ki nan konpitè ak hypervisor

Fè tout bagay an fwa epi fè li byen pa pral travay. Ki sa ki "bon" te tou pa klè okòmansman.

Nou deside pran yon apwòch evolisyonè - nou chanje yon eleman enpòtan nan achitekti a epi jete li nan pwodiksyon an.

Nou mache sou chak rato, koute plent ak sijesyon. Lè sa a, nou chanje yon lòt eleman. Se konsa, nan ti ogmantasyon, nou radikalman chanje achitekti a tout antye ki baze sou fidbak soti nan itilizatè yo ak sipò.

Transfòmasyon an te kòmanse nan 2013 ak bagay ki pi konplèks - rezo a. NAN С3 ka, yo te ajoute yon kat rezo akseleratè espesyal nan kat rezo estanda a. Li te konekte literalman ak yon kab loopback kout sou panèl la devan. Li pa bèl, men li pa vizib nan nwaj la. Men, dirèk entèraksyon ak pyès ki nan konpitè fondamantalman amelyore jitter ak rezo debi.

Apre sa, nou deside amelyore aksè nan depo done bloke EBS - Elastic Block Storage. Li se yon konbinezon de rezo ak depo. Difikilte a se ke pandan ke kat Network Accelerator te egziste sou mache a, pa te gen okenn opsyon yo tou senpleman achte pyès ki nan konpitè Depo Accelerator. Se konsa, nou tounen vin jwenn yon demaraj Annapurna Labs, ki te devlope espesyal bato ASIC pou nou. Yo te pèmèt volim aleka EBS yo dwe monte kòm aparèy NVMe.

Nan ka C4 nou rezoud de pwoblèm. Premye a se ke nou aplike yon fondasyon pou lavni nan pwomèt, men nouvo nan tan sa a, teknoloji NVMe. Dezyèmman, nou siyifikativman dechaje processeur santral la lè nou transfere pwosesis demann nan EBS nan yon nouvo kat. Li te tounen byen, kidonk kounye a Annapurna Labs se yon pati nan Amazon.

Nan mwa novanm 2017, nou reyalize ke li te tan pou chanje hypervisor nan tèt li.

Nouvo hypervisor la te devlope baze sou modil nwayo KVM modifye.

Li te fè li posib pou redwi fondamantalman anlè emulasyon aparèy la epi travay dirèkteman ak nouvo ASIC yo. Enstans С5 yo te premye machin vityèl ak yon nouvo hypervisor kouri anba kapo a. Nou te rele l Nitre.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz doneEvolisyon nan ka yo sou delè a.

Tout nouvo kalite machin vityèl ki te parèt depi Novanm 2017 kouri sou hypervisor sa a. Ka Bare Metal pa gen yon hypervisor, men yo rele yo Nitro tou, paske yo itilize kat Nitro espesyalize yo.

Pandan de ane kap vini yo, kantite ka Nitro te depase yon douzèn: A1, C5, M5, T3 ak lòt.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done
Kalite egzanp.

Ki jan machin modèn Nitro travay

Yo gen twa konpozan prensipal: hypervisor Nitro (diskite pi wo a), chip sekirite a ak kat Nitro yo.

Sekirite chip entegre dirèkteman nan mèr la. Li kontwole anpil fonksyon enpòtan, tankou kontwole loading OS lame a.

Nitro kat - Gen kat kalite yo. Tout nan yo devlope pa Annapurna Labs epi yo baze sou ASIC komen. Gen kèk nan firmwèr yo tou komen.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done
Kat kalite kat Nitro.

Youn nan kat yo fèt pou travay avèk yo rezoVPC. Sa a se sa ki vizib nan machin vityèl kòm yon kat rezo ENA - Adaptè rezo elastik. Li tou encapsule trafik lè transmèt li atravè yon rezo fizik (nou pral pale sou sa a nan dezyèm pati nan atik la), kontwole pare-feu Gwoup Sekirite, epi li responsab pou routage ak lòt bagay rezo.

Chwazi kat travay ak depo blòk EBS ak disk ki bati nan sèvè a. Yo parèt nan machin nan envite vityèl kòm adaptè NVMe. Yo responsab tou pou chifreman done ak siveyans disk.

Se sistèm nan kat Nitro, hypervisor ak chip sekirite entegre nan yon rezo SDN oswa Lojisyèl defini rezo. Responsab pou jere rezo sa a (Avyon Kontwòl) kat kontwolè.

Natirèlman, nou kontinye devlope nouvo ASIC. Pou egzanp, nan fen 2018 yo lage chip Inferentia a, ki pèmèt ou travay pi efikas ak travay aprantisaj machin.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done
Enferans machin aprantisaj processeur chip.

Évolutive baz done

Yon baz done tradisyonèl gen yon estrikti kouch. Pou senplifye anpil, nivo sa yo yo distenge.

  • SQL - kliyan ak demann dispatchers travay sou li.
  • Dispozisyon tranzaksyon yo - tout bagay klè isit la, ACID ak tout sa.
  • kachèt, ki bay pisin tanpon.
  • Logging — bay travay ak refè mòso bwa. Nan MySQL yo rele Bin Logs, nan PosgreSQL - Write Ahead Logs (WAL).
  • Depo - anrejistreman dirèk sou disk.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done
Estrikti baz done kouch.

Gen diferan fason pou echèl baz done: sharding, Shared Nothing achitekti, pataje disk.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Sepandan, tout metòd sa yo kenbe menm estrikti baz done monolitik la. Sa a siyifikativman limite dekale. Pou rezoud pwoblèm sa a, nou devlope pwòp baz done nou an - Amazon Aurora. Li konpatib ak MySQL ak PostgreSQL.

Amazon Aurora

Lide prensipal la achitekti se separe nivo depo ak antre nan baz done prensipal la.

Gade pi devan, mwen pral di ke nou menm tou nou te fè nivo kachèt la endepandan. Achitekti a sispann yon monolit, epi nou jwenn plis degre libète nan dekale blòk endividyèl yo.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done
Logging ak nivo depo yo separe de baz done a.

Yon DBMS tradisyonèl ekri done nan yon sistèm depo nan fòm blòk. Nan Amazon Aurora, nou te kreye depo entelijan ki ka pale lang refè-mòso bwa. Anndan, depo a vire mòso bwa nan blòk done, kontwole entegrite yo epi otomatikman fè bak.

Apwòch sa a pèmèt ou aplike bagay sa yo enteresan tankou klonaj. Li travay fondamantalman pi vit ak plis ekonomikman akòz lefèt ke li pa mande pou kreye yon kopi konplè tout done yo.

Kouch depo a aplike kòm yon sistèm distribiye. Li konsiste de yon gwo kantite serveurs fizik. Chak refè boutèy demi lit trete ak sove ansanm sis ne. Sa a asire pwoteksyon done ak balans chaj.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Lekti dekale ka reyalize lè l sèvi avèk kopi apwopriye. Depo distribiye elimine nesesite pou senkronizasyon ant egzanp prensipal baz done a, nan ki nou ekri done, ak kopi ki rete yo. Done ajou yo garanti yo disponib pou tout kopi yo.

Pwoblèm nan sèlman se kachèt done fin vye granmoun sou kopi li. Men pwoblèm sa a ap rezoud transfè tout refè mòso bwa nan kopi sou rezo entèn la. Si boutèy la nan kachèt la, li make kòm kòrèk epi li ranplase. Si li pa nan kachèt la, li se tou senpleman jete.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Nou regle depo a.

Ki jan yo echèl nivo DBMS

Isit la, dekale orizontal se pi difisil. Se konsa, ann ale nan chemen bat yo dekale vètikal klasik.

Ann sipoze ke nou gen yon aplikasyon ki kominike ak DBMS atravè yon ne mèt.

Lè dekale vètikal, nou asiyen yon nouvo ne ki pral gen plis processeurs ak memwa.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Apre sa, nou chanje aplikasyon an soti nan ansyen ne mèt la nan yon nouvo. Pwoblèm rive.

  • Sa a pral mande siyifikatif D ' aplikasyon.
  • Nouvo ne mèt la pral gen kachèt frèt. Pèfòmans baz done yo pral maksimòm sèlman apre kachèt la chofe.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Ki jan yo amelyore sitiyasyon an? Fikse yon prokurasyon ant aplikasyon an ak ne mèt la.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Kisa sa pral ban nou? Koulye a, tout aplikasyon yo pa bezwen manyèlman redireksyon sou nouvo ne. Chanjman an ka fè anba yon prokurasyon epi li se fondamantalman pi vit.

Li sanble ke pwoblèm nan te rezoud. Men, non, nou toujou soufri nan bezwen an chofe kachèt la. Anplis de sa, yon nouvo pwoblèm te parèt - kounye a prokurasyon an se yon pwen potansyèl de echèk.

Solisyon final ak Amazon Aurora san sèvè

Ki jan nou te rezoud pwoblèm sa yo?

Te kite yon prokurasyon. Sa a se pa yon egzanp separe, men yon flòt antye distribiye nan prokurasyon nan ki aplikasyon yo konekte nan baz done a. Nan ka echèk, nenpòt nan nœuds yo ka ranplase prèske imedyatman.

Te ajoute yon pisin nan nœuds cho nan divès gwosè. Se poutèt sa, si li nesesè asiyen yon nouvo ne nan yon gwosè pi gwo oswa pi piti, li disponib imedyatman. Pa bezwen tann pou li chaje.

Tout pwosesis dekale kontwole pa yon sistèm siveyans espesyal. Siveyans toujou ap kontwole eta a nan ne aktyèl la mèt. Si li detekte, pou egzanp, ke chaj la processeur te rive nan yon valè kritik, li notifye pisin lan nan sikonstans cho sou bezwen nan asiyen yon nouvo ne.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done
Distribiye prokurasyon, enstans cho ak siveyans.

Yon ne ki gen pouvwa ki nesesè yo disponib. Pisin tanpon yo kopye sou li, epi sistèm nan kòmanse tann pou yon moman ki an sekirite pou chanje.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Anjeneral moman pou chanje a rive byen vit. Lè sa a, kominikasyon ant prokurasyon an ak ansyen ne mèt la sispann, tout sesyon yo chanje nan nouvo ne.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Travay ak baz done a rezime.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

Grafik la montre sispansyon an vrèman kout. Grafik ble a montre chaj la, ak etap wouj yo montre moman dekale yo. Kout tèm plonje nan graf ble a se jisteman ke kout reta.

Ki jan AWS kwit sèvis elastik li yo. Echèl serveurs ak baz done

By wout la, Amazon Aurora pèmèt ou konplètman ekonomize lajan epi fèmen baz done a lè li pa itilize, pou egzanp, nan wikenn. Apre yo fin sispann chaj la, DB a piti piti diminye pouvwa li epi li fèmen pou kèk tan. Lè chaj la retounen, li pral leve san pwoblèm ankò.

Nan pwochen pati nan istwa a sou aparèy Amazon an, nou pral pale sou dekale rezo a. Abònman lapòs epi rete branche pou w pa rate atik la.

Sou HighLoad ++ Vasily Pantyukhin pral bay yon rapò "Houston, nou gen yon pwoblèm. Konsepsyon sistèm pou echèk, modèl devlopman pou sèvis nwaj Amazon entèn yo" Ki modèl konsepsyon pou sistèm distribiye yo itilize pa devlopè Amazon yo, ki rezon ki fè echèk sèvis, ki sa ki achitekti ki baze sou selil, travay konstan, Shuffle Sharding - li pral enteresan. Mwens pase yon mwa jiskaske konferans lan - rezève tikè ou yo. Oktòb 24 final ogmantasyon pri.

Sous: www.habr.com

Add nouvo kòmantè