Udostępnij przez


Wdrażanie aplikacji eShopOnContainers na platformie Azure

Wskazówka

Ta zawartość jest fragmentem e-książki, Architektura Cloud Native .NET Applications for Azure, dostępnej w .NET Docs lub jako bezpłatny plik PDF do pobrania, który można czytać offline.

Natywne aplikacje .NET dla chmury Azure - okładka miniatury eBooka.

Aplikację eShopOnContainers można wdrożyć na różnych platformach Platformy Azure. Zalecaną metodą jest wdrożenie aplikacji w usługach Azure Kubernetes Services (AKS). Helm, narzędzie wdrażania Kubernetes, jest dostępne w celu zmniejszenia złożoności wdrażania. Opcjonalnie deweloperzy mogą zaimplementować usługę Azure Dev Spaces dla platformy Kubernetes, aby usprawnić proces programowania.

Azure Kubernetes Service

Aby hostować eShop w AKS, pierwszym krokiem jest utworzenie klastra AKS. W tym celu możesz użyć witryny Azure Portal, która przeprowadzi Cię przez wymagane kroki. Możesz również utworzyć klaster z poziomu interfejsu wiersza polecenia platformy Azure, aby włączyć Role-Based kontroli dostępu (RBAC) i routingu aplikacji. Dokumentacja eShopOnContainers zawiera szczegółowe instrukcje tworzenia własnego klastra AKS. Po utworzeniu możesz uzyskać dostęp do klastra i zarządzać nim z poziomu pulpitu nawigacyjnego platformy Kubernetes.

Teraz możesz wdrożyć aplikację eShop w klastrze przy użyciu programu Helm.

Wdrażanie w usłudze Azure Kubernetes Service przy użyciu programu Helm

Helm to narzędzie menedżera pakietów aplikacji, które współpracuje bezpośrednio z platformą Kubernetes. Ułatwia definiowanie, instalowanie i uaktualnianie aplikacji Kubernetes. Chociaż proste aplikacje można wdrażać w usłudze AKS za pomocą niestandardowych skryptów interfejsu wiersza polecenia lub prostych plików wdrażania, złożone aplikacje mogą zawierać wiele obiektów Kubernetes i korzystać z programu Helm.

Za pomocą programu Helm aplikacje zawierają pliki konfiguracji oparte na tekście, nazywane wykresami helm, które deklaratywnie opisują aplikację i konfigurację w pakietach helm. Wykresy używają standardowych plików w formacie YAML do opisania powiązanego zestawu zasobów Kubernetes. Są wersjonowane razem z kodem aplikacji, który opisują. Charty Helm mogą być proste lub złożone, w zależności od wymagań instalacji, które opisują.

Program Helm składa się z narzędzia klienckiego wiersza poleceń, które korzysta z diagramów Helm i przesyła polecenia do składnika serwera o nazwie Tiller. Tiller komunikuje się z interfejsem API Kubernetes w celu zapewnienia poprawnego skonfigurowania konteneryzowanych obciążeń. Helm jest zarządzany przez Fundację Cloud Native Computing.

Poniższy plik yaml przedstawia szablon programu Helm:

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 }}

Zwróć uwagę, jak szablon opisuje dynamiczny zestaw par klucz/wartość. Po wywołaniu szablonu wartości ujęte w nawiasy klamrowe są pobierane z innych plików konfiguracji opartych na języku yaml.

Diagramy Helm eShopOnContainers znajdziesz w folderze /k8s/helm. Rysunek 2–6 przedstawia sposób organizowania różnych składników aplikacji w strukturę folderów używaną przez program Helm do definiowania wdrożeń zarządzanych i zarządzania nimi.

Folder eShopOnContainers helm Rysunek 2-6. Folder Helm eShopOnContainers.

Każdy składnik jest instalowany przy użyciu helm install polecenia . EShop zawiera skrypt "wdróż wszystko", który wykonuje pętle i instaluje składniki przy użyciu odpowiednich wykresów helm. Wynikiem jest powtarzalny proces, wersjonowany wraz z aplikacją w systemie kontroli źródła, który każdy członek zespołu może wdrożyć do klastra AKS za pomocą polecenia skryptu składającego się z jednego wiersza.

Uwaga / Notatka

Wersja 3 programu Helm oficjalnie usuwa potrzebę składnika serwera Tiller. Aby uzyskać więcej informacji na temat tego ulepszenia, zobacz Dlaczego Tiller nie ma w programie Helm 3?.

Azure Functions i Logic Apps (bezserwerowe)

Przykład eShopOnContainers obejmuje obsługę śledzenia kampanii marketingowych online. Funkcja platformy Azure służy do śledzenia szczegółów kampanii marketingowej dla danego identyfikatora kampanii. Zamiast tworzyć pełną mikrousługę, pojedyncza funkcja platformy Azure jest prostsza i wystarczająca. Usługa Azure Functions ma prosty model kompilacji i wdrażania, szczególnie w przypadku skonfigurowania do uruchamiania na platformie Kubernetes. Wdrażanie funkcji jest skryptowe przy użyciu szablonów usługi Azure Resource Manager (ARM) i interfejsu wiersza polecenia platformy Azure. Ta usługa kampanii nie jest skierowana do klienta i wywołuje jedną operację, dzięki czemu jest doskonałym kandydatem do usługi Azure Functions. Funkcja wymaga minimalnej konfiguracji, w tym danych parametrów połączenia bazy danych i podstawowych ustawień identyfikatora URI obrazu. Usługę Azure Functions można skonfigurować w witrynie Azure Portal.