Úvod do hry Spinnaker

1. Prehľad

V tomto výučbe sa pozrieme na Spinnaker, open-source platformu na kontinuálne doručovanie, ktorú vytvoril Netflix. Môžeme ho použiť na nasadenie našich aplikácií u viacerých poskytovateľov cloudu.

Systém je postavený na vrchole Spring Boot a podporuje mnohých poskytovateľov cloudových služieb.

Uvidíme, ako to bude fungovať a pre ktoré prípady to môžeme použiť.

2. Pozadie

Poďme sa pozrieť na históriu vývoja softvéru. Najskôr sme mali Vodopád so zriedkavými vydaniami.

Potom sme začali pracovať s Agile a každý šprint sme priniesli funkcie. Stále sme však neboli nasadení do výroby každý šprint. Používatelia bohužiaľ stále nemohli využívať nové funkcie, ktoré ležali na poličke.

Existovalo niekoľko dôvodov na pravidelné rozmiestnenie. Jednou z nich bola skutočnosť, že kroky nasadenia boli často vykonávané manuálne a náchylné na ľudské chyby.

Niektorí ľudia si navyše mysleli, že častejšie nasadenie znamená väčšie riziko potenciálnych problémov. V dnešnej dobe sa väčšinou zhodneme, že zavádzanie malých zmien znamená menšie riziko veľkých chýb. Aj napriek tomu, ak dôjde k chybe, môžeme ju v malej zmene rýchlo nájsť a vydať novú verziu, ktorá problém vyrieši.

3. Spinnaker

So Spinnakerom môžeme použiť nepretržité doručenie alebo nepretržité nasadenie na automatické vydanie našej aplikácie vo výrobe. Nepretržité dodávanie znamená, že všetko je pripravené na vydanie výroby.

Vydanie je však schválené manuálne pred nasadením aplikácie do výroby. Nepretržité nasadenie znamená, že nedochádza k žiadnemu manuálnemu zásahu. Vykonajú sa všetky kroky vrátane nasadenia do výroby. Jednoducho posúvame náš aplikačný kód do systému riadenia verzií a je to.

Od tlačenia nášho kódu až po kontrolu verzie až po nasadenie do výroby môžeme vykonať veľa krokov. Môžeme vytvoriť náš kód, kód jednotky otestovať, nasadiť do testovacieho prostredia a vykonať funkčné testy. Na konfiguráciu všetkých týchto krokov používame takzvaný kanál.

So Spinnakerom môžeme vytvoriť taký kanál a nasadiť našu aplikáciu na väčšinu poskytovateľov cloudu.

4. Komponenty

Spinnaker sa v zásade skladá z dvoch častí: abstrakčnej vrstvy nad rôznymi poskytovateľmi cloudu a nástroja na nepretržité doručovanie.

4.1. Tradičné cloudové nasadenia

Keď sa pozrieme na poskytovateľov cloudových služieb, všetci ponúkajú viac-menej rovnaké služby. Medzi tieto služby patria napríklad inštancie, bez servera a podpora kontajnerov.

Konfigurácia týchto služieb sa však medzi poskytovateľmi veľmi líši. To sťažuje prechod medzi poskytovateľmi. Trvá nejaký čas, kým sa presunieme k inému poskytovateľovi cloudu a dozvieme sa všetky podrobnosti, čo znamená, že v zásade máme blokovanie dodávateľa u nášho poskytovateľa cloudu.

Netflix chcel mať možnosť ľahko prepínať medzi poskytovateľmi cloudu, a nie byť závislý iba od jedného. Preto na poskytovateľoch cloudu postavili abstrakčnú vrstvu.

4.2. Abstrakčná vrstva

Keď používame Spinnaker, je to rovnaké u všetkých poskytovateľov cloudu. Môžeme ho použiť na webových službách Amazon, Microsoft Azure, Google Cloud Platform, OpenStack, Google App Engine alebo Kubernetes. To nám umožňuje presunúť sa k inému poskytovateľovi cloudu, ak sú ceny konkurencieschopnejšie.

Ba čo viac, môžeme si zvoliť nasadenie k viacerým poskytovateľom súčasne. Takto môžeme našu aplikáciu spustiť na dvoch alebo viacerých poskytovateľoch, aby sme tak dosiahli nadbytočnosť.

