Service Fabric a kontejnery

Úvod

Azure Service Fabric je platforma distribuovaných systémů usnadňující balení, nasazování a spravování škálovatelných a spolehlivých mikroslužeb a kontejnerů.

Service Fabric je orchestrátor kontejnerů Microsoftu pro nasazování mikroslužeb do clusteru počítačů. Service Fabric těží z poznatků získaných během let provozování služeb v Microsoftu ve velkém měřítku.

Mikroslužby je možné vyvíjet mnoha způsoby, od použití programovacích modelů Service Fabric přes ASP.NET Core až po nasazení libovolného vlastního kódu. Pokud chcete jenom nasazovat a spravovat kontejnery, je také skvělou volbou Service Fabric.

Ve výchozím nastavení Service Fabric nasazuje a aktivuje tyto služby jako procesy. Procesy poskytují nejrychlejší aktivaci a nejvyšší využití prostředků v clusteru. Service Fabric může také nasazovat služby v imagích kontejnerů. Ve stejné aplikaci můžete také kombinovat služby v procesech a služby v kontejnerech.

Pokud chcete přejít přímo do služby Service Fabric a vyzkoušet kontejnery, vyzkoušejte rychlý start, kurz nebo ukázku:

Rychlý start: Nasazení aplikace kontejneru linuxu do Service Fabric
Rychlý start: Nasazení kontejnerové aplikace windows do Service Fabric
Kontejnerizace existující aplikace v .NET
Ukázky kontejnerů Service Fabric

Co jsou kontejnery

Kontejnery řeší problém spolehlivého spouštění aplikací v různých výpočetních prostředích tím, že poskytují neměnné prostředí pro spuštění aplikace. Kontejnery zabalí aplikaci a všechny její závislosti, jako jsou knihovny a konfigurační soubory, do vlastní izolované "krabice", která obsahuje vše potřebné ke spuštění softwaru uvnitř kontejneru. Bez ohledu na to, kde kontejner běží, má aplikace v něm vždy vše, co potřebuje ke spuštění, například správné verze závislých knihoven, všechny konfigurační soubory a cokoli dalšího, co je potřeba spustit.

Kontejnery běží přímo nad jádrem a mají izolované zobrazení systému souborů a dalších prostředků. Aplikace v kontejneru nemá žádné znalosti o žádných dalších aplikacích nebo procesech mimo svůj kontejner. Každá aplikace a její modul runtime, závislosti a systémové knihovny běží v kontejneru s úplným privátním přístupem k vlastnímu izolovanému zobrazení operačního systému kontejneru. Kromě toho, že usnadňuje poskytování všech závislostí vaší aplikace, které potřebuje ke spuštění v různých výpočetních prostředích, jsou zabezpečení a izolace prostředků důležitými výhodami používání kontejnerů se Service Fabric – které jinak spouští služby v procesu.

V porovnání s virtuálními počítači mají kontejnery následující výhody:

  • Malé: Kontejnery používají jeden prostor úložiště, verze vrstvy a aktualizace, aby se zvýšila efektivita.
  • Rychlé: Kontejnery nemusí spouštět celý operační systém, takže se můžou spouštět mnohem rychleji – obvykle během několika sekund.
  • Přenositelnost: Image kontejnerizované aplikace je možné přenést tak, aby běžela v cloudu, místně, uvnitř virtuálních počítačů nebo přímo na fyzických počítačích.
  • Zásady správného řízení prostředků: Kontejner může omezit fyzické prostředky, které může využívat na svém hostiteli.

Podpora služby Service Fabric pro kontejnery

Service Fabric podporuje nasazení kontejnerů Dockeru v Linuxu a kontejnerů Windows Serveru v Windows Server 2016 a novějších a také podporu režimu izolace Hyper-V.

Moduly runtime kontejneru kompatibilní s technologií ServiceFabric:

  • Linux: Docker
  • Windows:
    • Windows Server 2022: Mirantis Container Runtime
    • Windows Server 2019/2016: DockerEE

Kontejnery Dockeru v Linuxu

Docker poskytuje rozhraní API pro vytváření a správu kontejnerů nad kontejnery jádra Linuxu. Docker Hub poskytuje centrální úložiště pro ukládání a načítání imagí kontejnerů. Kurz založený na Linuxu najdete v tématu Vytvoření první kontejnerové aplikace Service Fabric v Linuxu.

Kontejnery Windows Serveru

