Nel mese di febbraio e marzo 2024 sono state annunciate da parte di Microsoft diverse novità riguardanti gli Azure Container Services. Il rilascio di questo riepilogo vuole fornire una panoramica complessiva delle principali novità, in modo da rimanere aggiornati su questi argomenti ed avere i riferimenti necessari per condurre ulteriori approfondimenti.
Le applicazioni moderne sono sempre più frequentemente basate su microservizi ed i container costituiscono un elemento importante per la creazione di architetture applicative agili, scalabili ed efficienti. Microsoft è uno dei principali provider che consente l’esecuzione di container a livello enterprise nel cloud pubblico. La seguente tabella mostra le diverse tecnologie container, che sono contemplate in questa serie di articoli ed i loro principali casi d’uso:
Container Service | Principali casi d’uso |
Azure Kubernetes Service (AKS) | Distribuisce e ridimensiona i container su un cluster Kubernetes gestito |
Azure Red Hat OpenShift (ARO) | Distribuisce e ridimensiona i container su un cluster Red Hat OpenShift gestito |
Azure Container Apps | Crea e distribuisce app e microservizi utilizzando container serverless |
Azure Functions | Esegui codice serverless basato su eventi con un’esperienza di sviluppo end-to-end |
Web App for Containers | Esegui app Web containerizzate su Windows e Linux |
Azure Container Instances | Avvia container con isolamento dell’hypervisor |
Azure Service Fabric | Distribuisce e gestisce app sempre attive, scalabili e distribuite |
Azure Container Registry | Crea, archivia, protegge e replica immagini e artefatti dei container |
Azure Kubernetes Service (AKS)
Application Gateway for Containers
Application Gateway for Containers è la fusione di Application Gateway + Application Gateway Ingress Controller.
Fornisce funzionalità di bilanciamento del carico delle applicazioni (layer 7) e di gestione dinamica del traffico per i carichi di lavoro in esecuzione in un cluster Kubernetes garantendo tempi di convergenza quasi real-time per riflettere l’aggiunta/rimozione di pod, rotte, sonde e altre configurazioni di bilanciamento del carico nella configurazione di Kubernetes.
Di seguito le principali nuove feature:
- Performance: Migliorate le performance migliorando i tempi di convergenza quasi in tempo reale per riflettere l’aggiunta/rimozione di pod, rotte, sonde e altre configurazioni di bilanciamento del carico all’interno della configurazione yaml di Kubernetes.
- Scalability: Maggiore scalabilità rispetto ad AGIC, superando 1400 pod backend e 100 listeners.
- Deployment: Distribuzione delle risorse tramite ARM tramite ARM, PowerShell, CLI, Bicep e Terraform oppure usando la configurazione (yaml) all’interno di Kubernetes
- Weighted / Split traffic distribution: Abilita le strategie di distribuzione blue-green e il routing attivo/attivo o attivo/passivo.
- Features – Supporto per Custom Health Probes, URL Redirect, URL / Header Rewrite.
- Controller High Availability – In caso di guasto di un nodo, le modifiche all’interno del cluster continueranno a essere propagate alla rete.
- Gateway API v1 – Estende all’Application Gateway la modalità di gestione degli accessi basato sui ruoli forniti da Gateway API attraverso interfacce espressive ed estensibili
L’architettura di Application Gateway for Containers è riassunta nella figura seguente:
L’addon di osservabilità della rete opera sia su data-plane Cilium che Non-Cilium. Conferisce funzionalità per DevOps e SecOps garantendo un modo centralizzato per monitorare i problemi di rete nel cluster per gli amministratori di rete del cluster, gli amministratori di sicurezza del cluster e gli ingegneri DevOps. Quando l’addon di osservabilità della rete è abilitato, consente la raccolta e la conversione di metriche utili nel formato Prometheus, che possono quindi essere visualizzate in Grafana. Ci sono due opzioni disponibili per l’utilizzo di Prometheus e Grafana in questo contesto:
- Prometheus e Grafana gestiti da Azure
- Prometheus e Grafana forniti dall’utente.
Prometheus e Grafana gestiti da Azure
Questa opzione prevede l’utilizzo di un servizio gestito fornito da Azure. Il servizio gestito si occupa dell’infrastruttura e della manutenzione di Prometheus e Grafana, consentendoti di concentrarti sulla configurazione e visualizzazione delle tue metriche. Questa opzione è conveniente se preferisci non gestire l’infrastruttura sottostante. In alternativa, puoi scegliere di configurare le tue istanze di Prometheus e Grafana. In questo caso, sei responsabile della fornitura e della gestione dell’infrastruttura necessaria per eseguire Prometheus e Grafana. Installa e configura Prometheus per raccogliere le metriche generate dall’addon di osservabilità della rete e memorizzarle. Allo stesso modo, Grafana deve essere configurato per connettersi a Prometheus e visualizzare i dati raccolti.