Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Mae cymylau fel blwch hud - rydych chi'n gofyn beth sydd ei angen arnoch chi, ac mae'r adnoddau'n ymddangos allan o unman. Peiriannau rhithwir, cronfeydd data, rhwydwaith - mae hyn i gyd yn perthyn i chi yn unig. Mae yna denantiaid cwmwl eraill, ond yn eich Bydysawd chi yw'r unig reolwr. Rydych chi'n siŵr y byddwch chi bob amser yn derbyn yr adnoddau angenrheidiol, does dim rhaid i chi gymryd unrhyw un i ystyriaeth a chi sy'n penderfynu'n annibynnol sut le fydd y rhwydwaith. Sut mae’r hud hwn yn gweithio sy’n gwneud i’r cwmwl ddyrannu adnoddau’n elastig ac ynysu tenantiaid oddi wrth ei gilydd yn llwyr?

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Mae cwmwl AWS yn system mega-super-cymhleth sydd wedi bod yn esblygu'n esblygiadol ers 2006. Digwyddodd rhan o'r datblygiad hwn Vasily Pantyukhin - Pensaer Gwasanaethau Gwe Amazon. Fel pensaer, mae'n cael golwg fewnol nid yn unig ar y canlyniad terfynol, ond hefyd ar yr heriau y mae AWS yn eu goresgyn. Po fwyaf y ddealltwriaeth o sut mae'r system yn gweithio, y mwyaf yw'r ymddiriedaeth. Felly, bydd Vasily yn rhannu cyfrinachau gwasanaethau cwmwl AWS. Isod mae dyluniad gweinyddwyr AWS corfforol, scalability cronfa ddata elastig, cronfa ddata Amazon arferol a dulliau ar gyfer cynyddu perfformiad peiriannau rhithwir tra'n lleihau eu pris ar yr un pryd. Bydd gwybodaeth am ddulliau pensaernïol Amazon yn eich helpu i ddefnyddio gwasanaethau AWS yn fwy effeithiol a gall roi syniadau newydd i chi ar gyfer adeiladu eich atebion eich hun.

Am y siaradwr: Vasily Pantyukhin (Hen) wedi dechrau fel gweinyddwr Unix gyda chwmnïau .ru, wedi gweithio ar galedwedd mawr Sun Microsystem am 6 blynedd, ac wedi pregethu byd data-ganolog yn EMC am 11 mlynedd. Datblygodd yn naturiol yn gymylau preifat, ac yn 2017 symudodd i rai cyhoeddus. Nawr mae'n darparu cyngor technegol i helpu i fyw a datblygu yng nghwmwl AWS.

Ymwadiad: barn bersonol Vasily yw popeth isod ac efallai na fydd yn cyd-fynd â sefyllfa Amazon Web Services. Recordiad fideo Mae'r adroddiad y mae'r erthygl yn seiliedig arno ar gael ar ein sianel YouTube.

Pam ydw i'n siarad am y ddyfais Amazon?

Cafodd fy nghar cyntaf drosglwyddiad â llaw. Roedd yn wych oherwydd y teimlad fy mod yn gallu gyrru’r car a chael rheolaeth lwyr drosto. Hoffais hefyd fy mod o leiaf yn deall yn fras egwyddor ei weithrediad. Yn naturiol, dychmygais fod strwythur y bocs yn eitha cyntefig - rhywbeth fel gerbocs ar feic.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Roedd popeth yn wych, heblaw am un peth - yn sownd mewn tagfeydd traffig. Mae'n ymddangos eich bod chi'n eistedd ac yn gwneud dim byd, ond rydych chi'n newid gêr yn gyson, yn pwyso'r cydiwr, y nwy, y brêc - mae'n eich gwneud chi'n flinedig. Cafodd y broblem tagfeydd traffig ei datrys yn rhannol pan gafodd y teulu gar awtomatig. Wrth yrru, roedd gen i amser i feddwl am rywbeth a gwrando ar lyfr sain.

Ymddangosodd dirgelwch arall yn fy mywyd, oherwydd fe wnes i roi'r gorau i ddeall yn llwyr sut mae fy nghar yn gweithio. Mae car modern yn ddyfais gymhleth. Mae'r car yn addasu ar yr un pryd i ddwsinau o baramedrau gwahanol: gwasgu'r nwy, brêc, arddull gyrru, ansawdd y ffordd. Dydw i ddim yn deall sut mae'n gweithio bellach.

