+− THE DAILY DIFFdev & AI news
SHIP IT

Skýjatölfræði útskýrð: 11 arkitektúr hugtök sem þú verður að kunna (4K meistaradeild).

Flestir hugbúnaðarverkfræðingar reyna að læra skýjarkitektúr með því að leggja á minnið hundruð skammstafana vöru frá söluaðilum eins og AWS, GCP og Azure.

Flestir hugbúnaðarverkfræðingar reyna að læra skýjarkitektúr með því að leggja á minnið hundruð skammstafana vöru frá söluaðilum eins og AWS, GCP og Azure. En raunveruleg skýjaverkfræði er byggð á ellefu grundvallar byggingarfræðilegum frumgerðum. Í þessari 4K endurgerð meistaradeildar brýtur Niko niður heildar fyrirtækjablámann: frá lóðréttri versus láréttri skölun og Layer 7 álagsdreifingu til dynamic sjálfvirkrar skölunar, serverless microVM framkvæmdar, ósamstilltrar atburðastýrðrar aftengingar, gámastýringar, fjögurra stoða geymsluflokkunar, mikilvæga munarins á mikilli tiltækni og 11 níum endingar, yfirlýsingarbundinnar innviða sem kóða, og Virtual Private Cloud netkerfis. Náðu tökum á þessum ellefu hugtökum, og þú getur hannað hvaða bakenda sem er í framleiðslu. Dómur: SHIP IT.

Lestu skriflegu útgáfuna (enska) ↗

Það sem þetta myndband fjallar um

  • - Arkitektúrveggurinn og aðal teikningin
  • - 01. Lóðrétt vs. lárétt skölun
  • - 02. Arkitektúr álagsdreifingar (L4 vs. L7 og heilsufarsskoðanir)
  • - 03. Sjálfvirk skölun og teygjanleiki
  • - 04. Þjónustulaust (FaaS og Firecracker MicroVMs)

Þýtt afrit

Þýtt úr upprunalegri enskri frásögn. Tiltækt hljóð og textar eru stjórnaðir af YouTube.

- Arkitektúrveggurinn og aðal teikningin

0:00 Sérhver hugbúnaðarverkfræðingur stendur að lokum frammi fyrir skýjarkitektúrveggnum. Þú smíðar forrit á fartölvunni þinni, sendir það í framleiðslu, og um leið og raunverulegir notendur koma, hrynja netþjónar, gagnagrunnstengingar verða of margar og AWS reikningurinn þinn lítur út eins og símanúmer. Flestir þróunaraðilar reyna að leysa skýjaverkfræði með því að leggja á minnið þrjú hundruð mismunandi AWS vöruskammstafanir. En raunveruleg skýjatölvun snýst ekki um að leggja á minnið vörulista söluaðila: hún er byggð á ellefu grundvallar byggingarfræðilegum frumgerðum.

0:34 Í þessari meistaradeild munum við fara yfir allan fyrirtækjablámann: frá skölun og álagsdreifingu til serverlausra, atburðastýrðra aftenginga, geymsluflokkana og skýjanetkerfis. Náðu tökum á þessum ellefu hugtökum, og þú getur hannað hvaða bakenda sem er á AWS, GCP, eða Azure. Þetta er The Daily Diff, undir húddinu.

- 01. Lóðrétt vs. lárétt skölun

0:57 Hugtak númer eitt: Skölun. Þegar forritið þitt upplifir aukinn umferð, hefurðu tvær grundvallarlega mismunandi leiðir til að meðhöndla álagið: lóðrétt skölun, eða lárétt skölun. Lóðrétt skölun, eða að stækka upp, þýðir að taka núverandi vél þína og bæta við fleiri auðlindum: uppfæra úr fjórum CPU kjörnum í þrjátíu og tvo, eða skipta út þrjátíu og tveimur gígabætum af RAM fyrir hundrað og tuttugu og átta. Lóðrétt skölun krefst engar byggingarfræðilegar breytingar: kóðinn þinn

1:28 og gagnagrunnurinn haldast nákvæmlega eins. En hún nær í brutal vélbúnaðarþak. Engin ein vél í heiminum hefur tíu þúsund CPU kjarna, og efstu tilvik bera gríðarlegt verðálag. Lárétt skölun, eða að stækka út, þýðir að halda netþjónum þínum litlum og vöruverðum, en keyra mörg tilvik samhliða á bak við router. Ef eitt tilvik hrynur, gleypa hinir hnútarnir umferðina án neinnar niðurtíma. Gullna reglan um lárétta skölun er

