KÄ AWS pagatavo savus elastÄ«gos pakalpojumus. TÄ«kla mÄrogoÅ”ana
Amazon Web Services tÄ«kla mÄrogs ir 69 zonas visÄ pasaulÄ 22 reÄ£ionos: ASV, EiropÄ, ÄzijÄ, ÄfrikÄ un AustrÄlijÄ. KatrÄ zonÄ ir lÄ«dz 8 datu centriem ā datu apstrÄdes centriem. KatrÄ datu centrÄ ir tÅ«kstoÅ”iem vai simtiem tÅ«kstoÅ”u serveru. TÄ«kls ir izveidots tÄ, lai tiktu Åemti vÄrÄ visi maziespÄjamo pÄrtraukumu scenÄriji. PiemÄram, visi reÄ£ioni ir izolÄti viens no otra, un pieejamÄ«bas zonas ir atdalÄ«tas vairÄku kilometru attÄlumÄ. Pat pÄrgriežot kabeli, sistÄma pÄrslÄgsies uz rezerves kanÄliem, un informÄcijas zudums sasniegs dažas datu paketes. Vasilijs Pantjukhins runÄs par to, uz kÄdiem vÄl principiem tÄ«kls ir veidots un kÄ tas ir strukturÄts.
Vasilijs Pantjukhins 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 attÄ«stÄ«jÄs privÄtos mÄkoÅos, pÄc tam pÄrcÄlÄs uz publiskiem mÄkoÅiem. Tagad kÄ Amazon Web Services arhitekts viÅÅ” sniedz tehniskus padomus, lai palÄ«dzÄtu dzÄ«vot un attÄ«stÄ«ties AWS mÄkonÄ«.
Å Ä« daļa koncentrÄsies uz tÄ«kla mÄrogoÅ”anu, kas ir viena no vissarežģītÄkajÄm AWS sistÄmÄm. EvolÅ«cija no plakana tÄ«kla uz virtuÄlo privÄto mÄkoni un tÄ dizains, Blackfoot un HyperPlane iekÅ”Äjie pakalpojumi, trokÅ”ÅainÄ kaimiÅa problÄma un beigÄs - tÄ«kla mÄrogs, mugurkauls un fiziskie kabeļi. Par to visu zem griezuma.
Atruna: viss tÄlÄk ir Vasilija personÄ«gais viedoklis un var nesakrist ar Amazon Web Services nostÄju.
TÄ«kla mÄrogoÅ”ana
AWS mÄkonis tika palaists 2006. gadÄ. ViÅa tÄ«kls bija diezgan primitÄ«vs ā ar plakanu struktÅ«ru. PrivÄto adreÅ”u diapazons bija kopÄ«gs visiem mÄkoÅa Ä«rniekiem. StartÄjot jaunu virtuÄlo maŔīnu, jÅ«s nejauÅ”i saÅÄmÄt pieejamu IP adresi no Ŕī diapazona.
Å o pieeju bija viegli ieviest, taÄu tÄ bÅ«tiski ierobežoja mÄkoÅa izmantoÅ”anu. Jo Ä«paÅ”i bija diezgan grÅ«ti izstrÄdÄt hibrÄ«dus risinÄjumus, kas apvienotu privÄtos tÄ«klus uz vietas un AWS. VisizplatÄ«tÄkÄ problÄma bija IP adreÅ”u diapazonu pÄrklÄÅ”anÄs.
VirtuÄlais privÄtais mÄkonis
MÄkonis izrÄdÄ«jÄs pieprasÄ«ts. Ir pienÄcis laiks domÄt par mÄrogojamÄ«bu un iespÄju to izmantot desmitiem miljonu Ä«rnieku. Plakanais tÄ«kls ir kļuvis par galveno ŔķÄrsli. TÄpÄc mÄs domÄjÄm par to, kÄ tÄ«kla lÄ«menÄ« izolÄt lietotÄjus vienu no otra, lai viÅi varÄtu patstÄvÄ«gi izvÄlÄties IP diapazonus.
Kas ir pirmais, kas nÄk prÄtÄ, domÄjot par tÄ«kla izolÄciju? Noteikti VLAN Šø VRF ā virtuÄlÄ marÅ”rutÄÅ”ana un pÄrsÅ«tÄ«Å”ana.
DiemžÄl tas neizdevÄs. VLAN ID ir tikai 12 biti, kas dod mums tikai 4096 izolÄtus segmentus. Pat lielÄkie slÄdži var izmantot ne vairÄk kÄ 1-2 tÅ«kstoÅ”us VRF. Izmantojot VRF un VLAN kopÄ, mÄs iegÅ«stam tikai dažus miljonus apakÅ”tÄ«klu. Ar to noteikti nepietiek desmitiem miljonu Ä«rnieku, no kuriem katram jÄspÄj izmantot vairÄkus apakÅ”tÄ«klus.
MÄs arÄ« vienkÄrÅ”i nevaram atļauties iegÄdÄties nepiecieÅ”amo lielo kastu skaitu, piemÄram, no Cisco vai Juniper. Ir divi iemesli: tas ir traki dÄrgi, un mÄs nevÄlamies bÅ«t viÅu attÄ«stÄ«bas un lÄpÄ«Å”anas politikas žÄlastÄ«bÄ.
SecinÄjums ir tikai viens ā izdariet savu risinÄjumu.
2009. gadÄ mÄs paziÅojÄm VPC SÄkot no VirtuÄlais privÄtais mÄkonis. Nosaukums iestrÄga, un tagad to izmanto arÄ« daudzi mÄkoÅpakalpojumu sniedzÄji.
VPC ir virtuÄls tÄ«kls SDN (ProgrammatÅ«ras definÄts tÄ«kls). MÄs nolÄmÄm neizgudrot Ä«paÅ”us protokolus L2 un L3 lÄ«menÄ«. TÄ«kls darbojas standarta Ethernet un IP tÄ«klÄ. PÄrsÅ«tÄ«Å”anai tÄ«klÄ virtuÄlÄs maŔīnas trafiks tiek iekapsulÄts mÅ«su paÅ”u protokola iesaiÅojumÄ. Tas norÄda ID, kas pieder Ä«rnieka VPC.
IzklausÄs vienkÄrÅ”i. TomÄr ir vairÄkas nopietnas tehniskas problÄmas, kas ir jÄpÄrvar. PiemÄram, kur un kÄ glabÄt datus par virtuÄlo MAC/IP adreÅ”u kartÄÅ”anu, VPC ID un atbilstoÅ”o fizisko MAC/IP. AWS mÄrogÄ Å”Ä« ir milzÄ«ga tabula, kurai vajadzÄtu darboties ar minimÄlu piekļuves aizkavi. AtbildÄ«gs par to kartÄÅ”anas pakalpojums, kas plÄnÄ kÄrtÄ izkliedÄjas visÄ tÄ«klÄ.
JaunÄs paaudzes maŔīnÄs iekapsulÄÅ”anu veic Nitro kartes aparatÅ«ras lÄ«menÄ«. VecÄkos gadÄ«jumos iekapsulÄÅ”ana un dekapsulÄÅ”ana ir balstÄ«ta uz programmatÅ«ru.
IzdomÄsim, kÄ tas darbojas vispÄrÄ«gi. SÄksim ar L2 lÄ«meni. PieÅemsim, ka mums ir virtuÄlÄ maŔīna ar IP 10.0.0.2 uz fiziskÄ servera 192.168.0.3. Tas nosÅ«ta datus uz virtuÄlo maŔīnu 10.0.0.3, kas darbojas uz 192.168.1.4. Tiek Ä£enerÄts ARP pieprasÄ«jums un nosÅ«tÄ«ts uz tÄ«kla Nitro karti. VienkÄrŔības labad mÄs pieÅemam, ka abas virtuÄlÄs maŔīnas atrodas vienÄ āzilajÄā VPC.
Karte aizstÄj avota adresi ar savu un pÄrsÅ«ta ARP rÄmi kartÄÅ”anas pakalpojumam.
KartÄÅ”anas pakalpojums atgriež informÄciju, kas nepiecieÅ”ama pÄrraidei L2 fiziskajÄ tÄ«klÄ.
Nitro karte ARP atbildÄ aizstÄj MAC fiziskajÄ tÄ«klÄ ar adresi VPC.
PÄrsÅ«tot datus, loÄ£isko MAC un IP iesaiÅojam VPC iesaiÅojumÄ. MÄs to visu pÄrraidÄm fiziskajÄ tÄ«klÄ, izmantojot atbilstoÅ”as āāavota un mÄrÄ·a IP Nitro kartes.
PÄrbaudi veic fiziskÄ iekÄrta, kurai paka ir paredzÄta. Tas ir nepiecieÅ”ams, lai novÄrstu adreÅ”u viltoÅ”anas iespÄju. MaŔīna nosÅ«ta speciÄlu pieprasÄ«jumu kartÄÅ”anas dienestam un jautÄ: āNo fiziskÄs maŔīnas 192.168.0.3 saÅÄmu paketi, kas paredzÄta 10.0.0.3 zilajÄ VPC. Vai viÅÅ” ir likumÄ«gs?
KartÄÅ”anas pakalpojums pÄrbauda savu resursu pieŔķirÅ”anas tabulu un atļauj vai liedz paketei iziet cauri. Visos jaunajos gadÄ«jumos papildu validÄcija ir iegulta Nitro kartÄs. To nav iespÄjams apiet pat teorÄtiski. TÄpÄc viltoÅ”ana ar resursiem citÄ VPC nedarbosies.
PÄc tam dati tiek nosÅ«tÄ«ti uz virtuÄlo maŔīnu, kurai tie ir paredzÄti.
KartÄÅ”anas pakalpojums darbojas arÄ« kÄ loÄ£isks marÅ”rutÄtÄjs datu pÄrsÅ«tÄ«Å”anai starp virtuÄlajÄm maŔīnÄm dažÄdos apakÅ”tÄ«klos. Viss ir konceptuÄli vienkÄrÅ”i, es neiedziļinÄÅ”os.
IzrÄdÄs, ka, pÄrsÅ«tot katru paketi, serveri vÄrÅ”as pie kartÄÅ”anas servisa. KÄ tikt galÄ ar neizbÄgamu kavÄÅ”anos? KeÅ”atmiÅa, protams.
Skaistums ir tÄds, ka jums nav nepiecieÅ”ams keÅ”atmiÅÄ saglabÄt visu milzÄ«go tabulu. Fizisks serveris mitina virtuÄlÄs maŔīnas no salÄ«dzinoÅ”i neliela VPC skaita. Jums ir nepiecieÅ”ams tikai keÅ”atmiÅÄ saglabÄt informÄciju par Å”iem VPC. Datu pÄrsÅ«tÄ«Å”ana uz citiem VPC ānoklusÄjumaā konfigurÄcijÄ joprojÄm nav likumÄ«ga. Ja tiek izmantota tÄda funkcionalitÄte kÄ VPC peering, informÄcija par atbilstoÅ”ajiem VPC tiek papildus ielÄdÄta keÅ”atmiÅÄ.
SakÄrtojÄm datu pÄrsÅ«tÄ«Å”anu uz VPC.
Blackfoot
Ko darÄ«t gadÄ«jumos, kad satiksme ir jÄpÄrraida ÄrpusÄ, piemÄram, uz internetu vai caur VPN uz zemi? PalÄ«dz mums Å”eit Blackfoot ā AWS iekÅ”Äjais pakalpojums. To izstrÄdÄjusi mÅ«su DienvidÄfrikas komanda. TÄpÄc pakalpojums ir nosaukts DienvidÄfrikÄ dzÄ«vojoÅ”a pingvÄ«na vÄrdÄ.
Blackfoot dekapsulÄ satiksmi un dara ar to visu, kas nepiecieÅ”ams. Dati tiek nosÅ«tÄ«ti uz internetu tÄdi, kÄdi tie ir.
Izmantojot VPN, dati tiek dekapsulÄti un atkÄrtoti iesaiÅoti IPsec.
Izmantojot Direct Connect, trafiks tiek atzÄ«mÄts un nosÅ«tÄ«ts uz atbilstoÅ”o VLAN.
HiperPlane
Å is ir iekÅ”ÄjÄs plÅ«smas kontroles pakalpojums. Daudziem tÄ«kla pakalpojumiem ir nepiecieÅ”ama uzraudzÄ«ba datu plÅ«smas stÄvokļi. PiemÄram, izmantojot NAT, plÅ«smas kontrolei ir jÄnodroÅ”ina, lai katram IP:mÄrÄ·a porta pÄrim bÅ«tu unikÄls izejoÅ”ais ports. BalsotÄja gadÄ«jumÄ NLB SÄkot no TÄ«kla slodzes balansÄtÄjs, datu plÅ«sma vienmÄr ir jÄnovirza uz vienu un to paÅ”u mÄrÄ·a virtuÄlo maŔīnu. DroŔības grupas ir statusa ugunsmÅ«ris. Tas uzrauga ienÄkoÅ”o trafiku un netieÅ”i atver portus izejoÅ”o pakeÅ”u plÅ«smai.
AWS mÄkonÄ« pÄrraides latentuma prasÄ«bas ir ÄrkÄrtÄ«gi augstas. TÄpÄc HiperPlane kas ir ļoti svarÄ«gi visa tÄ«kla veiktspÄjai.
Hyperplane ir veidota uz EC2 virtuÄlajÄm maŔīnÄm. Å eit nav nekÄdas maÄ£ijas, ir tikai viltÄ«ba. ViltÄ«ba ir tÄda, ka Ŕīs ir virtuÄlÄs maŔīnas ar lielu RAM. OperÄcijas ir transakcijas un tiek veiktas tikai atmiÅÄ. Tas ļauj sasniegt tikai desmitiem mikrosekunžu aizkavi. Darbs ar disku samazinÄtu visu produktivitÄti.
Hyperplane ir daudzu Å”Ädu EC2 iekÄrtu izplatÄ«ta sistÄma. Katras virtuÄlÄs maŔīnas joslas platums ir 5 GB/s. VisÄ reÄ£ionÄlajÄ tÄ«klÄ tas nodroÅ”ina neticami terabitus joslas platumu un ļauj apstrÄdÄt miljoniem savienojumu sekundÄ.
HyperPlane darbojas tikai ar straumÄm. VPC pakeÅ”u iekapsulÄÅ”ana tam ir pilnÄ«gi caurspÄ«dÄ«ga. IespÄjamÄ ievainojamÄ«ba Å”ajÄ iekÅ”ÄjÄ pakalpojumÄ joprojÄm neļautu pÄrtraukt VPC izolÄciju. TÄlÄk norÄdÄ«tie lÄ«meÅi ir atbildÄ«gi par droŔību.
TrokÅ”Åains kaimiÅÅ”
JoprojÄm ir problÄma trokÅ”Åains kaimiÅÅ” SÄkot no trokÅ”Åains kaimiÅÅ”. PieÅemsim, ka mums ir 8 mezgli. Å ie mezgli apstrÄdÄ visu mÄkoÅa lietotÄju plÅ«smas. Å Ä·iet, ka viss ir kÄrtÄ«bÄ, un slodzei jÄbÅ«t vienmÄrÄ«gi sadalÄ«tai visos mezglos. Mezgli ir ļoti spÄcÄ«gi, un tos ir grÅ«ti pÄrslogot.
Bet mÄs veidojam savu arhitektÅ«ru, pamatojoties uz pat maz ticamiem scenÄrijiem.
Zema varbÅ«tÄ«ba nenozÄ«mÄ neiespÄjamu.
MÄs varam iedomÄties situÄciju, kurÄ viens vai vairÄki lietotÄji radÄ«tu pÄrÄk lielu slodzi. Visi HyperPlane mezgli ir iesaistÄ«ti Ŕīs slodzes apstrÄdÄ, un citi lietotÄji var piedzÄ«vot veiktspÄjas traucÄjumus. Tas izjauc mÄkoÅa koncepciju, kurÄ Ä«rniekiem nav iespÄju vienam otru ietekmÄt.
KÄ atrisinÄt trokÅ”ÅainÄ kaimiÅa problÄmu? PirmÄ lieta, kas nÄk prÄtÄ, ir ŔķelÅ”anÄs. MÅ«su 8 mezgli ir loÄ£iski sadalÄ«ti 4 lauskas pa 2 mezgliem katrÄ. Tagad trokÅ”Åains kaimiÅÅ” traucÄs tikai ceturtdaļai no visiem lietotÄjiem, bet ļoti traucÄs.
DarÄ«sim lietas savÄdÄk. Katram lietotÄjam pieŔķirsim tikai 3 mezglus.
Triks ir nejauÅ”i pieŔķirt mezglus dažÄdiem lietotÄjiem. ZemÄk redzamajÄ attÄlÄ zilais lietotÄjs krusto mezglus ar vienu no pÄrÄjiem diviem lietotÄjiem - zaļo un oranžo.
Ar 8 mezgliem un 3 lietotÄjiem varbÅ«tÄ«ba, ka trokÅ”Åains kaimiÅÅ” krustosies ar kÄdu no lietotÄjiem, ir 54%. Ar Å”Ädu varbÅ«tÄ«bu zilais lietotÄjs ietekmÄs citus Ä«rniekus. TajÄ paÅ”Ä laikÄ tikai daļa no tÄs slodzes. MÅ«su piemÄrÄ Å”Ä« ietekme vismaz kaut kÄdÄ veidÄ bÅ«s pamanÄma ne visiem, bet tikai treÅ”daļai no visiem lietotÄjiem. Tas jau ir labs rezultÄts.
LietotÄju skaits, kuri krustosies
Varbūtība procentos
0
18%
1
54%
2
26%
3
2%
PietuvinÄsim situÄciju realitÄtei - Åemsim 100 mezglus un 5 lietotÄjus uz 5 mezgliem. Å ajÄ gadÄ«jumÄ neviens no mezgliem nekrustos ar 77% varbÅ«tÄ«bu.
LietotÄju skaits, kuri krustosies
Varbūtība procentos
0
77%
1
21%
2
1,8%
3
0,06%
4
0,0006%
5
0,00000013%
ReÄlÄ situÄcijÄ ar milzÄ«gu HyperPlane mezglu un lietotÄju skaitu trokÅ”ÅainÄ kaimiÅa iespÄjamÄ ietekme uz citiem lietotÄjiem ir minimÄla. Å o metodi sauc sajaucot Ŕķembas SÄkot no shuffle sharding. Tas samazina mezgla atteices negatÄ«vo ietekmi.
Daudzi pakalpojumi ir veidoti, pamatojoties uz HyperPlane: Network Load Balancer, NAT Gateway, Amazon EFS, AWS PrivateLink, AWS Transit Gateway.
TÄ«kla mÄrogs
Tagad parunÄsim par paÅ”a tÄ«kla mÄrogu. 2019. gada oktobrÄ« AWS piedÄvÄ savus pakalpojumus 22 reÄ£ioni, un ir plÄnotas vÄl 9.
KatrÄ reÄ£ionÄ ir vairÄkas pieejamÄ«bas zonas. VisÄ pasaulÄ ir 69 no tiem.
Katrs AZ sastÄv no datu apstrÄdes centriem. KopÄ to nav vairÄk par 8.
Datu centrÄ atrodas milzÄ«gs skaits serveru, dažos lÄ«dz pat 300 000.
Tagad aprÄÄ·inÄsim to visu, pareizinÄsim un iegÅ«stam iespaidÄ«gu skaitli, kas atspoguļo Amazones mÄkoÅu mÄrogs.
Starp pieejamÄ«bas zonÄm un datu centru ir daudz optisko saiÅ”u. VienÄ no mÅ«su lielÄkajiem reÄ£ioniem ir izveidoti 388 kanÄli tikai AZ saziÅai savÄ starpÄ un sakaru centriem ar citiem reÄ£ioniem (TranzÄ«ta centriem). KopumÄ tas rada traku 5000 Tbit.
Backbone AWS ir Ä«paÅ”i izstrÄdÄts un optimizÄts mÄkonim. MÄs to veidojam kanÄlos 100 GB/s. MÄs tos pilnÄ«bÄ kontrolÄjam, izÅemot Ķīnas reÄ£ionus. Satiksme netiek dalÄ«ta ar citu uzÅÄmumu slodzÄm.
Protams, mÄs neesam vienÄ«gais mÄkoÅa pakalpojumu sniedzÄjs ar privÄtu mugurkaula tÄ«klu. Arvien vairÄk lielo uzÅÄmumu iet Å”o ceļu. To apstiprina neatkarÄ«gi pÄtnieki, piemÄram, no TeleÄ£eogrÄfija.
GrafikÄ redzams, ka pieaug satura nodroÅ”inÄtÄju un mÄkoÅpakalpojumu sniedzÄju Ä«patsvars. Å Ä« iemesla dÄļ mugurkaula pakalpojumu sniedzÄju interneta trafika daļa pastÄvÄ«gi samazinÄs.
Es paskaidroÅ”u, kÄpÄc tas notiek. IepriekÅ” lielÄkÄ daļa tÄ«mekļa pakalpojumu bija pieejami un patÄrÄti tieÅ”i no interneta. MÅ«sdienÄs arvien vairÄk serveru atrodas mÄkonÄ« un ir pieejami, izmantojot CDN SÄkot no Satura izplatÄ«Å”anas tÄ«kls. Lai piekļūtu resursam, lietotÄjs caur internetu dodas tikai uz tuvÄko CDN PoP - KlÄtbÅ«tnes punkts. VisbiežÄk tas ir kaut kur tuvumÄ. PÄc tam tas atstÄj publisko internetu un, piemÄram, lido caur privÄtu mugurkaulu pÄri Atlantijas okeÄnam un nonÄk tieÅ”i resursÄ.
Interesanti, kÄ internets mainÄ«sies pÄc 10 gadiem, ja Ŕī tendence turpinÄsies?
Fiziskie kanÄli
ZinÄtnieki vÄl nav izdomÄjuÅ”i, kÄ palielinÄt gaismas Ätrumu VisumÄ, taÄu viÅi ir guvuÅ”i lielu progresu tÄ pÄrraidÄ«Å”anas metodÄs caur optisko Ŕķiedru. PaÅ”laik mÄs izmantojam 6912 Ŕķiedru kabeļus. Tas palÄ«dz ievÄrojami optimizÄt to uzstÄdÄ«Å”anas izmaksas.
Dažos reÄ£ionos mums ir jÄizmanto Ä«paÅ”i kabeļi. PiemÄram, Sidnejas reÄ£ionÄ pret termÄ«tiem izmantojam kabeļus ar Ä«paÅ”u pÄrklÄjumu.
Neviens nav pasargÄts no nepatikÅ”anÄm, un dažreiz mÅ«su kanÄli tiek sabojÄti. LabajÄ pusÄ esoÅ”ajÄ fotoattÄlÄ redzami optiskie kabeļi vienÄ no Amerikas reÄ£ioniem, kurus saplÄsa bÅ«vstrÄdnieki. NegadÄ«juma rezultÄtÄ tika pazaudÄtas tikai 13 datu paketes, kas ir pÄrsteidzoÅ”i. VÄlreiz - tikai 13! SistÄma burtiski uzreiz pÄrgÄja uz rezerves kanÄliem - skala darbojas.
MÄs skrÄjÄm cauri dažiem Amazon mÄkoÅpakalpojumiem un tehnoloÄ£ijÄm. Es ceru, ka jums ir vismaz kÄds priekÅ”stats par mÅ«su inženieriem risinÄmo uzdevumu apjomu. Man personÄ«gi tas Ŕķiet ļoti aizraujoÅ”i.
Å Ä« ir pÄdÄjÄ daļa no Vasilija Pantjukina triloÄ£ijas par AWS ierÄ«ci. IN pirmais daļÄs ir aprakstÄ«ta servera optimizÄcija un datu bÄzes mÄrogoÅ”ana, un in otrais ā bezservera funkcijas un Firecracker.
uz HighLoad++ novembrÄ« Vasilijs Pantjukhins dalÄ«sies ar jaunÄm Amazon ierÄ«ces detaļÄm. ViÅÅ” pateiks par kļūmju cÄloÅiem un Amazon izplatÄ«to sistÄmu dizainu. 24. oktobris vÄl iespÄjams rezervÄt biļete par labu cenu un maksÄ vÄlÄk. GaidÄm tevi HighLoad++, nÄc un papļÄpÄsim!