StorageReview.com

Přechod na cloudové nativní prostředí a vyhnutí se turbulencím

Enterprise  ◇  Podnikové úložiště  ◇  Software a licence

Vítejte u prvního ze série čtyř článků, které se zabývají kontejnerizací a hnutím cloudových nativních technologií, jež v čele stojí Docker, Google a rozvíjející se ekosystém tradičních i nových hráčů. V této sérii se odvážíme definovat a diskutovat tento nově vznikající a vzrušující prostor ve snaze pomoci organizacím lépe se v něm orientovat. Zatímco se tento první článek zaměří na definici „cloudových nativních technologií“ a některých souvisejících hybných prvků, v budoucích článcích prozkoumáme důležité vrstvy a související výzvy týkající se sítí, úložišť a orchestrace kontejnerů, abychom vám poskytli ucelenější pohled... ale nejdříve začněme od začátku.

Na začátku byly Free BSD a Solaris, které položily mistrovský základ pro to, co je dnes považováno za moderní kontejnerizační technologie s funkcemi nazývanými FreeBSD Jails a Solaris Zones. Google pomohl přenést kontejnery do Linuxu přidáním cgroups do linuxového jádra. V kombinaci s jmennými prostory a chrootem byl položen technický základ. Docker dále usnadnil přístup k kontejnerům vytvořením snadného pracovního postupu kolem obrazů kontejnerů a zaměřením na snadnou vývojářskou zkušenost.

Pravděpodobně nejlepším způsobem, jak definovat prostor, je zodpovědět si několik základních otázek a nechat si na ně odpovědět hostující odborníky. (vidíte, jak jsem práci přenechal jiným kvalifikovanějším lidem!?)

Co je to kontejner?
Hostující přispěvatel Cameron Brunner, hlavní architekt Navops

Kontejnery umožňují spolehlivý přesun aplikací z jednoho výpočetního prostředí do druhého. Může se jednat o přenos z notebooku vývojáře, do prostředí QA, do produkčního prostředí v místní síti nebo do cloudu. Závislosti softwarového stacku aplikace běžící v kontejneru, jako je operační systém nebo jiné softwarové komponenty a knihovny, lze z velké části vložit do kontejneru, což umožňuje jeho běh odděleně od detailů podkladového IT prostředí. Kontejnery byly původně navrženy tak, aby poskytovaly izolaci mezi aplikacemi běžícími v operačním systému. Poskytují kombinaci řízení zdrojů a oddělení hranic, která pomáhá izolovat provádění kódu v kontejneru od ostatních aktivit a kontejnerů, které běží na daném počítači/operačním systému. Kontejnery dosahují této izolace využitím funkcí operačního systému, jako jsou cgroups a jmenné prostory. 

Co je to Docker?

Docker je jak firemní, tak komerční/open source implementace kontejnerů. Kontejnery existují již dlouho před Dockerem, s ranými implementacemi jako FreeBSD Jails (2000) a Solaris Zones (2004), a Docker odvedl skvělou práci v tom, že kontejnery učinil užitečnými pro masy tím, že výrazně zjednodušil proces jejich vytváření a spouštění. Zatímco se Docker rychle stává de facto standardním formátem kontejnerů, společnost učinila další kroky směrem k otevřenosti a spolupráci vytvořením iniciativy Open Container Initiative (OCI) v rámci Linux Foundation. OCI zahrnuje řadu účastníků z oboru a pracuje na průmyslových standardech pro formáty kontejnerů a dobu běhu. (Viz www.opencontainers.org/)

Co je tedy cloudový nativní výpočetní systém?
Hostující přispěvatel Joe Beda, zakladatel a přispěvatel do Google Compute Engine a Kubernetes

Cloud Native je jedním z mnoha nových způsobů uvažování o vytváření a správě aplikací ve velkém měřítku. Cloud Native ve své podstatě strukturuje týmy, kulturu a technologie tak, aby využívaly automatizaci a architektury pro řízení složitosti a dosažení rychlosti.

Přestože kontejnery a jejich správa jsou často součástí myšlení „Cloud Native“, organizace jako Netflix toto myšlení slavně aplikují u virtuálních strojů a jejich obrazů. Navíc nemusíte běžet v cloudu, abyste si začali uvědomovat některé výhody tohoto posunu v myšlení. Aplikace a týmy mohou být lépe spravovatelné při nasazování aplikací v on-premise prostředí.

