Programovanie

4 stratégie nasadenia pre odolné mikroslužby

Budovanie aplikácií s mikroslužbami poskytuje vývojárom vyššiu rýchlosť a svižnosť ako tradičné architektúry. Každá zmena kódu však stále prináša riziká, čo vytvára podmienky pre potenciálne zlyhania, ak nebudú objavené a vyriešené problémy s kvalitou kódu. Na zmiernenie týchto rizík by aplikačné tímy mali implementovať moderné cloudové natívne smerovacie stratégie, ktoré uľahčia testovanie nebezpečenstva a zabezpečia, aby boli aplikácie skutočne pripravené na nasadenie v produkčných prostrediach.

Nasledujúce štyri stratégie nasadenia používajú techniky smerovania na bezpečné zavedenie nových služieb a funkcií, testovanie funkčnosti a opakované vylepšenia, identifikáciu a elimináciu slabých miest a ďalšie. Spoločne sú tieto prístupy virtuálnym súborom nástrojov, do ktorého môžu aplikačné tímy zasiahnuť pri znižovaní rizika počas vývoja a nasadenia aplikácií podporovaných mikroslužbami. Pochopenie ich rozdielov a podobností bude kľúčové pre vedieť, ako ich čo najlepšie využiť vo svojom vlastnom prostredí.

Kanárske nasadenia

Názov po historickej praxi posielania skutočných vtákov do uhoľných baní s cieľom zistiť, či je kvalita ovzdušia pre ľudí bezpečná, predstavuje nasadenie kanárikov spôsob, ako testovať skutočné nasadenie výroby s minimálnym dopadom alebo rizikom. Takzvaný kanárik je kandidátskou verziou služby, ktorá zachytáva určité čiastkové percento prichádzajúcich požiadaviek (povedzme 1%) na vyskúšanie nových funkcií alebo zostavení. Tímy môžu potom preskúmať výsledky a ak to pôjde hladko, postupne zvyšovať nasadenie na 100% serverov alebo uzlov. A ak nie? Prevádzku je možné z kanárskych nasadení rýchlo presmerovať, zatiaľ čo sa porušujúci kód kontroluje a ladí.

Kanárske rozmiestnenia je možné implementovať prostredníctvom integrácií s komponentami edge routing zodpovednými za spracovanie prichádzajúcej užívateľskej prevádzky. Napríklad v prostredí Kubernetes môže kanálové nasadenie klepnúť na konfiguráciu vstupného radiča a priradiť určené percentá požiadaviek na prenos k stabilným a kanálovým nasadeniam. Týmto smerovaním prenosu sa zabezpečí, že nové služby budú mať šancu preukázať sa skôr, ako dostanú úplné zavedenie. Ak tak neurobia, pošlú sa späť, aby odstránili problémy, a keď budú pripravené, absolvujú ďalšie kolo testovania nasadenia kanára.

A / B testovanie

A / B testovanie je podobné ako pri kanárskych nasadeniach, s jedným dôležitým rozdielom. Zatiaľ čo kanárske rozmiestnenia majú tendenciu zameriavať sa na identifikáciu chýb a úzkych miest výkonu, A / B testovanie sa zameriava na meranie prijatie zo strany používateľa nových funkcií aplikácie. Napríklad vývojári môžu chcieť vedieť, či majú používatelia obľúbené nové funkcie, či je ľahké ich nájsť alebo či používateľské rozhranie funguje správne.

Tento vzor využíva softvérové ​​smerovanie na aktiváciu a testovanie konkrétnych funkcií s rôznymi segmentmi prenosu, vystavenie nových funkcií konkrétnemu percentu prenosu alebo obmedzeným skupinám. Smerovacie segmenty A a B môžu posielať prenos do rôznych zostavení softvéru alebo inštancie služby dokonca môžu používať rovnaké zostavenie softvéru, ale s rôznymi atribútmi konfigurácie (ako je uvedené v orchestrátore alebo inde).

Modrozelené nasadenia

Modro-zelený vzor nasadenia zahŕňa paralelné prevádzkovanie dvoch produkčných prostredí: jedno pre aktuálne stabilné vydanie (modré) a druhé na fázové a testovacie testovanie na ďalšom vydaní (zelené). Táto stratégia umožňuje ľahko opakovateľné vydanie aktualizovaných verzií softvéru. Tímy Devops môžu pomocou tejto techniky automatizovať zavádzanie nových verzií pomocou kanálu CI / CD.