Pan ddechreuais i weithio ar gwmwl Amazon, roedd hefyd yn ddirgelwch i mi. Dim ond y dirgelwch hwn sy'n fwy o faint, oherwydd dim ond un gyrrwr sydd yn y car, ac yn AWS mae miliynau ohonyn nhw. Mae pob defnyddiwr ar yr un pryd yn llywio, pwyso'r nwy a'r brêc. Mae'n anhygoel eu bod nhw'n mynd lle maen nhw eisiau - mae'n wyrth i mi! Mae'r system yn addasu, graddfeydd ac yn addasu'n elastig yn awtomatig i bob defnyddiwr fel ei bod yn ymddangos iddo ei fod ar ei ben ei hun yn y Bydysawd hwn.

Diflanodd yr hud ychydig pan ddes i'n ddiweddarach i weithio fel pensaer yn Amazon. Gwelais pa broblemau sy’n ein hwynebu, sut rydym yn eu datrys, a sut rydym yn datblygu gwasanaethau. Gyda dealltwriaeth gynyddol o sut mae'r system yn gweithio, mae mwy o hyder yn y gwasanaeth yn ymddangos. Felly rydw i eisiau rhannu llun o'r hyn sydd o dan gwfl cwmwl AWS.

Am beth y byddwn yn siarad

Dewisais ymagwedd arallgyfeirio - dewisais 4 gwasanaeth diddorol sy'n werth siarad amdanynt.

Optimeiddio gweinydd. Cymylau byrhoedlog gydag ymgorfforiad corfforol: canolfannau data ffisegol lle mae gweinyddwyr ffisegol sy'n hymian, yn cynhesu ac yn blincio â goleuadau.

Swyddogaethau di-weinydd Mae'n debyg mai (Lambda) yw'r gwasanaeth mwyaf graddadwy yn y cwmwl.

Graddio cronfa ddata. Dywedaf wrthych sut yr ydym yn adeiladu ein cronfeydd data graddadwy ein hunain.

Graddio rhwydwaith. Y rhan olaf y byddaf yn agor dyfais ein rhwydwaith. Mae hyn yn beth gwych - mae pob defnyddiwr cwmwl yn credu ei fod ar ei ben ei hun yn y cwmwl ac nid yw'n gweld tenantiaid eraill o gwbl.

Nodyn. Bydd yr erthygl hon yn trafod optimeiddio gweinyddwyr a graddio cronfeydd data. Byddwn yn ystyried graddio rhwydwaith yn yr erthygl nesaf. Ble mae'r swyddogaethau di-weinydd? Cyhoeddwyd trawsgrifiad ar wahân amdanynt “Bach, ond smart. Dadbocsio Firecracker micro-rithwir" Mae'n sôn am nifer o wahanol ddulliau graddio, ac yn trafod yn fanwl yr ateb Firecracker - symbiosis o rinweddau gorau peiriant rhithwir a chynwysyddion.

Gweinyddion

Mae'r cwmwl yn fyrhoedlog. Ond mae gan yr effemerality hwn ymgorfforiad corfforol o hyd - gweinyddwyr. I ddechrau, roedd eu pensaernïaeth yn glasurol. Chipset x86 safonol, cardiau rhwydwaith, Linux, hypervisor Xen y rhedwyd peiriannau rhithwir arno.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Yn 2012, fe wnaeth y bensaernïaeth hon ymdopi â'i thasgau yn eithaf da. Mae Xen yn oruchwylydd gwych, ond mae ganddo un anfantais fawr. Mae ganddo ddigon gorbenion uchel ar gyfer efelychu dyfais. Wrth i gardiau rhwydwaith newydd, cyflymach neu yriannau SSD ddod ar gael, mae'r gorbenion hwn yn mynd yn rhy uchel. Sut i ddelio â'r broblem hon? Fe benderfynon ni weithio ar ddwy ffrynt ar unwaith - gwneud y gorau o galedwedd a hypervisor. Mae'r dasg yn ddifrifol iawn.

Optimeiddio caledwedd a hypervisor

Ni fydd gwneud popeth ar unwaith a'i wneud yn dda yn gweithio. Roedd yr hyn oedd yn “dda” hefyd yn aneglur i ddechrau.

Fe benderfynon ni gymryd agwedd esblygiadol - rydyn ni'n newid un elfen bwysig o'r bensaernïaeth ac yn ei thaflu i gynhyrchu.

Rydym yn camu ar bob cribin, yn gwrando ar gwynion ac awgrymiadau. Yna rydym yn newid cydran arall. Felly, mewn cynyddrannau bach, rydym yn newid y bensaernïaeth gyfan yn radical yn seiliedig ar adborth gan ddefnyddwyr a chefnogaeth.

