Orchestrace kontejnerů pro mikroslužby
Architektury mikroslužeb obvykle zabalí a nasadí každou instanci mikroslužby do jednoho kontejneru. Je možné, že je spuštěno mnoho instancí mikroslužeb, z nichž každý je v samostatném kontejneru. Kontejnery jsou jednoduché a krátkodobé, takže je snadné vytvářet a zničit, ale obtížně koordinovat a komunikovat mezi nimi.
Tento článek popisuje problémy se spouštěním architektury kontejnerizovaných mikroslužeb v produkčním měřítku a o tom, jak vám může pomoct orchestrace kontejnerů. Tento článek obsahuje několik možností orchestrace kontejnerů Azure.
Architektura kontejnerizovaných mikroslužeb
V tomto jednoduchém kontejnerizovaném clusteru Azure Kubernetes Service (AKS):
- Jedna instance mikroslužby A běží v Node 1, jiné instanci v Node 2 a třetí instanci v Node 3.
- Jedna instance mikroslužby B běží v Node 1 a další instance v Node 3.
- Kontejnerizované reverzní proxy servery, běží v Uzlech 1 a 2 pro distribuci provozu.
Ke správě clusteru musí tým DevOps:
- V každém uzlu spusťte více instancí kontejneru.
- Vyrovnávání zatížení provozu mezi instancemi
- Správa komunikace mezi závislými instancemi v samostatných uzlech
- Udržujte požadovaný stav clusteru AKS.
Díky orchestraci kontejnerů může tým DevOps představovat požadovaný stav clusteru jako konfiguraci. Modul orchestrace kontejnerů vynucuje požadovanou konfiguraci a automatizuje všechny úlohy správy.
Zvažte kontejnerizaci jednoduché třívrstvé webové aplikace:
- Kontejner hostuje front-endovou komponentu.
- Jiný kontejner hostuje střední vrstvu nebo vrstvu rozhraní REST API.
- Vrstva střední vrstvy komunikuje s globálně distribuovanou databází.
Spuštění těchto kontejnerů na jednom vývojovém počítači nemusí být příliš těžké. Spuštění aplikace v režimu vysoké dostupnosti ve velkém v produkčním clusteru se ale rychle stává náročné. Orchestrace kontejnerů je zásadní pro rozsáhlá a dynamická produkční prostředí.
Výhody orchestrace kontejnerů
Následující příklad ukazuje, jak může orchestrace kontejnerů pomoct spravovat nasazení clusteru, sítě a škálování.
Orchestrátor kontejnerů:
Automaticky škáluje počet instancí mikroslužeb na základě využití provozu nebo prostředků. V tomto příkladu orchestrátor automaticky přidá další instanci Mikroslužby A v reakci na zvýšený provoz.
Spravuje kontejnery tak, aby odrážely nakonfigurovaný požadovaný stav. V tomto příkladu je mikroslužba B nakonfigurovaná tak, aby měla dvě instance. Jedna instance není v pořádku, takže orchestrátor udržuje požadovaný stav vytvořením jiné instance.
Zabalí kontejnery pro každou mikroslužbu do jednoduché vrstvy služby. Vrstva služby:
- Abstrahuje složitosti, jako jsou IP adresa, port a počet instancí.
- Zatížení vyrovnává provoz mezi instancemi mikroslužeb.
- Podporuje snadnou komunikaci mezi závislými instancemi mikroslužeb.
Orchestrátory kontejnerů také poskytují flexibilitu a řízení provozu pro:
- Uvolněte nové verze nebo vraťte zpět do starých verzí mikroslužeb nebo sad mikroslužeb bez výpadků.
- Souběžné testování různých verzí mikroslužeb
Volba orchestrátoru kontejnerů Azure
Tady jsou některé možnosti implementace orchestrace kontejnerů mikroslužeb v Azure:
azure Kubernetes Service (AKS) je plně spravovaná služba orchestrace kontejnerů Kubernetes kontejneru v Azure, která zjednodušuje nasazení a správu kontejnerizovaných aplikací. AKS poskytuje elastické zřizování, rychlé komplexní nasazení a pokročilou správu identit a přístupu.
Azure Service Fabric je orchestrátor kontejnerů pro nasazování a správu mikroslužeb v clusteru počítačů. Jednoduchý modul runtime Service Fabric podporuje vytváření bezstavových a stavových mikroslužeb.
Klíčovým rozdílem Service Fabric je robustní podpora vytváření stavových služeb. Můžete použít integrovaný programovací model stavových služeb nebo spustit kontejnerizované stavové služby napsané v libovolném jazyce nebo kódu.
služby Azure Container Instances (ACI) je nejrychlejší a nejjednodušší způsob, jak spustit kontejner v Azure. S ACI nemusíte spravovat virtuální počítače ani přizpůsobovat služby vyšší úrovně.
V případě jednoduchých scénářů orchestrace můžete pomocí Docker Compose definovat a spustit aplikaci s více kontejnery místně. Pak nasaďte kontejnery Dockeru jako skupinu kontejnerů ACI ve spravovaném bezserverovém prostředí Azure. V případě kompletních scénářů orchestrace kontejnerů může ACI integrovat s AKS a vytvářet virtuální uzly pro orchestraci AKS.
azure Spring Apps je plně spravovaná služba připravená pro aplikace Spring Boot. S aplikací Spring Apps se můžete soustředit na vytváření a spouštění aplikací, aniž byste museli spravovat infrastrukturu. Spring Apps je součástí integrované správy životního cyklu a orchestrace, snadného monitorování a úplné integrace s Azure.
Azure Red Hat OpenShift (ARO) podporuje nasazení plně spravovaných clusterů OpenShift v Azure. Spouštění produkčních kontejnerů Kubernetes vyžaduje integraci s architekturami a nástroji, jako jsou registry imagí, správa úložiště, monitorování a DevOps. ARO rozšiřuje Kubernetes tím, že tyto komponenty zkombinuje do jedné kontejnerové platformy jako služby (PaaS).
Přispěvatelů
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autor:
- Veerash Ayyagari | Hlavní softwarový inženýr
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- architektura mikroslužeb ve službě Azure Kubernetes Service (AKS)
- architektura mikroslužeb Advanced Azure Kubernetes Service (AKS)
- CI/CD pro aplikace AKS s využitím služby Azure Pipelines
- Použití bran rozhraní API v mikroslužbách
- referenční architektura Azure Spring Apps