Programiranje

4 strategije uvajanja za odporne mikro storitve

Gradnja aplikacij z mikro storitvami zagotavlja razvijalcem večjo hitrost in gibčnost kot tradicionalne arhitekture. Kljub temu vsaka sprememba kode še vedno tvega in postavlja temelje za morebitne napake, če težave s kakovostjo kode ne bodo odkrite in obravnavane. Za ublažitev teh tveganj bi morale ekipe za aplikacije izvajati sodobne usmeritvene strategije v oblaku, ki olajšajo preizkušanje nevarnosti in zagotovijo, da so aplikacije resnično pripravljene za uporabo v proizvodnih okoljih.

Naslednje štiri strategije uvajanja uporabljajo tehnike usmerjanja za varno uvajanje novih storitev in funkcij, preizkušanje funkcionalnosti in ponavljajoče se izboljšave, prepoznavanje in odpravljanje ranljivosti in še več. Skupaj so ti pristopi navidezna zbirka orodij, v katero lahko ekipe aplikacij posežejo za zmanjšanje tveganja med razvojem in uvajanjem aplikacij, ki jih poganjajo mikro storitve. Razumevanje njihovih razlik in podobnosti bo ključnega pomena za to, kako jih najbolje izkoristiti v svojem okolju.

Kanarske razmestitve

Poimenovanje po zgodovinski praksi pošiljanja dejanskih ptic v premogovnike, da bi ugotovili, ali je kakovost zraka varna za ljudi, so napotitve kanarčkov način preizkušanja dejanskih proizvodnih postavitev z minimalnim vplivom ali tveganjem. Tako imenovani kanarček je različica storitve, ki ujame določen odstotek dohodnih zahtev (recimo 1%) za preizkušanje novih funkcij ali zgradb. Nato lahko ekipe preučijo rezultate in, če gre vse gladko, postopoma povečajo uvajanje na 100% strežnikov ali vozlišč. In če ne? Promet je mogoče hitro preusmeriti iz postavitev kanarčkov, medtem ko koda kršitelja pregleda in odpravi napake.

Kanarske razmestitve je mogoče izvesti z integracijami s komponentami usmerjanja robov, ki so odgovorne za obdelavo vhodnega uporabniškega prometa. Na primer, v okolju Kubernetes lahko postavitev kanarčka tapne konfiguracijo vhodnega krmilnika, da dodeli določene odstotke zahtev za promet stabilnim in kanarskim razmestitvam. Usmerjanje prometa na ta način zagotavlja, da imajo nove storitve priložnost, da se izkažejo, preden prejmejo popolno uvajanje. Če se ne, jih pošljejo nazaj, da odpravijo težave in nato opravijo še en krog testiranja namestitve kanarčkov, ko so pripravljeni.

A / B testiranje

A / B testiranje je podobno kot uvajanje kanarov, z eno pomembno razliko. Medtem ko se razporeditve kanarov ponavadi osredotočajo na prepoznavanje napak in ozkih grl pri zmogljivosti, se testiranje A / B osredotoča na merjenje sprejem uporabnika novih funkcij aplikacije. Na primer, razvijalci bodo morda želeli vedeti, ali so nove funkcije priljubljene pri uporabnikih, ali jih je enostavno odkriti ali uporabniški vmesnik deluje pravilno.

Ta vzorec uporablja programsko usmerjanje za aktiviranje in preizkušanje posebnih funkcij z različnimi segmenti prometa, izpostavljanje novih funkcij določenemu odstotku prometa ali omejenim skupinam. Usmerjevalna segmenta A in B lahko pošljeta promet različnim gradnjam programske opreme ali pa primerki storitve morda celo uporabljajo isto gradnjo programske opreme, vendar z različnimi konfiguracijskimi atributi (kot je določeno v orkestratorju ali drugje).

Modrozelene postavitve

Vzorec modro-zelene razmestitve vključuje vzporedno delovanje dveh produkcijskih okolij: eno za trenutno stabilno izdajo (modro) in eno za izvedbo in izvajanje preskusov v naslednji izdaji (zeleno). Ta strategija omogoča izdajo posodobljenih različic programske opreme na enostavno ponovljiv način. Skupine za razvoj lahko s to tehniko avtomatizirajo uvajanje novih različic s pomočjo cevovoda CI / CD.