Dechreuodd y trawsnewid yn 2013 gyda'r peth mwyaf cymhleth - y rhwydwaith. YN С3 achosion, ychwanegwyd cerdyn Cyflymydd Rhwydwaith arbennig at y cerdyn rhwydwaith safonol. Fe'i cysylltwyd yn llythrennol â chebl loopback byr ar y panel blaen. Nid yw'n bert, ond nid yw'n weladwy yn y cwmwl. Ond roedd rhyngweithio uniongyrchol â chaledwedd wedi gwella'n sylfaenol jitter a thrwybwn rhwydwaith.

Nesaf fe benderfynon ni wella mynediad i storio data bloc EBS - Elastic Block Storage. Mae'n gyfuniad o rwydwaith a storio. Yr anhawster yw, er bod cardiau Cyflymydd Rhwydwaith yn bodoli ar y farchnad, nid oedd opsiwn i brynu caledwedd Cyflymydd Storio yn unig. Felly fe wnaethon ni droi at fusnes cychwyn Labordai Annapurna, a ddatblygodd sglodion ASIC arbennig i ni. Roeddent yn caniatáu i gyfeintiau EBS o bell gael eu gosod fel dyfeisiau NVMe.

Mewn achosion C4 rydym wedi datrys dwy broblem. Y cyntaf yw ein bod wedi gweithredu sylfaen ar gyfer dyfodol technoleg NVMe addawol, ond newydd bryd hynny. Yn ail, dadlwythwyd y prosesydd canolog yn sylweddol trwy drosglwyddo prosesu ceisiadau i EBS i gerdyn newydd. Trodd allan yn dda, felly nawr mae Annapurna Labs yn rhan o Amazon.

Erbyn Tachwedd 2017, sylweddolom ei bod yn bryd newid y hypervisor ei hun.

Datblygwyd yr hypervisor newydd yn seiliedig ar fodiwlau cnewyllyn KVM wedi'u haddasu.

Roedd yn ei gwneud hi'n bosibl lleihau'n sylfaenol orbenion efelychu dyfeisiau a gweithio'n uniongyrchol gydag ASICs newydd. Enghreifftiau С5 oedd y peiriannau rhithwir cyntaf gyda hypervisor newydd yn rhedeg o dan y cwfl. Fe wnaethon ni ei enwi Nitro.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddataEsblygiad achosion ar y llinell amser.

Mae pob math newydd o beiriannau rhithwir sydd wedi ymddangos ers mis Tachwedd 2017 yn rhedeg ar y hypervisor hwn. Nid oes gan achosion Metel Moel hypervisor, ond fe'u gelwir hefyd yn Nitro, gan eu bod yn defnyddio cardiau Nitro arbenigol.

Dros y ddwy flynedd nesaf, roedd nifer y mathau o achosion Nitro yn fwy na dau ddwsin: A1, C5, M5, T3 ac eraill.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata
Mathau o achosion.

Sut mae peiriannau Nitro modern yn gweithio

Mae ganddynt dair prif gydran: y hypervisor Nitro (a drafodir uchod), y sglodyn diogelwch a'r cardiau Nitro.

Sglodion diogelwch hintegreiddio'n uniongyrchol i'r famfwrdd. Mae'n rheoli llawer o swyddogaethau pwysig, megis rheoli llwytho'r OS gwesteiwr.

Cardiau nitro — Mae pedwar math o honynt. Mae pob un ohonynt yn cael eu datblygu gan Annapurna Labs ac maent yn seiliedig ar ASICs cyffredin. Mae rhai o'u firmware hefyd yn gyffredin.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata
Pedwar math o gardiau Nitro.

Mae un o'r cardiau wedi'i gynllunio i weithio gyda hi rhwydwaithVPC. Dyma beth sydd i'w weld mewn peiriannau rhithwir fel cerdyn rhwydwaith ENA - Adapter Rhwydwaith Elastig. Mae hefyd yn crynhoi traffig wrth ei drosglwyddo trwy rwydwaith ffisegol (byddwn yn siarad am hyn yn ail ran yr erthygl), yn rheoli wal dân y Grwpiau Diogelwch, ac yn gyfrifol am lwybro a phethau rhwydwaith eraill.

Mae cardiau dethol yn gweithio gyda storfa bloc EBS a disgiau sydd wedi'u cynnwys yn y gweinydd. Maent yn ymddangos i'r peiriant rhithwir gwestai fel Addaswyr NVMe. Maent hefyd yn gyfrifol am amgryptio data a monitro disgiau.