V rámci modro-zelenej stratégie vývojári nasadia popri existujúcej inštancii novú verziu služby, ktorá v súčasnosti spracováva produkčný prenos. Potrubie CI / CD by malo byť nastavené tak, aby vykonávalo automatizované dymové testy, aby sa overilo, či nová verzia úspešne plní svoje kľúčové funkcie. Len čo nová služba prešla poslednými testami, môže byť prevádzka bezpečne a automaticky presmerovaná na ňu pomocou softvérového smerovania na bezproblémovú správu prerušenia prevádzky z modrej na zelenú. Rovnako dôležité je, že v prípade kritických problémov na poslednú chvíľu je jednoduché vrátiť nasadenie do modrej verzie, ak sa vyskytnú kritické problémy.

Tienenie premávky

Tieňovanie prenosu je podobné ako modrozelené nasadenia, ale namiesto použitia syntetických testov na overenie „zeleného“ prostredia smerovacia technológia duplikuje všetok prichádzajúci produkčný prenos a zrkadlí ho na samostatné testovacie nasadenie, ktoré ešte nie je verejné. Tienenie prenosu teda vytvára presný obraz toho, čo by sa stalo, keby bola nasadená nová verzia, na základe skutočného prenosu. Tienenie prevádzky zároveň zaručuje, že testy nebudú mať žiadny vplyv na skutočnú produkciu. V praxi sa vývojári môžu rozhodnúť duplikovať stanovené percento požiadaviek na testovaciu službu, kde potom môžu vykonať testovanie integrácie a testovanie výkonu (buď ručne, alebo v rámci automatizovaného potrubia CI / CD).

Podnikoví vývojári už využívajú celý rad testovacích techník určených na zabezpečenie toho, aby nový aplikačný kód spĺňal určité požiadavky. Napríklad základné a funkčné testy zostávajú základnými opatreniami, ktoré musí kód vyčistiť. Vďaka architektúre založenej na mikroslužbách je však komplexné testovanie integrácie dôležitejšie ako kedykoľvek predtým. Vzhľadom na objem vzájomných závislostí a riziko dlhodobého posunu rozhrania, ktoré sú vlastné architektúram mikroslužieb, majú syntetické testy stále svoju hodnotu, ale nakoniec nedosiahnu presné zastúpenie všetkých interakcií medzi službami v produkčných prostrediach.

Štyri stratégie, jeden cieľ

Všetky tieto techniky smerovania ponúkajú odlišné, ale príbuzné metódy pomoci pri objavovaní, zmierňovaní a testovaní defektov v aplikáciách založených na mikroslužbách. Sú to silné nástroje na riešenie chýb, problémov s výkonom a bezpečnostných zraniteľností, najmä ak sú nasadené ako súčasť komplexného potrubia pre nepretržitú integráciu a doručovanie (CI / CD).

Ktorá z týchto metód je pre váš prípad najvhodnejšia, bude vo veľkej miere závisieť od toho, ktoré obavy sú najdôležitejšie. Napríklad veľká revízia používateľského rozhrania môže mať veľký úžitok z A / B testovania, zatiaľ čo modrozelené nasadenie by mohlo byť neoceniteľné, aby sa zistilo, ako môže nová funkcia ovplyvniť výkon existujúceho úložiska údajov.

Kombinácia týchto techník môže často ponúknuť najlepšie pokrytie. Je však dôležité zvážiť, ako dobre sa bude každá integrovať do vášho existujúceho vývojového modelu. Kanárske rozmiestnenie jednotlivých funkcií môže byť napríklad pre agilné vývojové metódy vhodnejšie ako modrozelené rozmiestnenie plných verzií. Aj keď tieňovanie prenosu môže poskytnúť vynikajúci prehľad o predbežnom nasadení výkonu aplikácií, jeho implementácia môže byť náročná a časovo náročná a nákladná z hľadiska výpočtových zdrojov.

Akokoľvek ich však využívate, smerovacie techniky, ako sú tieto, môžu byť neoceniteľnou súčasťou procesu vývoja softvéru, najmä keď sa priemysel odkláňa od tradičných monolitických aplikácií k cloudovým natívnym systémom založeným na mikroslužbách. Aplikáciou jednej, niektorých alebo všetkých týchto techník pri zachovaní ich konkrétnych výhod môžu aplikačné tímy lepšie zaistiť integritu a úspešnosť svojich projektov a spoľahlivejšie prejsť do výroby.

Manuel Zapf je vedúcim produktu OSS v spoločnosti Containous, cloudovej sieťovej spoločnosti, ktorá stojí za open source projektmi Traefik a Maesh.

Nové technologické fórum poskytuje miesto na preskúmanie a diskusiu o vznikajúcich podnikových technológiách v nebývalej hĺbke a šírke. Výber je subjektívny, založený na našom výbere technológií, ktoré považujeme za dôležité a pre čitateľov najväčší záujem. neprijíma marketingové záruky na zverejnenie a vyhradzuje si právo upravovať všetok prispievaný obsah. Všetky otázky posielajte na adresu [email protected].

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