Z modro-zeleno strategijo razvijalci poleg obstoječega primerka uvedejo novo različico storitve, ki trenutno obravnava produkcijski promet. Cevovod CI / CD mora biti nastavljen tako, da izvaja samodejne teste dima, da preveri, ali nova različica uspe v svoji ključni funkcionalnosti. Ko je nova storitev prestala zadnje teste, lahko promet varno in samodejno preusmerite nanjo s pomočjo programske usmeritve za nemoteno upravljanje prekinitve prometa iz modre v zeleno. Enako pomembno je, da je v primeru kritičnih težav v zadnjem trenutku razmestitev preprosto vrniti na modro različico, če se pojavijo kritične težave.

Prometna senca

Zasenčenost prometa je podobna modro-zeleni uvedbi, vendar tehnologija usmerjanja namesto sintetičnih testov za preverjanje "zelenega" okolja podvaja ves dohodni produkcijski promet in ga zrcali v ločeno testno uvajanje, ki še ni javno. Tako senčenje prometa na podlagi resničnega prometa ustvari natančno sliko, kaj bi se zgodilo, če bi uvedli novo različico. Hkrati senčenje prometa zagotavlja, da testi ne vplivajo na dejansko proizvodnjo. V praksi se lahko razvijalci podvojijo določen odstotek zahtev preskusni storitvi, kjer lahko nato izvedejo integracijsko preskušanje in primerjalno preizkušanje zmogljivosti (bodisi ročno bodisi v okviru avtomatiziranega cevovoda CI / CD).

Podjetniški razvijalci že uporabljajo vrsto preizkusnih tehnik, katerih namen je zagotoviti, da nova programska koda izpolnjuje nekatere zahteve. Enotni in funkcionalni preskusi na primer ostajajo bistveni ukrepi, ki jih mora koda očistiti. Vendar pa je zaradi narave arhitektur, ki temeljijo na mikro storitvah, celostno integracijsko testiranje bolj pomembno kot kdaj koli prej. Glede na obseg medsebojnih odvisnosti in tveganje dolgoročnega zamika vmesnikov, ki je neločljivo povezan z arhitekturo mikro storitev, imajo sintetični testi še vedno vrednost, vendar na koncu ne bodo mogli natančno predstaviti vseh interakcij med storitvami v proizvodnih okoljih.

Štiri strategije, en cilj

Vse te usmerjevalne tehnike ponujajo različne, a povezane metode za pomoč pri odkrivanju, ublažitvi in ​​testiranju napak v aplikacijah, ki temeljijo na mikro storitvah. So močno orodje za odpravljanje napak, težav z zmogljivostjo in varnostnih ranljivosti, zlasti kadar so uvedene kot del celovitega cevovoda za stalno integracijo in dostavo (CI / CD).

Katera od teh metod je najprimernejša za vaš primer, bo v veliki meri odvisna od skrbi, ki je najpomembnejša. Na primer, večja prenova uporabniškega vmesnika lahko v veliki meri koristi testiranju A / B, medtem ko je modrozelena uvedba lahko neprecenljiva, če želite ugotoviti, kako lahko nova funkcija vpliva na delovanje obstoječe shrambe podatkov.

Kombinacija teh tehnik pogosto ponuja najboljše kritje. Vendar je pomembno razmisliti, kako dobro se bo vsak integriral z vašim obstoječim razvojnim modelom. Kanarske razmestitve posameznih funkcij so morda bolj primerne za agilne razvojne metode kot na primer modrozelene razmestitve polnih različic. Čeprav lahko senčenje prometa daje odličen vpogled v zmogljivost aplikacije pred uvedbo, je lahko težko in zamudno za izvajanje in drago v smislu računalniških virov.

Ne glede na to, kako jih uporabljate, so takšne usmerjevalne tehnike lahko neprecenljiv del postopka razvoja programske opreme, zlasti ko se industrija od tradicionalnih, monolitnih aplikacij odmika k sistemom, ki temeljijo na mikro storitvah v oblaku. Z uporabo ene, nekaterih ali vseh teh tehnik, pri čemer se zavedajo svojih posebnih prednosti, lahko prijavne ekipe bolje zagotovijo celovitost in uspeh svojih projektov in se bolj samozavestno premaknejo v proizvodnjo.

Manuel Zapf je vodja produkta OSS pri Containousu, podjetju za mreženje v oblaku, ki stoji za odprtokodnimi projekti Traefik in Maesh.

Forum New Tech ponuja prizorišče za raziskovanje in razpravo o nastajajoči podjetniški tehnologiji v globini in širini brez primere. Izbor je subjektiven in temelji na našem izboru tehnologij, za katere menimo, da so pomembne in najbolj zanimajo bralce. ne sprejema tržnih zavarovanj za objavo in si pridržuje pravico do urejanja celotne prispevane vsebine. Vsa vprašanja pošljite na [email protected].

$config[zx-auto] not found$config[zx-overlay] not found