2:01 ríkisleysi: forritþjónar þínir geta ekki geymt notandafundir, upphlaðnar skrár, eða stöðu á staðbundnum diskum sínum. Staða verður að vera í ytri gagnagrunni eða skyndiminni, sem leyfir hvaða hnút sem er að afgreiða hvaða notandabeiðni sem er.

- 02. Arkitektúr álagsdreifingar (L4 vs. L7 og heilsufarsskoðanir)

2:17 Hugtak númer tvö: Álagsdreifing. Lárétt skölun hljómar vel á pappír, en hún kynnir strax vandamál: þegar tíu þúsund notendur ná á lénið þitt, hvaða sérstakur netþjónn fær umferð þeirra? Álagsdreifing virkar sem öfugur proxy sem situr á milli almenningsnetsins og einkabakendaþyrpingar þinnar. Hún tekur við inngangandi TCP eða HTTP tengingum og dreifir beiðnum yfir heilsusamlegu tilvikin þín.

2:47 Álagsdreifingar starfa á tveimur aðal netlögum. Layer 4 net álagsdreifingar starfa á flutningslaginu, leiða hráa TCP og UDP pakka byggt á IP tölu og porti með míkrósekúndu seinkun og milljónum beiðna á sekúndu. Layer 7 forrits álagsdreifingar skoða HTTP samskiptareglur sjálfar: lesa URL slóðir, beiðnihausar, smákökur og HTTP aðferðir. Þetta gerir slóðarmiðaða leiðarstýringu kleift: sendir slash-api beiðnir á bakendaþyrpinguna þína og slash-static beiðnir á

3:25 hlutageymslu. Mikilvægt er að álagsdreifingar framkvæma virkar heilsufarsskoðanir. Á nokkurra sekúndna fresti sendir dreifingaraðilinn ping á heilsufarsendapunkt á hverju tilviki. Ef tilvik kastar þremur samfelldum fimmhundrað villum eða bregst ekki við, er það sjálfkrafa rekið úr hópi án neinna fallaðra beiðna.

- 03. Sjálfvirk skölun og teygjanleiki

3:45 Hugtak númer þrjú: Sjálfvirk skölun. Ef vefforritið þitt þarf tvo netþjóna klukkan þrjú að morgni, en tuttugu netþjóna í hádegishrinu, er að smella handvirkt á takka í skýjakonzólum tryggð leið til niðurtíma og gjaldþrots. Sjálfvirk skölun færir dynamic teygjanleika í lárétta netþjónahópa. Sjálfvirkur skölunarhópur fylgist með afköstum eins og meðaltals CPU nýtingu, net I-O, eða biðraðar afturgöngu dýpt. Þegar meðaltals CPU fer yfir skilgreindan þröskuld — segjum,

4:19 sjötíu prósent í þrjár samfelldar mínútur — ræsir sjálfvirki skalarinn sjálfkrafa nýjar sýndarvélar, skráir þær hjá álagsdreifara þínum, og byrjar að beina umferð. Jafn mikilvægt er að skála inn: þegar umferðarbylgjan minnkar, stöðvar sjálfvirki skalarinn umfram tilvik svo þú hættir að borga fyrir ónýtt tölvuafl. Til að koma í veg fyrir flökt — þar sem netþjónar eru hratt búnir til og eyðilagðir í endalausri hrinu — stilla skýjaarkitektar kælitíma. Hugtak númer fjögur: Serverlaust.

- 04. Þjónustulaust (FaaS og Firecracker MicroVMs)

4:53 Í mörg ár kynntu markaðsteymi serverlaust sem töfrakóða sem keyrir á himninum. Í raun notar serverlaust enn netþjóna — en þú átt þá ekki, lagfærir þá ekki, né borgar fyrir þá þegar enginn kóði er að keyra. Með Function-as-a-Service eins og AWS Lambda eða Google Cloud Functions, skrifarðu sjálfstæða meðhöndlunaraðgerð. Þegar HTTP beiðni, S3 skráarupphleðsla, eða gagnagrunnsbreyting gerist, ræsir skýjatíminn tímabundna

