Compute (VM, Container Apps, AKS) — kiedy co

Azure oferuje wiele sposobów uruchomienia kodu. W praktyce wybór sprowadza się do trzech opcji: VM (pełna kontrola), Container Apps (serverless dla kontenerów) i AKS (zarządzany Kubernetes). Dobór właściwej warstwy to kompromis między kontrolą a kosztem operacyjnym.

Virtual Machines (IaaS)

Klasyczna maszyna wirtualna — pełny system operacyjny, pełna kontrola, pełna odpowiedzialność (patchowanie, hardening, skalowanie). Wybieraj VM, gdy:

  • masz aplikację legacy, która nie jest skonteneryzowana,
  • potrzebujesz specyficznego OS, sterowników GPU lub kontroli nad jądrem,
  • migrujesz "lift-and-shift" z on-premise.
az vm create \
  --resource-group rg-zeus-app --name vm-legacy01 \
  --image Ubuntu2204 --size Standard_D2s_v5 \
  --admin-username azureadmin --generate-ssh-keys \
  --public-ip-address ""   # bez publicznego IP — dostęp przez Bastion

Wskazówka: dla wielu identycznych VM użyj Virtual Machine Scale Sets (VMSS) — autoskalowanie i rolling upgrades out-of-the-box.

Azure Container Apps (serverless)

Container Apps uruchamia kontenery bez zarządzania klastrem. Skaluje od zera (scale-to-zero), ma wbudowany ingress, revisions i KEDA do skalowania zdarzeniowego. To najlepszy wybór dla mikroserwisów i API, gdy nie chcesz operować Kubernetesem.

az containerapp create \
  --resource-group rg-zeus-app --name ca-api \
  --environment cae-zeus \
  --image ghcr.io/professnet/zeus-api:1.4.0 \
  --target-port 8080 --ingress external \
  --min-replicas 0 --max-replicas 10

Azure Kubernetes Service (AKS)

AKS to zarządzany Kubernetes — Azure prowadzi control plane, Ty zarządzasz węzłami i obciążeniami. Wybieraj AKS, gdy:

  • masz wiele zespołów i złożone wdrożenia (Helm, operatorzy, service mesh),
  • potrzebujesz pełnego ekosystemu Kubernetes (CRD, GitOps, namespaces),
  • już masz kompetencje k8s w zespole.
az aks create \
  --resource-group rg-zeus-app --name aks-zeus \
  --node-count 3 --enable-managed-identity \
  --network-plugin azure --generate-ssh-keys
az aks get-credentials --resource-group rg-zeus-app --name aks-zeus

Macierz decyzji

KryteriumVMContainer AppsAKS
Kontrola nad OSpełnabrakczęściowa (węzły)
Koszt operacyjnywysokiniskiśredni/wysoki
Scale-to-zeronietaknie (domyślnie)
Krzywa wejścianiskaniskawysoka
Najlepsze dolegacy, GPUAPI, mikroserwisyplatformy, mesh

Jak to widzi ZEUS

ZEUS inwentaryzuje wszystkie te zasoby przez Resource Graph i ARM. Dla VM sprawdza m.in. publiczne IP, status szyfrowania dysków i poziom patchy (przez Defender for Cloud). Dla AKS odczytuje wersję klastra, konfigurację RBAC i czy włączone są kontrole polityk. Skanery kontenerów ZEUS-a analizują też obrazy pod kątem podatności CVE — niezależnie od warstwy compute.

W następnej lekcji: storage i bazy danych — Blob, Files, Azure SQL i PostgreSQL.