Kubernetes

Stateern vs vs kodakondsuseta rakendused Kubernetes

Stateern vs vs kodakondsuseta rakendused Kubernetes
Oluline kriteerium, mida tuleb enne uue rakenduse tootmisel käivitamist arvesse võtta, on rakenduse alusarhitektuur. Selles kontekstis kasutatakse sageli terminit, et rakendus on „kodakondsuseta” või et rakendus on „olekuga”. Mõlemal tüübil on omad plussid ja miinused. Kui räägime tootmises töötavast rakendusest või teenusest, on meil Kubernetese klaster. Pilvesse saate installida oma Kubernetese klastri või lasta sellel oma arvutis ühe sõlmena töötada, et sellega veidi harjutada.

Alustame kodakondsusetuse naiivse määratlusega ja liigume seejärel aeglasemalt rangema ja reaalsema pilguga.

Kodakondsuseta rakendus on see, mis ei sõltu püsivast salvestusruumist. Ainus asi, mille eest teie klaster vastutab, on kood ja muu staatiline sisu, mida sellel hostitakse. See on kõik, ei vahetata andmebaase, ei kirjutata ega faile, kui kaust kustutatakse.

Olekurakendusel on seevastu veel mitu parameetrit, mida see peaks klastris hoolitsema. On dünaamilisi andmebaase, mis püsivad kettal ka siis, kui rakendus on võrguühenduseta või kustutatud. Hajutatud süsteemis, nagu Kubernetes, tekitab see mitmeid probleeme. Vaatame neid üksikasjalikult, kuid kõigepealt selgitame mõningaid väärarusaamu.

Kodakondsuseta teenused pole tegelikult „kodakondsuseta”

Mida see tähendab, kui ütleme süsteemi olekut? Vaatame järgmist automaatset ukse lihtsat näidet.

Uks avaneb, kui andur tuvastab kellegi lähenemise, ja see sulgub, kui andur ei saa asjakohast sisendit.

Praktikas on teie kodakondsuseta rakendus sarnane ülaltoodud mehhanismiga. Sellel võib olla palju rohkem olekuid kui lihtsalt suletud või avatud ja palju erinevaid sisendeid, mis muudavad selle keerukamaks, kuid sisuliselt samaks.

See suudab keerukaid probleeme lahendada lihtsalt sisendi vastuvõtmise ja toimingute abil, mis sõltuvad nii sisendist kui ka selle olekust. Võimalike olekute arv on eelnevalt määratletud.

Nii et kodakondsusetus on vale nimi.

Kodakondsuseta rakendused võivad praktikas ka natuke petta, salvestades näiteks kliendi seansside üksikasjad kliendile endale (suurepärane näide on HTTP-küpsised) ja neil on endiselt kena kodakondsusetus, mis paneks neid klastris laitmatult töötama.

Näiteks saab kliendi seansi üksikasjad, näiteks need, millised tooted ostukorvi salvestati ja mida ei kontrollitud, kliendile salvestada ning järgmisel korral, kui seanss algab, meenutatakse ka neid asjakohaseid üksikasju.

Kubernetese klastris pole kodakondsuseta rakendusel sellega seotud püsivat salvestusruumi ega mahtu. Operatsioonide vaatenurgast on see suurepärane uudis. Erinevad kaustad üle kogu klastri võivad töötada iseseisvalt, kui neile saabub korraga mitu taotlust. Kui midagi läheb valesti, saate rakenduse lihtsalt taaskäivitada ja see läheb vähese seiskamisajaga tagasi algsesse olekusse.

Riiklikud teenused ja ÜPP teoreem

Riiklikud teenused peavad seevastu muretsema paljude ja paljude äärmuslike juhtumite ja imelike probleemide pärast. Kaunaga on kaasas vähemalt üks köide ja kui selles köites olevad andmed on rikutud, püsib see ka siis, kui kogu klaster taaskäivitatakse.

Näiteks kui käitate andmebaasi Kubernetes klastris, peavad kõigil kaunadel olema andmebaasi salvestamiseks kohalik maht. Kõik andmed peavad olema ideaalses sünkroonis.

Nii et kui keegi muudab andmebaasi kirjet ja see tehti pod A-l ning lugemisnõue tuleb B-modifikatsioonile, et näha neid muudetud andmeid, peab Pod B näitama neid viimaseid andmeid või andma teile tõrketeate. Seda nimetatakse järjepidevuseks.

Järjepidevus, Kubernetese klastri kontekstis tähendab iga lugemine saab viimase kirjutamise või tõrketeate.

Kuid see lõikab vastu kättesaadavus, hajutatud süsteemi omamise üks olulisemaid põhjuseid. Kättesaadavus tähendab, et teie rakendus toimib ööpäevaringselt võimalikult täiuslikkuse lähedal kui võimalik, võimalikult väheste vigadega.

Võib väita, et seda kõike saab vältida, kui teil on ainult üks tsentraliseeritud andmebaas, mis vastutab kõigi püsivate salvestusvajaduste eest. Nüüd oleme taas ühe rikkepunkti käes, mis on järjekordne probleem, mille Kubernetese klastrid peaksid kõigepealt lahendama.

Püsivate andmete klastrisse salvestamiseks peab teil olema detsentraliseeritud viis. Tavaliselt nimetatakse seda võrgu sektsioonideks. Pealegi peab teie klaster suutma üle elada olekurakendust käitavate sõlmede tõrke. Seda tuntakse kui jaotustaluvus.

Kõigil Kubernetes klastris käitatavatel olekutega teenustel (või rakendustel) peab olema nende kolme parameetri vaheline tasakaal. Tööstuses on see tuntud kui ÜPP teoreem, kus järjepidevuse ja kättesaadavuse vahelisi kompromisse arvestatakse võrgu jaotamise olemasolul.

Edasised viited

Ühise põllumajanduspoliitika teoreemi kohta lisateabe saamiseks võiksite vaadata seda suurepärast juttu, mille pidas Bryan Cantrill, kes uurib palju lähemalt hajutatud süsteemide käitamist tootmises.

Nende tasuta tööriistade abil lisage Windows 10-le hiire liigutused
Viimastel aastatel on arvutid ja operatsioonisüsteemid palju arenenud. Oli aeg, mil kasutajad pidid failihaldurites navigeerimiseks kasutama käske. Na...
Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...
WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...