5:23 ör-sýndarvél eins og Firecracker á innan við fimm millisekúndum. Kóðinn þinn keyrir, skilar svari og slekkur á sér. Ef enginn heimsækir vefsíðuna þína í þrjá mánuði, er tölvureikningurinn þinn nákvæmlega núll dollarar og núll sent. Ef milljón notendur ná á hana samtímis, ræsir þjónustuaðilinn milljón samtímis ör-VM. Verkfræðilegir málamiðlanir eru raunverulegar: seinkun á köldu ræsingu þegar nýir keyrslutímar eru ræstir, hörð fimmtán mínútna keyrslumörk á Lambda, og ströng ríkisleysi.

5:55 Serverlaust er ósigrandi fyrir atburðarlagnir og óreglulegar API, en slæmt fyrir varanleg WebSockets eða margra klukkustunda þjálfunarferli.

- 05. Atburðastýrð arkitektúr (EDA og aftenging)

6:05 Hugtak númer fimm: Atburðastýrð arkitektúr, eða EDA. Í hefðbundnum arkitektúrum eiga þjónustur samskipti samstillt. Útskráningarþjónustan þín kallar á greiðslu, greiðsla kallar á birgðir, birgðir kalla á svik og svik kalla á tölvupóst. Þetta skapar samstillta hrunrás. Ef tölvupóstveitan þriðja aðila upplifir netvandamál og tekur tíu sekúndur að svara, fellur öll útskráningarbeiðni viðskiptavinar þíns út með villu. Í atburðastýrðri arkitektúr eru þjónustur algjörlega aftengdar.

6:37 Þegar viðskiptavinur smellir á kaupa, kallar útskráningarþjónustan ekki niðurlægar þjónustur. Hún einfaldlega birtir atburð sem kallast OrderPlaced á miðlæga atburðarstrætó eins og Amazon EventBridge eða SNS umræðuefni. Útskráningin klárast á fimmtíu millisekúndum. Niðurlægðir starfsmenn fyrir greiðslu, birgðaminnkun og tölvupóstkvittanir sækja skilaboð óháð frá sínum eigin sérstöku SQS biðröðum. Ef tölvupóstþjónustan fer niður í klukkutíma, bíða skilaboð örugglega buffruð í biðröðinni án einnar tapaðrar pöntunar.

- 06. Gámastýring (Docker og Kubernetes)

7:13 Hugtak númer sex: Gámaorkestrun. Docker leysti pökkun: það vefur forritakóðanum þínum, kerfisbókasöfnum, stillingum og keyrslutíma í óbreytanlega mynd sem keyrir eins á MacBook þínum og í skýinu. En að pakka gámi er auðvelt. Að keyra fimm hundruð gáma yfir fimmtíu líkamlegar sýndarvélar er þar sem verkfræði brotnar niður. Þess vegna eru gámastýringar eins og Kubernetes og AWS ECS

7:41 til. Stýringaraðili veitir stjórnplan: API netþjón, etcd ástandsgeymslu og greindan tímaáætlunaraðila. Þú lýsir yfir æskilegri stöðu þinni: Ég vil tíu eftirlíkingar af auðkenningarþjónustunni minni með tveimur gígabætum af vinnsluminni hverri. Tímaáætlunaraðilinn skoðar þyrpinguna, setur kubba á hnúta með lausu minni, stillir innra netkerfi og samræmir stöðugt raunveruleikann. Ef hnútur verður fyrir vélbúnaðarbilun, skynjar Kubernetes tapið og enduráætlar strax alla flutta kubba á

- 07. 4 geymslustoðir skýsins (S3, EBS, gagnagrunnar og Redis)

8:16 heilsusamlega hnúta. Hugtak númer sjö: Skýgeymsluflokkun. Byrjendur líta oft á skýgeymslu sem einn fötu þar sem þeir henda skrám. Í framleiðsluarkitektúr er geymsla skipt í fjórar aðskildar stoðir byggðar á aðgangsmynstri og seinkun. Fyrst er hlutageymsla, eins og Amazon S3 eða Google Cloud Storage. Þú hefur aðgang að skrám yfir HTTP REST API með því að nota einföld PUT og GET köll. Hún býður upp á óendanlega lárétta getu á tveimur sentum á gígabæti á mánuði,