Mae'r system o gardiau Nitro, hypervisor a sglodyn diogelwch wedi'i integreiddio i rwydwaith SDN neu Rhwydwaith Diffiniedig Meddalwedd. Yn gyfrifol am reoli'r rhwydwaith hwn (Control Plane) cerdyn rheolydd.

Wrth gwrs, rydym yn parhau i ddatblygu ASICs newydd. Er enghraifft, ar ddiwedd 2018 fe wnaethant ryddhau'r sglodyn Inferentia, sy'n eich galluogi i weithio'n fwy effeithlon gyda thasgau dysgu peiriant.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata
Sglodion Prosesydd Dysgu Peiriant Inferentia.

Cronfa Ddata Graddadwy

Mae gan gronfa ddata draddodiadol strwythur haenog. I symleiddio'n fawr, mae'r lefelau canlynol yn cael eu gwahaniaethu.

  • SQL — mae anfonwyr cleient a cheisiadau yn gweithio arno.
  • Darpariaethau trafodion - mae popeth yn glir yma, ACID a hynny i gyd.
  • caching, a ddarperir gan byllau clustogi.
  • Logio — yn darparu gwaith gyda logiau ail-wneud. Yn MySQL fe'u gelwir yn Logiau Bin, yn PosgreSQL - Logiau Ysgrifennu Ymlaen (WAL).
  • Storio - recordiad uniongyrchol i ddisg.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata
Strwythur cronfa ddata haenog.

Mae yna wahanol ffyrdd o raddio cronfeydd data: darnio, pensaernïaeth Rhannu Dim, disgiau a rennir.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Fodd bynnag, mae'r holl ddulliau hyn yn cynnal yr un strwythur cronfa ddata monolithig. Mae hyn yn cyfyngu'n sylweddol ar raddio. I ddatrys y broblem hon, rydym wedi datblygu ein cronfa ddata ein hunain - Amazon Aurora. Mae'n gydnaws â MySQL a PostgreSQL.

Amazon Aurora

Y prif syniad pensaernïol yw gwahanu'r lefelau storio a logio o'r brif gronfa ddata.

Wrth edrych ymlaen, byddaf yn dweud ein bod hefyd wedi gwneud y lefel caching yn annibynnol. Mae'r bensaernïaeth yn peidio â bod yn fonolith, ac rydym yn ennill graddau ychwanegol o ryddid wrth raddio blociau unigol.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata
Mae'r lefelau cofnodi a storio ar wahân i'r gronfa ddata.

Mae DBMS traddodiadol yn ysgrifennu data i system storio ar ffurf blociau. Yn Amazon Aurora, fe wnaethon ni greu storfa glyfar sy'n gallu siarad iaith ail-wneud logiau. Y tu mewn, mae'r storfa'n troi logiau'n flociau data, yn monitro eu cywirdeb ac yn gwneud copïau wrth gefn yn awtomatig.

Mae'r dull hwn yn caniatáu ichi weithredu pethau mor ddiddorol â clonio. Mae'n gweithio'n sylfaenol yn gyflymach ac yn fwy darbodus oherwydd nad oes angen creu copi cyflawn o'r holl ddata.

Mae'r haen storio yn cael ei gweithredu fel system ddosbarthedig. Mae'n cynnwys nifer fawr iawn o weinyddion corfforol. Mae pob log ail-wneud yn cael ei brosesu a'i gadw ar yr un pryd chwe chwlwm. Mae hyn yn sicrhau diogelu data a chydbwyso llwyth.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Gellir graddio darllen trwy ddefnyddio copïau priodol. Mae storfa ddosbarthedig yn dileu'r angen am gydamseru rhwng y brif enghraifft gronfa ddata, yr ydym yn ysgrifennu data drwyddi, a'r atgynyrchiadau sy'n weddill. Mae'r data diweddaraf yn sicr o fod ar gael i bob atgynhyrchiad.

Yr unig broblem yw cadw hen ddata ar gopïau darllen. Ond mae'r broblem hon yn cael ei datrys trosglwyddo'r holl logiau ail-wneud i atgynyrchiadau dros y rhwydwaith mewnol. Os yw'r log yn y storfa, caiff ei farcio'n anghywir a'i drosysgrifo. Os nad yw yn y storfa, caiff ei daflu.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Fe wnaethon ni roi trefn ar y storfa.

Sut i raddio haenau DBMS

Yma, mae graddio llorweddol yn llawer anoddach. Felly gadewch i ni fynd i lawr y llwybr wedi'i guro graddio fertigol clasurol.

Gadewch i ni dybio bod gennym ni raglen sy'n cyfathrebu â'r DBMS trwy brif nod.

