ProHoster > Blogs > AdministrÄcija > KÄ AWS pagatavo savus elastÄ«gos pakalpojumus. Serveru un datu bÄzes mÄrogoÅ”ana
KÄ AWS pagatavo savus elastÄ«gos pakalpojumus. Serveru un datu bÄzes mÄrogoÅ”ana
MÄkoÅi ir kÄ burvju kastÄ«te ā tu jautÄ, kas tev vajadzÄ«gs, un resursi vienkÄrÅ”i parÄdÄs no nekurienes. VirtuÄlÄs maŔīnas, datu bÄzes, tÄ«kls - tas viss pieder tikai jums. Ir arÄ« citi mÄkoÅu Ä«rnieki, bet jÅ«su VisumÄ jÅ«s esat vienÄ«gais valdnieks. JÅ«s esat pÄrliecinÄts, ka vienmÄr saÅemsiet nepiecieÅ”amos resursus, nerÄÄ·inÄsieties ar nevienu un patstÄvÄ«gi nosakÄt, kÄds bÅ«s tÄ«kls. KÄ darbojas Ŕī maÄ£ija, kas liek mÄkonim elastÄ«gi sadalÄ«t resursus un pilnÄ«bÄ izolÄt Ä«rniekus vienu no otra?
AWS mÄkonis ir ļoti sarežģīta sistÄma, kas kopÅ” 2006. gada ir evolucionÄri attÄ«stÄ«jusies. Daļa no Ŕīs attÄ«stÄ«bas notika Vasilijs Pantjukhins - Amazon Web Services arhitekts. KÄ arhitekts viÅÅ” ieskatÄs ne tikai galarezultÄtÄ, bet arÄ« izaicinÄjumos, ko AWS pÄrvar. Jo lielÄka izpratne par sistÄmas darbÄ«bu, jo lielÄka uzticÄÅ”anÄs. TÄpÄc Vasilijs dalÄ«sies ar AWS mÄkoÅpakalpojumu noslÄpumiem. TÄlÄk ir sniegts fizisko AWS serveru dizains, elastÄ«gÄ datu bÄzes mÄrogojamÄ«ba, pielÄgota Amazon datu bÄze un metodes virtuÄlo maŔīnu veiktspÄjas palielinÄÅ”anai, vienlaikus samazinot to cenu. ZinÄÅ”anas par Amazon arhitektÅ«ras pieejÄm palÄ«dzÄs efektÄ«vÄk izmantot AWS pakalpojumus un var sniegt jaunas idejas savu risinÄjumu izveidei. Par runÄtÄju: Vasilijs Pantjukhins (VÄ«ns) sÄka kÄ Unix administrators .ru uzÅÄmumos, 6 gadus strÄdÄja pie lielas Sun Microsystem aparatÅ«ras un 11 gadus sludinÄja uz datiem orientÄtu pasauli EMC. Tas dabiski pÄrtapa privÄtos mÄkoÅos un 2017. gadÄ pÄrcÄlÄs uz publiskiem mÄkoÅiem. Tagad viÅÅ” sniedz tehniskus padomus, lai palÄ«dzÄtu dzÄ«vot un attÄ«stÄ«ties AWS mÄkonÄ«.
Atruna: viss tÄlÄk ir Vasilija personÄ«gais viedoklis un var nesakrist ar Amazon Web Services nostÄju. Video ierakstÄ«Å”ana PÄrskats, uz kura ir balstÄ«ts raksts, ir pieejams mÅ«su YouTube kanÄlÄ.
KÄpÄc es runÄju par Amazon ierÄ«ci?
Manai pirmajai maŔīnai bija manuÄlÄ pÄrnesumkÄrba. Tas bija lieliski, jo bija sajÅ«ta, ka varu vadÄ«t automaŔīnu un pilnÄ«bÄ kontrolÄt to. Patika arÄ« tas, ka vismaz aptuveni sapratu tÄs darbÄ«bas principu. LikumsakarÄ«gi, ka kastes uzbÅ«vi iztÄlojos diezgan primitÄ«vu - kaut kas lÄ«dzÄ«gs velosipÄda ÄtrumkÄrbai.
Viss bija lieliski, izÅemot vienu ā iestrÄguÅ”u sastrÄgumos. Å Ä·iet, ka tu sÄdi un neko nedara, bet nemitÄ«gi pÄrslÄdzat pÄrnesumus, spiežat sajÅ«gu, gÄzi, bremzes ā tas tieÅ”Äm nogurdina. SastrÄgumu problÄma daļÄji tika atrisinÄta, kad Ä£imene ieguva automÄtu. Braucot, man bija laiks kaut ko padomÄt un paklausÄ«ties audiogrÄmatu.
ManÄ dzÄ«vÄ parÄdÄ«jÄs vÄl viens noslÄpums, jo es pilnÄ«bÄ pÄrstÄju saprast, kÄ darbojas mans auto. MÅ«sdienu automaŔīna ir sarežģīta ierÄ«ce. Auto vienlaikus pielÄgojas desmitiem dažÄdu parametru: gÄzes spieÅ”anai, bremzÄm, braukÅ”anas stilam, ceļa kvalitÄtei. Es vairs nesaprotu, kÄ tas darbojas.
Kad es sÄku strÄdÄt pie Amazon mÄkoÅa, tas arÄ« man bija noslÄpums. Tikai Å”is noslÄpums ir par lielumu lielÄks, jo automaŔīnÄ ir viens vadÄ«tÄjs, un AWS viÅu ir miljoniem. Visi lietotÄji vienlaikus stÅ«rÄ, spiež gÄzi un bremzÄ. ApbrÄ«nojami, ka viÅi iet, kur grib ā man tas ir brÄ«nums! SistÄma automÄtiski pielÄgojas, mÄrogojas un elastÄ«gi pielÄgojas katram lietotÄjam tÄ, ka viÅam Ŕķiet, ka viÅÅ” ir viens Å”ajÄ VisumÄ.
MaÄ£ija nedaudz pazuda, kad vÄlÄk sÄku strÄdÄt par arhitektu Amazon. Es redzÄju, ar kÄdÄm problÄmÄm mÄs saskaramies, kÄ tÄs risinÄm un kÄ attÄ«stÄm pakalpojumus. Palielinoties izpratnei par to, kÄ sistÄma darbojas, rodas lielÄka pÄrliecÄ«ba par pakalpojumu. TÄpÄc es vÄlos dalÄ«ties ar attÄlu, kas atrodas zem AWS mÄkoÅa pÄrsega.
Par ko mÄs runÄsim
IzvÄlÄjos daudzveidÄ«gu pieeju ā izvÄlÄjos 4 interesantus pakalpojumus, par kuriem ir vÄrts runÄt.
Servera optimizÄcija. ÄŖslaicÄ«gi mÄkoÅi ar fizisku iemiesojumu: fiziski datu centri, kur atrodas fiziski serveri, kas dÅ«ko, uzkarst un mirgo ar gaismÄm.
Bez servera funkcijas (Lambda), iespÄjams, ir visvairÄk mÄrogojamais pakalpojums mÄkonÄ«.
Datu bÄzes mÄrogoÅ”ana. Es jums pastÄstÄ«Å”u par to, kÄ mÄs veidojam savas mÄrogojamÄs datu bÄzes.
TÄ«kla mÄrogoÅ”ana. PÄdÄjÄ daļa, kurÄ es atvÄrÅ”u mÅ«su tÄ«kla ierÄ«ci. TÄ ir brÄ«niŔķīga lieta ā katrs mÄkoÅa lietotÄjs uzskata, ka mÄkonÄ« ir viens un citus Ä«rniekus nemaz neredz.
PiezÄ«me. Å ajÄ rakstÄ tiks apspriesta servera optimizÄcija un datu bÄzes mÄrogoÅ”ana. NÄkamajÄ rakstÄ mÄs apsvÄrsim tÄ«kla mÄrogoÅ”anu. Kur ir bezservera funkcijas? Par viÅiem tika publicÄts atseviŔķs stenogrammas "Mazs, bet gudrs. Unboxing Firecracker mikrovirtuÄls" TajÄ ir runÄts par vairÄkÄm dažÄdÄm mÄrogoÅ”anas metodÄm un detalizÄti apskatÄ«ts Firecracker risinÄjums - virtuÄlÄs maŔīnas un konteineru labÄko Ä«paŔību simbioze.
Serveri
MÄkonis ir Ä«slaicÄ«gs. Bet Å”ai Ä«slaicÄ«gumam joprojÄm ir fiziskais iemiesojums - serveri. SÄkotnÄji to arhitektÅ«ra bija klasiska. Standarta x86 mikroshÄmojums, tÄ«kla kartes, Linux, Xen hipervizors, kurÄ tika darbinÄtas virtuÄlÄs maŔīnas.
2012. gadÄ Å”Ä« arhitektÅ«ra ar saviem uzdevumiem tika galÄ diezgan labi. Xen ir lielisks hipervizors, taÄu tam ir viens bÅ«tisks trÅ«kums. ViÅam ir gana augstas pieskaitÄmÄs izmaksas ierÄ«ces emulÄcijai. Kad kļūst pieejamas jaunas, ÄtrÄkas tÄ«kla kartes vai SSD diskdziÅi, Ŕīs pieskaitÄmÄs izmaksas kļūst pÄrÄk lielas. KÄ tikt galÄ ar Å”o problÄmu? MÄs nolÄmÄm strÄdÄt divÄs frontÄs vienlaikus - optimizÄt gan aparatÅ«ru, gan hipervizoru. Uzdevums ir ļoti nopietns.
AparatÅ«ras un hipervizora optimizÄÅ”ana
Darot visu uzreiz un labi darot, tas nedarbosies. ArÄ« tas, kas bija ālabsā, sÄkotnÄji nebija skaidrs.
MÄs nolÄmÄm izmantot evolucionÄru pieeju ā mainÄm vienu svarÄ«gu arhitektÅ«ras elementu un laižam to ražoÅ”anÄ.
UzkÄpjam uz katra grÄbekļa, uzklausÄm sÅ«dzÄ«bas un ieteikumus. Tad mÄs mainÄm citu komponentu. TÄpÄc mÄs nelielÄs daļÄs radikÄli mainÄm visu arhitektÅ«ru, pamatojoties uz lietotÄju atsauksmÄm un atbalstu.
PÄrveidoÅ”ana sÄkÄs 2013. gadÄ ar vissarežģītÄko lietu - tÄ«klu. IN Š”3 gadÄ«jumos standarta tÄ«kla kartei tika pievienota Ä«paÅ”a Network Accelerator karte. Tas tika burtiski savienots ar Ä«su atpakaļcilpas kabeli priekÅ”ÄjÄ panelÄ«. Tas nav skaisti, bet tas nav redzams mÄkonÄ«. TaÄu tieÅ”a mijiedarbÄ«ba ar aparatÅ«ru bÅ«tiski uzlaboja nervozitÄti un tÄ«kla caurlaidspÄju.
TÄlÄk mÄs nolÄmÄm uzlabot piekļuvi bloku datu glabÄÅ”anai EBS - Elastic Block Storage. TÄ ir tÄ«kla un krÄtuves kombinÄcija. GrÅ«tÄ«bas ir tÄdas, ka, lai gan tirgÅ« pastÄvÄja tÄ«kla paÄtrinÄtÄja kartes, nebija iespÄjas vienkÄrÅ”i iegÄdÄties Storage Accelerator aparatÅ«ru. TÄpÄc mÄs pievÄrsÄmies starta uzÅÄmumam Annapurna Labs, kurÅ” mums izstrÄdÄja Ä«paÅ”as ASIC mikroshÄmas. Tie ļÄva attÄlos EBS sÄjumus uzstÄdÄ«t kÄ NVMe ierÄ«ces.
GadÄ«jumos C4 mÄs atrisinÄjÄm divas problÄmas. Pirmais ir tas, ka mÄs ieviesÄm daudzsoloÅ”Äs, bet tajÄ laikÄ jaunas NVMe tehnoloÄ£ijas pamatu nÄkotnei. OtrkÄrt, bÅ«tiski atslogojÄm centrÄlo procesoru, pÄrceļot pieprasÄ«jumu apstrÄdi EBS uz jaunu karti. Tas izrÄdÄ«jÄs labi, tÄpÄc tagad Annapurna Labs ir daļa no Amazon.
LÄ«dz 2017. gada novembrim mÄs sapratÄm, ka ir pienÄcis laiks mainÄ«t paÅ”u hipervizoru.
Jaunais hipervizors tika izstrÄdÄts, pamatojoties uz modificÄtiem KVM kodola moduļiem.
Tas ļÄva bÅ«tiski samazinÄt ierÄ«ces emulÄcijas izmaksas un strÄdÄt tieÅ”i ar jauniem ASIC. GadÄ«jumi Š”5 bija pirmÄs virtuÄlÄs maŔīnas ar jaunu hipervizoru, kas darbojas zem pÄrsega. MÄs viÅu nosaucÄm vÄrdÄ Nitro.
GadÄ«jumu attÄ«stÄ«ba laika skalÄ.
Visi jaunie virtuÄlo maŔīnu veidi, kas ir parÄdÄ«juÅ”ies kopÅ” 2017. gada novembra, darbojas Å”ajÄ hipervizorÄ. Bare Metal gadÄ«jumiem nav hipervizora, bet tos sauc arÄ« par Nitro, jo tiek izmantotas specializÄtas Nitro kartes.
NÄkamo divu gadu laikÄ Nitro gadÄ«jumu skaits pÄrsniedza pÄris desmitus: A1, C5, M5, T3 un citi.
InstanÄu veidi.
KÄ darbojas mÅ«sdienu Nitro maŔīnas
Tiem ir trÄ«s galvenÄs sastÄvdaļas: Nitro hipervizors (apskatÄ«ts iepriekÅ”), droŔības mikroshÄma un Nitro kartes.
DroŔības mikroshÄma integrÄta tieÅ”i mÄtesplatÄ. Tas kontrolÄ daudzas svarÄ«gas funkcijas, piemÄram, resursdatora OS ielÄdes kontroli.
Nitro kartes ā Ir Äetri to veidi. Tos visus izstrÄdÄ Annapurna Labs, un tie ir balstÄ«ti uz kopÄ«giem ASIC. Dažas to programmaparatÅ«ras ir arÄ« izplatÄ«tas.
Äetru veidu Nitro kartes.
Viena no kartÄm ir paredzÄta darbam tÄ«kluVPC. Tas ir redzams virtuÄlajÄs maŔīnÄs kÄ tÄ«kla karte ENA - elastÄ«gs tÄ«kla adapteris. Tas arÄ« iekapsulÄ trafiku, pÄrsÅ«tot to caur fizisko tÄ«klu (par to mÄs runÄsim raksta otrajÄ daļÄ), kontrolÄ droŔības grupu ugunsmÅ«ri un ir atbildÄ«gs par marÅ”rutÄÅ”anu un citÄm tÄ«kla lietÄm.
AtseviŔķas kartes darbojas ar bloku krÄtuvi EBS un diski, kas ir iebÅ«vÄti serverÄ«. Viesu virtuÄlajai maŔīnai tie parÄdÄs kÄ NVMe adapteri. ViÅi ir arÄ« atbildÄ«gi par datu Å”ifrÄÅ”anu un diska uzraudzÄ«bu.
Nitro karÅ”u, hipervizora un droŔības mikroshÄmas sistÄma ir integrÄta SDN tÄ«klÄ vai ProgrammatÅ«ras definÄts tÄ«kls. AtbildÄ«gs par Ŕī tÄ«kla pÄrvaldÄ«bu (vadÄ«bas plakne) kontroliera karte.
Protams, mÄs turpinÄm izstrÄdÄt jaunus ASIC. PiemÄram, 2018. gada beigÄs viÅi izlaida Inferentia mikroshÄmu, kas ļauj efektÄ«vÄk strÄdÄt ar maŔīnmÄcÄ«Å”anÄs uzdevumiem.
TradicionÄlajai datubÄzei ir daudzslÄÅu struktÅ«ra. Lai ievÄrojami vienkÄrÅ”otu, tiek izdalÄ«ti Å”Ädi lÄ«meÅi.
SQL ā pie tÄ strÄdÄ klientu un pieprasÄ«jumu dispeÄeri.
Noteikumi darÄ«jumiem - Å”eit viss ir skaidrs, SKÄBE un viss.
keÅ”atmiÅa, ko nodroÅ”ina bufera baseini.
MežizstrÄde ā nodroÅ”ina darbu ar pÄrtaisÄ«Å”anas žurnÄliem. MySQL tos sauc par atkritumu žurnÄliem, bet PosgreSQL - rakstÄ«Å”anas žurnÄli (WAL).
TomÄr visas Ŕīs metodes saglabÄ to paÅ”u monolÄ«tu datu bÄzes struktÅ«ru. Tas ievÄrojami ierobežo mÄrogoÅ”anu. Lai atrisinÄtu Å”o problÄmu, mÄs izstrÄdÄjÄm savu datu bÄzi ā Amazones Aurora. Tas ir saderÄ«gs ar MySQL un PostgreSQL.
Amazones Aurora
GalvenÄ arhitektÅ«ras ideja ir atdalÄ«t uzglabÄÅ”anas un reÄ£istrÄÅ”anas lÄ«meÅus no galvenÄs datu bÄzes.
Raugoties nÄkotnÄ, es teikÅ”u, ka mÄs arÄ« padarÄ«jÄm neatkarÄ«gu keÅ”atmiÅas lÄ«meni. ArhitektÅ«ra pÄrstÄj bÅ«t monolÄ«ts, un mÄs iegÅ«stam papildu brÄ«vÄ«bas pakÄpes atseviŔķu bloku mÄrogoÅ”ana.
ReÄ£istrÄcijas un uzglabÄÅ”anas lÄ«meÅi ir atseviŔķi no datu bÄzes.
TradicionÄlÄ DBVS ieraksta datus uzglabÄÅ”anas sistÄmÄ bloku veidÄ. UzÅÄmumÄ Amazon Aurora mÄs izveidojÄm viedo krÄtuvi, kas var runÄt valodÄ pÄrtaisÄ«t žurnÄlus. IekÅ”pusÄ krÄtuve pÄrvÄrÅ” žurnÄlus datu blokos, uzrauga to integritÄti un automÄtiski dublÄ.
Å Ä« pieeja ļauj Ä«stenot tÄdas interesantas lietas kÄ klonÄÅ”ana. Tas darbojas principiÄli ÄtrÄk un ekonomiskÄk, jo nav nepiecieÅ”ams izveidot visu datu pilnÄ«gu kopiju.
UzglabÄÅ”anas slÄnis tiek Ä«stenots kÄ izplatÄ«ta sistÄma. Tas sastÄv no ļoti liela skaita fizisko serveru. Katrs pÄrtaisÄ«Å”anas žurnÄls tiek apstrÄdÄts un saglabÄts vienlaicÄ«gi seÅ”i mezgli. Tas nodroÅ”ina datu aizsardzÄ«bu un slodzes lÄ«dzsvaroÅ”anu.
LasÄ«Å”anas mÄrogoÅ”anu var panÄkt, izmantojot atbilstoÅ”as āākopijas. SadalÄ«tÄ krÄtuve novÄrÅ” nepiecieÅ”amÄ«bu pÄc sinhronizÄcijas starp galveno datu bÄzes gadÄ«jumu, caur kuru mÄs rakstÄm datus, un atlikuÅ”ajÄm replikÄm. Tiek garantÄts, ka jaunÄkie dati bÅ«s pieejami visÄm replikÄm.
VienÄ«gÄ problÄma ir veco datu saglabÄÅ”ana keÅ”atmiÅÄ lasÄ«tajÄs replikÄs. Bet Ŕī problÄma tiek atrisinÄta visu pÄrtaisÄ«Å”anas žurnÄlu nodoÅ”ana uz replikÄm iekÅ”ÄjÄ tÄ«klÄ. Ja žurnÄls atrodas keÅ”atmiÅÄ, tas tiek atzÄ«mÄts kÄ nepareizs un pÄrrakstÄ«ts. Ja tas nav keÅ”atmiÅÄ, tas tiek vienkÄrÅ”i izmests.
SakÄrtojÄm krÄtuvi.
KÄ mÄrogot DBVS lÄ«meÅus
Å eit horizontÄlÄ mÄrogoÅ”ana ir daudz grÅ«tÄka. TÄpÄc iesim pa iemÄ«to taku klasiskÄ vertikÄlÄ mÄrogoÅ”ana.
PieÅemsim, ka mums ir lietojumprogramma, kas sazinÄs ar DBVS, izmantojot galveno mezglu.
MÄrogojot vertikÄli, mÄs pieŔķiram jaunu mezglu, kuram bÅ«s vairÄk procesoru un atmiÅas.
TÄlÄk mÄs pÄrslÄdzam lietojumprogrammu no vecÄ galvenÄ mezgla uz jauno. Rodas problÄmas.
Tas prasÄ«s ievÄrojamu lietojumprogrammu dÄ«kstÄvi.
Jaunajam galvenajam mezglam bÅ«s aukstÄ keÅ”atmiÅa. Datu bÄzes veiktspÄja bÅ«s maksimÄla tikai pÄc keÅ”atmiÅas uzsilÅ”anas.
KÄ uzlabot situÄciju? Iestatiet starpniekserveri starp lietojumprogrammu un galveno mezglu.
Ko tas mums dos? Tagad visas lietojumprogrammas nav manuÄli jÄpÄrvirza uz jauno mezglu. PÄrslÄgÅ”anu var veikt, izmantojot starpniekserveri, un tÄ ir principiÄli ÄtrÄka.
Å Ä·iet, ka problÄma ir atrisinÄta. Bet nÄ, mÄs joprojÄm cieÅ”am no nepiecieÅ”amÄ«bas iesildÄ«t keÅ”atmiÅu. TurklÄt ir parÄdÄ«jusies jauna problÄma - tagad starpniekserveris ir potenciÄls neveiksmes punkts.
GalÄ«gais risinÄjums ar Amazon Aurora bez servera
KÄ mÄs Ŕīs problÄmas atrisinÄjÄm?
AtstÄjis starpniekserveri. Tas nav atseviŔķs gadÄ«jums, bet gan vesela izplatÄ«ta starpniekserveru parka, caur kuru lietojumprogrammas izveido savienojumu ar datu bÄzi. Neveiksmes gadÄ«jumÄ jebkuru no mezgliem var nomainÄ«t gandrÄ«z uzreiz.
Pievienots dažÄdu izmÄru siltu mezglu baseins. TÄpÄc, ja nepiecieÅ”ams pieŔķirt jaunu lielÄka vai mazÄka izmÄra mezglu, tas ir uzreiz pieejams. Nav jÄgaida, lÄ«dz tas tiks ielÄdÄts.
Visu mÄrogoÅ”anas procesu kontrolÄ Ä«paÅ”a uzraudzÄ«bas sistÄma. UzraudzÄ«ba pastÄvÄ«gi uzrauga paÅ”reizÄjÄ galvenÄ mezgla stÄvokli. Ja tas konstatÄ, piemÄram, ka procesora slodze ir sasniegusi kritisko vÄrtÄ«bu, tÄ informÄ silto gadÄ«jumu kopu par nepiecieÅ”amÄ«bu pieŔķirt jaunu mezglu.
Izplatīti starpniekserveri, silti gadījumi un uzraudzība.
Ir pieejams mezgls ar nepiecieÅ”amo jaudu. Bufera pÅ«li tiek kopÄti tajÄ, un sistÄma sÄk gaidÄ«t droÅ”u brÄ«di, lai pÄrslÄgtos.
Parasti pÄrslÄgÅ”anÄs brÄ«dis pienÄk diezgan Ätri. PÄc tam saziÅa starp starpniekserveri un veco galveno mezglu tiek apturÄta, visas sesijas tiek pÄrslÄgtas uz jauno mezglu.
Darbs ar datu bÄzi atsÄk.
GrafikÄ redzams, ka balstiekÄrta patieÅ”Äm ir ļoti Ä«sa. ZilÄ diagramma parÄda slodzi, un sarkanie soļi parÄda mÄrogoÅ”anas momentus. ÄŖstermiÅa kritumi zilajÄ diagrammÄ ir tieÅ”i tik Ä«sa aizkave.
Starp citu, Amazon Aurora ļauj pilnÄ«bÄ ietaupÄ«t naudu un izslÄgt datubÄzi, kad tÄ netiek lietota, piemÄram, brÄ«vdienÄs. PÄc slodzes apturÄÅ”anas DB pakÄpeniski samazina jaudu un uz kÄdu laiku izslÄdzas. Kad slodze atgriezÄ«sies, tÄ atkal vienmÄrÄ«gi pacelsies.
NÄkamajÄ stÄsta daÄ¼Ä par Amazon ierÄ«ci mÄs runÄsim par tÄ«kla mÄrogoÅ”anu. AbonÄt pastu un sekojiet lÄ«dzi jaunumiem, lai nepalaistu garÄm rakstu.