8:49 sem gerir hana tilvalna fyrir myndbönd, notenda upphleðslur, logga og öryggisafrit. Í öðru lagi er blokkageymsla, eins og Amazon EBS. Þetta eru sýndarharðdiskar sem eru tengdir beint við ákveðna sýndarvél yfir háhraða samtengingu. Þeir formatta í staðlaða skráakerfi eins og ext4, styðja skjótan handahófskenndan lestrar- og ritunaraðgang sem gagnagrunns vélar þurfa. Í þriðja lagi eru stýrðir gagnagrunnar: tengslavélar eins og PostgreSQL á RDS sem veitir ACID færslur og flóknar tengingar,

9:21 og NoSQL vélar eins og DynamoDB sem skila eins tölustafs millisekúndu seinkun á gríðarlegum skala. Og í fjórða lagi eru skyndiminni í minni eins og Redis. Að lesa gögn úr RAM tekur örsekúndur frekar en millisekúndur. Skyndiminni situr fyrir framan gagnagrunninn þinn, verndar hann gegn endurteknum lesumferð og stjórnar rokgjörnum notandafundartáknum.

- 08. Mikil tiltækni og níurnar (Multi-AZ Failover)

9:44 Hugtak númer átta: Mikil tiltækni, eða HA. Tiltækni svarar einni spurningu: hversu mikinn hluta tímans er forritið þitt virkt og aðgengilegt notendum? Í fyrirtækjasamningum er tiltækni mæld í níum. Tvær níur, eða nítíu og níu prósent tiltækni, leyfa yfir þrjá og hálfan daga niðurtíma á hverju ári. Fjórar níur draga leyfilegan niðurtíma niður í fimmtíu og tvær mínútur, og fimm níur leyfa varla fimm mínútur af heildarniðurtíma á

10:15 ári. Til að ná mikilli tiltækni verður þú að útrýma stakum bilunarpunktum yfir bilunarsvæði. Í skýinu þýðir það að dreifa yfir mörg tiltæknisvæði. Tiltæknisvæði er ekki einn rekki: það er ein eða fleiri aðskildar líkamlegar gagnaver kílómetra á milli með sjálfstæðum rafmagn og kælingu. Með því að keyra virk tilvik á svæði A og svæði B með samstilltri gagnagrunnsfráritun, leiðir eldingarárás eða ljósleiðaraskurður sem tekur niður alla líkamlega aðstöðu til sjálfvirkrar yfirfærslu.

10:50 á þrjátíu sekúndum án mannlegrar íhlutunar.

- 09. Ending vs. tiltækni (Af hverju 11 níur er ekki spennutími)

10:53 Hugtak númer níu: endingargóðleiki á móti framboði. Þetta er algengasta huglæga gildran í skýjaskipulagi viðtölum. Verkfræðingar nota oft orðin til skiptis, en þau mæla algjörlega mismunandi eiginleika. Framboð mælir uppitíma: get ég gert API kall til að lesa eða skrifa gögnin mín einmitt núna? Endingargóðleiki mælir varðveislu: munu gögnin mín lifa af án varanlegrar bitarotnunar, spillingar eða eyðileggingar í yfir tíu ár?

11:24 Skoðið Amazon S3 Standard. Þjónustustigsamningur þess býður upp á níutíu og níu komma níu prósent framboð, sem leyfir u.þ.b. fjörutíu og þrjár mínútur af niðurtíma í hverjum mánuði þar sem API beiðni gæti skilað fimm hundruð villu. En S3 lofar ellefu níum af endingargóðleika: níutíu og níu komma níu níu níu níu níu níu níu níu níu prósent. Ef þú geymir tíu milljónir skráa í S3, geturðu tölfræðilega búist við að missa

11:56 að meðaltali eina skrá á tíu þúsund ára fresti. S3 nær þessu með því að erasure-kóða hluti og afrita búta yfir að minnsta kosti þrjár landfræðilega aðskildar gagnamiðstöðvar. Við meiriháttar svæðisbundið netbilun gæti S3 tímabundið verið óaðgengilegt, en gögnin þín eyðileggjast aldrei.

- 10. Innviðir sem kóði (Terraform vs. Console Drift)