Wrth raddio'n fertigol, rydyn ni'n dyrannu nod newydd a fydd â mwy o broseswyr a chof.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Nesaf, rydyn ni'n newid y cais o'r hen brif nod i'r un newydd. Mae problemau'n codi.

  • Bydd hyn yn gofyn am amser segur sylweddol o ran ceisiadau.
  • Bydd gan y prif nod newydd storfa oer. Dim ond ar ôl i'r storfa gynhesu y bydd perfformiad cronfa ddata yn uchaf.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Sut i wella'r sefyllfa? Sefydlu dirprwy rhwng y cais a'r prif nod.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Beth fydd hyn yn ei roi i ni? Nawr nid oes angen ailgyfeirio pob cais â llaw i'r nod newydd. Gellir gwneud y switsh o dan ddirprwy ac mae'n gyflymach yn y bôn.

Mae’n ymddangos bod y broblem wedi’i datrys. Ond na, rydym yn dal i ddioddef o'r angen i gynhesu'r storfa. Yn ogystal, mae problem newydd wedi ymddangos - nawr mae'r dirprwy yn bwynt methiant posibl.

Datrysiad terfynol gydag Amazon Aurora heb weinydd

Sut wnaethon ni ddatrys y problemau hyn?

Gadawodd dirprwy. Nid yw hwn yn enghraifft ar wahân, ond yn fflyd ddosbarthedig gyfan o ddirprwyon y mae cymwysiadau'n cysylltu â'r gronfa ddata drwyddynt. Mewn achos o fethiant, gellir disodli unrhyw un o'r nodau bron yn syth.

Ychwanegwyd cronfa o nodau cynnes o wahanol feintiau. Felly, os oes angen dyrannu nod newydd o faint mwy neu lai, mae ar gael ar unwaith. Nid oes angen aros iddo lwytho.

Rheolir y broses raddio gyfan gan system fonitro arbennig. Mae monitro yn monitro cyflwr y prif nod presennol yn gyson. Os yw'n canfod, er enghraifft, bod llwyth y prosesydd wedi cyrraedd gwerth critigol, mae'n hysbysu'r gronfa o achosion cynnes am yr angen i ddyrannu nod newydd.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata
Dirprwyon wedi'u dosbarthu, achosion cynnes a monitro.

Mae nod gyda'r pŵer gofynnol ar gael. Mae pyllau clustogi yn cael eu copïo iddo, ac mae'r system yn dechrau aros am eiliad ddiogel i newid.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Fel arfer daw'r eiliad i newid yn eithaf cyflym. Yna mae cyfathrebu rhwng y dirprwy a'r hen brif nod yn cael ei atal, mae pob sesiwn yn cael ei newid i'r nod newydd.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Ailddechrau gweithio gyda'r gronfa ddata.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Mae'r graff yn dangos bod yr ataliad yn wir yn fyr iawn. Mae'r graff glas yn dangos y llwyth, ac mae'r camau coch yn dangos yr eiliadau graddio. Mae gostyngiadau tymor byr yn y graff glas yn union yr oedi byr hwnnw.

Sut mae AWS yn coginio ei wasanaethau elastig. Graddio gweinyddwyr a chronfa ddata

Gyda llaw, mae Amazon Aurora yn caniatáu ichi arbed arian yn llwyr a diffodd y gronfa ddata pan nad yw'n cael ei ddefnyddio, er enghraifft, ar benwythnosau. Ar ôl atal y llwyth, mae'r DB yn lleihau ei bŵer yn raddol ac yn diffodd am beth amser. Pan fydd y llwyth yn dychwelyd, bydd yn codi'n esmwyth eto.

Yn rhan nesaf y stori am ddyfais Amazon, byddwn yn siarad am raddio rhwydwaith. Tanysgrifio post ac aros diwnio fel nad ydych yn colli'r erthygl.

Ar Llwyth Uchel++ Bydd Vasily Pantyukhin yn rhoi adroddiad “Houston, mae gennym broblem. Dyluniad systemau ar gyfer methiant, patrymau datblygu ar gyfer gwasanaethau cwmwl mewnol Amazon" Pa batrymau dylunio ar gyfer systemau dosbarthedig sy'n cael eu defnyddio gan ddatblygwyr Amazon, beth yw'r rhesymau dros fethiannau gwasanaeth, beth yw pensaernïaeth sy'n seiliedig ar Cell, Gwaith Cyson, Shuffle Sharding - bydd yn ddiddorol. Llai na mis tan y gynhadledd - archebwch eich tocynnau. Hydref 24 cynnydd pris terfynol.

Ffynhonnell: hab.com

Ychwanegu sylw