Windows Server 2016 a novější poskytují dva různé typy kontejnerů, které se liší podle úrovně izolace. Kontejnery Windows Serveru a kontejnery Dockeru jsou podobné, protože oba mají izolaci oboru názvů a systému souborů a zároveň sdílejí jádro s hostitelem, na kterém běží. V Linuxu tuto izolaci tradičně zajišťují skupiny cgroup a obory názvů a kontejnery Windows Serveru se chovají podobně.

Kontejnery Windows s podporou technologie Hyper-V poskytují větší izolaci a zabezpečení, protože žádný kontejner nesdílí jádro operačního systému s žádným jiným kontejnerem ani s hostitelem. S touto vyšší úrovní izolace zabezpečení jsou kontejnery s podporou Technologie Hyper-V cílem potenciálně nepřátelských scénářů s více tenanty. Kurz založený na Windows najdete v tématu Vytvoření první kontejnerové aplikace Service Fabric ve Windows.

Následující obrázek znázorňuje různé typy dostupných úrovní virtualizace a izolace. Platforma Service Fabric

Scénáře použití kontejnerů

Tady jsou typické příklady, kdy je kontejner dobrou volbou:

  • Lift and shift služby IIS: Existující aplikaci ASP.NET MVC můžete umístit do kontejneru místo migrace do ASP.NET Core. Tyto aplikace ASP.NET MVC závisí na Internetové informační službě (IIS). Tyto aplikace můžete zabalit do imagí kontejneru z předem připravené image služby IIS a nasadit je pomocí Service Fabric. Informace o kontejnerech Windows najdete v tématu Image kontejnerů ve Windows Serveru .

  • Kombinace kontejnerů a mikroslužeb Service Fabric: Použijte existující image kontejneru pro část vaší aplikace. Můžete například použít kontejner NGINX pro webový front-end vaší aplikace a stavové služby pro náročnější back-endové výpočty.

  • Omezení dopadu služeb "hlučných sousedů": Pomocí možnosti zásad správného řízení prostředků v kontejnerech můžete omezit prostředky, které služba používá na hostiteli. Pokud služby můžou využívat mnoho prostředků a ovlivnit výkon jiných (například dlouhotrvající operace podobné dotazům), zvažte jejich umístění do kontejnerů, které mají zásady správného řízení prostředků.

Poznámka

Cluster Service Fabric je z návrhu jeden tenant a hostované aplikace se považují za důvěryhodné. Pokud zvažujete hostování nedůvěryhodných aplikací, přečtěte si téma Hostování nedůvěryhodných aplikací v clusteru Service Fabric.

Service Fabric poskytuje model aplikace , ve kterém kontejner představuje hostitele aplikace, ve kterém je umístěno více replik služby. Service Fabric také podporuje scénář spustitelného souboru hosta , ve kterém nepoužíváte integrované programovací modely Service Fabric, ale místo toho v kontejneru zabalíte existující aplikaci napsanou pomocí libovolného jazyka nebo architektury. Tento scénář je běžným případem použití pro kontejnery.

Služby Service Fabric můžete také spouštět v kontejneru. Podpora spouštění služeb Service Fabric v kontejnerech je v současné době omezená.

Service Fabric poskytuje několik funkcí kontejneru, které vám pomůžou sestavovat aplikace, které se skládají z kontejnerizovaných mikroslužeb, například:

  • Nasazení a aktivace image kontejneru
  • Zásady správného řízení prostředků, včetně výchozího nastavení hodnot prostředků v clusterech Azure.
  • Ověřování úložiště.
  • Port kontejneru pro mapování portů hostitele
  • Zjišťování a komunikace mezi kontejnery
  • Možnost konfigurace a nastavení proměnných prostředí
  • Možnost nastavit přihlašovací údaje zabezpečení pro kontejner.
  • Výběr různých síťových režimů pro kontejnery.

Komplexní přehled podpory kontejnerů v Azure, jako je vytvoření clusteru Kubernetes s Azure Kubernetes Service, vytvoření privátního registru Dockeru v Azure Container Registry a další, najdete v tématu Azure for Containers.

Další kroky

V tomto článku jste se dozvěděli o podpoře, kterou Service Fabric poskytuje pro spuštěné kontejnery. Dále si projdeme příklady jednotlivých funkcí, abychom vám ukázali, jak je používat.

Vytvoření první aplikace Service Fabric typu kontejner v Linuxu
Vytvoření první aplikace Service Fabric typu kontejner v systému Windows
Další informace o kontejnerech Windows