12:14 Hugtak númer tíu: Innviðir sem kóði, eða IaC. Í árdaga skýjatölvunar logguðu verkfræðingar sig inn á AWS vefstjórnunarkonsóluna og smelltu handvirkt til að búa til sýndarvélar, stilla undirnet og festa öryggishópa. Iðnaðurinn kallar þetta ClickOps, og í framleiðslu er það alger hamfarir. Handvirkar breytingar á konsólu hafa ekkert endurskoðunarskrá, engan afturköllunar- búnað, og valda óhjákvæmilega stillingadrifi milli uppsetningar- og framleiðsluumhverfa. Með Infrastructure

12:48 as Code verkfærum eins og Terraform, OpenTofu, Pulumi eða AWS CDK, skilgreinirðu allt skýjaskipulag þitt í lýsandi stillingaskrám sem eru geymdar í Git. Sérhver breyting á opnu porti eða gagnagrunnsafritun fer í gegnum pull request og jafningjaúttekt. Að keyra terraform plan forskoðar nákvæma API diff áður en eitthvað er snert, og að setja upp eins afrit af framleiðslu þinni tekur fjórar mínútur í stað fjögurra vikna.

- 11. Skýjanet (VPC, undirnet, NAT og öryggishópar)

13:20 Hugtak númer ellefu: Skýjanet og Sýndar einkanet. Þegar þú setur upp netþjóna í skýinu, eru þeir ekki óvarðir á opinberu internetinu. Þeir lifa innan hugbúnaðarskilgreindrar einangraðrar landamæra kallað VPC. Innan VPC þíns úthlutarðu einkaréttri IP tölu eins og tíu-punktur-núll-punktur-núll-punktur-núll skástrik sextán, og skiptir því í opinber og einkarekin undirnet. Opinbert undirnet hefur beina leið á Internet Gateway.

13:51 Það geymir opinberar eignir eins og Application Load Balancers og NAT Gateways. Það er eini hluti netsins þíns sem býr yfir opinberum IP tölum. Forritsþjónar þínir og framleiðslugagnagrunnar lifa stranglega í einkareknum undirnetum án opinberra IP-tölva og án inngönguleiða frá internetinu. Þegar bakendaþjónar þínir þurfa að hlaða niður öryggisuppfærslum, fer útstreymi þeirra í gegnum NAT Gateway í opinbera undirnetinu. Umhverfis hvert tilvik eru öryggishópar: ástandsbundnir sýndarveggir sem framfylgja meginreglunni um minnsta forréttindi.

- 12. Heildar teikning fyrirtækisins og dómur

14:28 Öryggishópur gagnagrunns þíns samþykkir aðeins tengingar á porti 5432 eingöngu frá öryggishópi forritsþjóna þinna, sem gerir utanaðkomandi innbrot stærðfræðilega ómögulegt. Þegar þú zoomar út tengjast þessar ellefu frumgerðir í eitt samhangandi kerfi. DNS þitt leiðir til Load Balancer í opinberu undirneti, sjálfvirkar stækkunarhópar sjá um umferðarálag yfir mörg framboðssvæði, atburðarútgáfur aftengja bakendavinnu og allur stafli þinn er dreifður frá Git með því að nota Infrastructure as Code.

15:02 Niðurstaða meistaradeildar dagsins: SHIP IT. Hættu að leggja á minnið hundruð skammstafana úr skýjamarkaðssetningu. Náðu tökum á þessum ellefu arkitektúrmynstrum, aftengdu stöðu þína, og byggðu kerfi sem geta ekki brugðist. Segðu mér hvaða skýjahugtak olli þér mestum höfuðverk þegar þú byrjaðir fyrst að byggja í athugasemdunum. Og til að ná í heila arkitektúr svindlblaðið, gerist áskrifandi að fréttabréfinu á the daily diff dot dev,

15:28 hlekkur hér fyrir neðan. Og það er munurinn fyrir í dag. Ég er Niko frá Axrisi. Sameinaðu á ábyrgan hátt.

Heimildir

  1. AWS Well-Architected Framework (Reliability & Performance Pillars)aws.amazon.com
  2. Kubernetes Architecture & Control Plane Conceptskubernetes.io
  3. Martin Fowler: What is Event-Driven Architecture?martinfowler.com
  4. Amazon S3 Data Durability & Availability Technical Whitepaperaws.amazon.com
  5. HashiCorp: Declarative Infrastructure as Code with Terraformwww.terraform.io

Tengd myndbönd