Ďalšou výhodou abstrakčnej vrstvy je, že sa zameriava na aplikácie namiesto na zdroje. Poskytovatelia cloudu nám zvyčajne ukazujú zdroje, ktoré momentálne používame. Musíme si však sami prísť na to, ktorá aplikácia ktoré zdroje používa.

Zdroje však pre nás nie sú zaujímavé. Chceme spustiť našu aplikáciu bez toho, aby sme trávili čas sledovaním zdrojov. Spinnaker má pohľad zameraný na aplikáciu. Takže keď sa na to pozrieme, najskôr uvidíme aplikáciu a potom uvidíme zdroje, ktoré aplikácia používa.

4.3. Nepretržité doručovanie

Okrem abstrakčnej vrstvy postavil Netflix platformu pre nepretržité doručovanie. Táto platforma nám umožňuje nasadiť našu aplikáciu na jedného alebo viacerých poskytovateľov cloudu. Vyzerá trochu ako Jenkins, ale ponúka krajšiu integráciu s poskytovateľmi cloudu a vyžaduje menšiu konfiguráciu.

Môžeme spustiť kanál kontinuálneho doručovania napríklad z Jenkinsa, nahraného Docker obrázka alebo napríklad git push. Potom môžeme pomocou našej aplikácie jednoducho vytvoriť obrázok alebo kontajner a spustiť ho vo výrobe.

Pred nasadením do výroby je však k dispozícii oveľa viac možností, ako sú automatizované testy a manuálne schválenia.

Môžeme sa dokonca rozhodnúť, akou stratégiou sa chceme riadiť pri nasadení novej verzie existujúcej aplikácie. Preto je možné starú verziu jednoducho nahradiť novou verziou. Lepšou stratégiou by však bolo spustiť ich najskôr vedľa seba. Takto môžeme automaticky alebo manuálne skontrolovať, či nová verzia funguje, a ak áno, starú verziu odstrániť.

5. Cloudový model Netflix

Každá aplikácia pozostáva z jednej alebo viacerých skupín serverov. Rovnaká verzia aplikácie je spustená vo všetkých inštanciách v skupine serverov. Používa sa nasledujúca konvencia pomenovania: ---. Pole (voliteľné) zásobníka sa používa na určenie, či je skupina serverov určená na testovacie, produkčné alebo iné účely. Pre ďalšie informácie sa používa voliteľné pole podrobností.

Nakoniec máme koncept klastra, ktorý obsahuje jednu alebo viac skupín serverov s rovnakým názvom, zásobníkom a podrobnosťami. Väčšinou však každá skupina serverov v klastri spúšťa inú verziu aplikácie. Zlyhané inštancie budú nahradené novou inštanciou.

Je tiež možné automaticky pridať inštancie do skupiny serverov, aby sa prispôsobilo zvýšenému zaťaženiu.

6. Stratégia nasadenia

Keď nasadíme novú verziu aplikácie, zvyčajne sa zvolí stratégia „červená / čierna“. Najskôr sa do klastra nasadí nová skupina serverov obsahujúca novú verziu aplikácie. Po nasadení aplikácie sa vykoná kontrola na overenie, či je nová skupina serverov v poriadku.

Teraz je skupina serverov povolená a dostupná pre našich zákazníkov. Nakoniec je stará skupina serverov zakázaná.

V tomto scenári je ľahké vrátiť sa späť, ak sa s novým aplikačným serverom niečo pokazí. Skupinu serverov so starou verziou môžeme jednoducho znova povoliť a sprístupniť našim zákazníkom.

7. Prečo Spinnaker

So Spinnakerom sa môžeme sústrediť na našu aplikáciu namiesto na cloudové zdroje, ktoré používame. To uľahčuje nasadenie a údržbu našich aplikácií.

Spinnaker navyše umožňuje pracovať na viacerých poskytovateľoch cloudu súčasne. Okrem toho môžeme ľahko prejsť na ďalších poskytovateľov cloudových služieb v závislosti od ich cenovej stratégie a dostupných funkcií.

8. Záver

Spinnaker stavia na skúsenostiach z Netflixu. Môžeme využiť ich vedomosti a pracovať rovnakým spôsobom s minimálnym úsilím. Na základe týchto nástrojov môžeme ľahko implementovať kanál nasadenia na nasadenie našich aplikácií do výroby.

Ak sa chcete dozvedieť viac informácií o aplikácii Spinnaker, stiahnite si bezplatný ebook o nepretržitom doručovaní pomocou aplikácie Spinnaker.


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