Sdílet prostřednictvím


Nasazení aplikace eShopOnContainers do Azure

Tip

Tento obsah je výňatek z eBooku, Architekting Cloud Native .NET Applications for Azure, který je k dispozici na webu Docs pro .NET nebo jako soubor PDF zdarma ke stažení, který si můžete přečíst offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Aplikaci eShopOnContainers je možné nasadit na různé platformy Azure. Doporučeným přístupem je nasazení aplikace do služby Azure Kubernetes Services (AKS). Helm, nástroj pro nasazení Kubernetes, je k dispozici ke snížení složitosti nasazení. Volitelně můžou vývojáři implementovat Azure Dev Spaces pro Kubernetes, aby zjednodušili proces vývoje.

Azure Kubernetes Service

Prvním krokem k hostování eShopu v AKS je vytvoření clusteru AKS. K tomu můžete použít Azure Portal, který vás provede požadovanými kroky. Můžete také vytvořit cluster z Azure CLI a postarat se o povolení řízení přístupu na základě role (RBAC) a směrování aplikací. Dokumentace k eShopOnContainers podrobně popisuje postup vytvoření vlastního clusteru AKS. Po vytvoření můžete ke clusteru přistupovat a spravovat ho z řídicího panelu Kubernetes.

Teď můžete aplikaci eShop nasadit do clusteru pomocí Nástroje Helm.

Nasazení do služby Azure Kubernetes Service pomocí Helmu

Helm je nástroj správce balíčků aplikací, který funguje přímo s Kubernetes. Pomáhá definovat, instalovat a upgradovat aplikace Kubernetes. I když je možné jednoduché aplikace nasadit do AKS pomocí vlastních skriptů rozhraní příkazového řádku nebo jednoduchých souborů nasazení, složité aplikace můžou obsahovat mnoho objektů Kubernetes a využívat výhod Helmu.

Aplikace helm používají textové konfigurační soubory označované jako charty Helm, které deklarativní popisují aplikaci a konfiguraci v balíčcích Helm. Grafy používají standardní soubory ve formátu YAML k popisu související sady prostředků Kubernetes. Jsou verze spolu s kódem aplikace, který popisují. Charty Helm se liší od jednoduchých po složité v závislosti na požadavcích instalace, které popisují.

Helm se skládá z klientského nástroje příkazového řádku, který využívá grafy Helm a spouští příkazy do serverové komponenty s názvem Tiller. Tiller komunikuje s rozhraním API Kubernetes, aby se zajistilo správné zřizování kontejnerizovaných úloh. Helm spravuje cloudově nativní výpočetní nadace.

Následující soubor yaml představuje šablonu Helmu:

apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.app.svc.marketing }}
  labels:
    app: {{ template "marketing-api.name" . }}
    chart: {{ template "marketing-api.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  type: {{ .Values.service.type }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: http
      protocol: TCP
      name: http
  selector:
    app: {{ template "marketing-api.name" . }}
    release: {{ .Release.Name }}

Všimněte si, jak šablona popisuje dynamickou sadu dvojic klíč/hodnota. Při vyvolání šablony se hodnoty uzavřené ve složených závorkách načítají z jiných konfiguračních souborů založených na yaml.

Grafy helmu eShopOnContainers najdete ve složce /k8s/helm. Obrázek 2–6 ukazuje, jak jsou různé komponenty aplikace uspořádané do struktury složek, kterou helm používá k definování a správě nasazení.

The eShopOnContainers helm folderObrázek 2–6 Složka helm eShopOnContainers.

Každá jednotlivá komponenta se instaluje helm install pomocí příkazu. EShop obsahuje skript "deploy all" (Nasadit vše), který prochází a instaluje komponenty pomocí příslušných chartů Helm. Výsledkem je opakovatelný proces s verzí aplikace ve správě zdrojového kódu, který může každý člen týmu nasadit do clusteru AKS pomocí příkazu skriptu s jedním řádkem.

Upozorňujeme, že verze 3 Helm oficiálně odstraňuje potřebu součásti serveru Tiller. Další informace o tomto vylepšení najdete tady.

Azure Functions a Logic Apps (bez serveru)

Ukázka eShopOnContainers zahrnuje podporu sledování online marketingových kampaní. Funkce Azure slouží ke sledování podrobností marketingové kampaně pro dané ID kampaně. Místo vytvoření úplné mikroslužby je jedna funkce Azure Functions jednodušší a dostatečná. Azure Functions má jednoduchý model sestavení a nasazení, zejména pokud je nakonfigurovaný tak, aby běžel v Kubernetes. Nasazení funkce se skriptuje pomocí šablon Azure Resource Manageru (ARM) a Azure CLI. Tato služba kampaně není určená pro zákazníky a vyvolá jednu operaci, což z ní dělá skvělého kandidáta pro Azure Functions. Funkce vyžaduje minimální konfiguraci, včetně nastavení identifikátoru URI základního identifikátoru URI databáze připojovací řetězec dat a image. Azure Functions nakonfigurujete na webu Azure Portal.