Neexistují žádná pevná pravidla pro to, co Cloud Native je. Objevují se však některá témata.

  • Automatizace DevOps a Ops: Inženýři v roli vývojáře aplikací hrají aktivní roli v zajišťování spolehlivého běhu aplikací v produkčním prostředí. Podobně ti, kteří plní roli provozních inženýrů, zajišťují, aby se zkušenosti vracely zpět do vývoje. Automatizace je klíčová pro řízení mnoha pohyblivých částí.
  • Kontejnery: Kontejnery poskytují pohodlný způsob, jak vytvořit nasaditelný artefakt sestavení, který lze testovat a validovat. To zajišťuje předvídatelnost nasazení.
  • Výpočetní clustery: Výpočetní cluster a systém plánování řízený API umožňuje malému počtu inženýrů spravovat velké množství úloh. Kromě toho umožňuje efektivní balení těchto úloh do uzlů, aby se zvýšila míra využití. A konečně, dobře fungující cluster snižuje provozní zátěž aplikačních týmů.
  • Mikroslužby: Mikroslužby rozdělují aplikace na menší nasaditelné jednotky, aby vývojové týmy mohly být rychlé a agilní. Tyto myšlenky nejsou nutně nové, ale uplatňují se společně s nástroji, které umožňují škálovatelnou správu. Více si o tom povíme níže.
  • Hluboký přehled: Cloud Native znamená hlubší vhled do fungování služeb. Distribuované trasování, shromažďování a indexování protokolů a hloubkové monitorování aplikací pomáhají lépe pochopit, co se uvnitř aplikace skutečně děje.

Co je architektura založená na mikroslužbách?
Hostující přispěvatel Joe Beda, zakladatel a přispěvatel do Google Compute Engine a Kubernetes

Mikroslužby jsou nový název pro koncept, který existuje již velmi dlouhou dobu. V podstatě se jedná o způsob, jak rozdělit velkou aplikaci na menší části, aby je bylo možné vyvíjet a spravovat nezávisle. Podívejme se na některé klíčové aspekty:

  • Silná a jasná rozhraní. Je třeba se vyhnout těsnému propojení mezi službami. Dokumentovaná a verzovaná rozhraní pomáhají upevnit tuto smlouvu a zachovat určitou míru svobody jak pro spotřebitele, tak pro tvůrce těchto služeb.
  • Nezávisle nasazené a spravované. Mělo by být možné aktualizovat jednu mikroslužbu bez synchronizace se všemi ostatními službami. Je také žádoucí, aby bylo možné snadno vrátit zpět verzi mikroslužby. To znamená, že nasazené binární soubory musí být dopředu i zpětně kompatibilní, a to jak z hlediska API, tak i datových schémat. To může otestovat mechanismy spolupráce a komunikace mezi příslušnými provozními a vývojovými týmy.
  • Vestavěná odolnost. Mikroslužby by měly být vytvářeny a testovány tak, aby byly nezávisle odolné. Kód, který službu využívá, by se měl snažit pokračovat v práci a dělat rozumné kroky v případě, že využívaná služba nefunguje nebo se chová špatně. Podobně by každá nabízená služba měla mít určitou ochranu proti neočekávanému zatížení a chybným vstupům.
  • Mikroslužby jsou spíše o lidech než o technologiích. Malé týmy jsou obratnější. Jeff Bezos je známý tím, že navrhuje udržovat schůzky a týmy dostatečně malé, aby se daly nasytit dvěma pizzami. Strukturováním velkého projektu jako série menších týmů a následným ústupem z cesty se tyto týmy mohou spojit a nést odpovědnost za danou část projektu.

Těšíme se na další články, kde probereme některé důležité vrstvy cloudového nativního stacku.

Rob Lalonde je viceprezidentem a generálním ředitelem společnosti Navops . Aktivně se angažuje v různých open source nadacích, včetně Cloud Native Computing Foundation (CNCF), Open Container Initiative (OCI) a Linux Foundation. Rob zastával výkonné pozice v řadě úspěšných high-tech společností a startupů. Absolvoval studium MBA na Schulich School of Business na York University a má titul v oboru informatiky z Laurentian University.

Diskutujte o tomto příběhu

Přihlaste se k odběru newsletteru StorageReview

Zapojte se do StorageReview

Zpravodaj | YouTube | Podcast iTunes / Spotify | Instagram | Twitter | TikTok | RSS kanál

Hostující autor