Azure Container Services: le novità di luglio e agosto 2023

Appuntamento doppio questo mese che copre le novità del mese di luglio ed agosto riguardanti gli Azure Container Services. Il rilascio di questo riepilogo, vuole fornire una panoramica complessiva delle principali novità del mese, 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) 

La versione 1.27 di AKS è ora disponibile

Microsoft ha rilasciato in general availability il supporto di AKS per Kubernetes 1.27.

La nuova versione è la prima ad utilizzare il nuovo statement di supporto che prevede un supporto long term di 24 mesi.

Sono presenti più di 50 nuove funzionalità fra le principali:

  • Migliore gestione dell’autoscaling dei pod, che ora permette tramite l’HPA (Horizontal Pod Autoscaler) nativo di eseguire autoscaling basato sull’utilizzo delle risorse dei singoli Pod
  • Miglioramenti nella gestione del CRI (Container Runtime Interface) fra cui la principale è la possibilità di eseguire più container all’interno dello stesso POD con container runtime differenti
  • Supporto migliorato per il Networking che ora permette di esporre direttamente con un IP pubblico servizi interni di K8s
  • Migliore scalabilità e performance
  • La possibilità di eseguire snapshot dei PV (persistent volume) e PVC (persistent volume claims) è stata introdotta, occorrerà verificare se anche in AKS sarà introdotta trattandosi di una feature che K8s ha classificato come graduated beta, una specie di public preview.

Conseguentemente la versione 1.24 è ora fuori supporto, abbiamo 30 giorni di grace period per migrare ad una versione supportata.

Per maggiori dettagli sulle nuove feature, sulle componenti deprecate e rimosse e su quelle passate a Stable è possibile consultare direttamente la documentazione di k8s a questa pagina.

Azure Application Gateway per Container

E’ ora in public preview Azure Application Gateway for Containers, una nuova proposta per andare incontro alle esigenze di ripubblicazione sicura dei workload ospitati su microservizi, al momento disponibile solo per AKS.

La nuova offerta coniuga le funzionalità di Application Gateway e AGIC (Application Gateway Ingress Controller).

Rispetto ad AGIC queste sono le feature principali:

  • Prestazioni: tempi “near real time” di convergenza a seguito di rimozioni/aggiunte di nuovi pod/rotte/servizi
  • Scalabilità: migliori limiti rispetto ad  AGIC superando 1400 pod backend e 100 listeners
  • Deployment: deploy delle risorse semplificato tramite  ARM, PowerShell, CLI, Bicep e Terraform oppure esiste la possibilità di definire tutta la configurazione all’interno di Kubernetes e lasciare che Application Gateway for Containers gestisca il resto
  • Supporto API del gateway: la prossima evoluzione nella definizione della rete di servizi Kubernetes attraverso interfacce espressive, estensibili e orientate ai ruoli.
  • Distribuzione del traffico divisa: abilita le strategie di distribuzione blue-green e il routing attivo/attivo o attivo/passivo.

Azure RedHat Openshift (ARO) 

La versione 4.12 di ARO è ora disponibile

E’ ora disponibile la versione 4.12 di ARO.

Novità passata in sordina molto importante, la versione 4.12 di ARO disponibile dal 19 agosto è la prima a supportare il nuovo ciclo di vita che prevede un minimo di 14 mesi di supporto. Notizia importantissima perchè permette una migliore gestione dei workload e del loro aggiornamento, specialmente in scenari business critical.

Le versioni precedenti continueranno ad avere lo stesso ciclo di vita, di fatti la versione 4.10 è ora fuori supporto e abbiamo fino al 19 settembre per migrare ad una versione supportata.

Azure Container Apps 

Supporto di Azure Key Vault per la gestione dei Secret

E’ ora possibile referenziare secret contenuti all’interno di un Azure Key Vault da una Azure Container App. Per accedere al Key Vault verrà utilizzata la Managed Identity della Container App.

Session affinity

Azure Container Apps ora supporta la session affinity, nota anche come sticky session, per i workload basati su HTTP. Questa funzione è ora general available.

L’affinità di sessione consente di indirizzare tutte le richieste di un singolo client alla stessa replica di Container Apps. È utile per i carichi di lavoro stateful che richiedono l’affinità di sessione.

Le app per container in modalità di single revision supportano l’affinità di sessione. Quando è abilitata, Container Apps aggiunge automaticamente un cookie alle risposte HTTP per tracciare la replica utilizzata dal client.

Disponibili gli Init Container

La funzione init container di Azure Container Apps è ora generalmente disponibile. Gli Init container sono containers specializzati che vengono eseguiti fino al completamento prima dell’avvio dei containers di applicazioni in una replica e possono contenere utilità o script di configurazione non presenti nell’immagine dell’applicazione del contenitore. Gli init containers sono utili per eseguire logiche di inizializzazione come la configurazione degli account, l’esecuzione di script di impostazione e la configurazione dei database.

Introdotto CORS

Il supporto di Azure Container Apps per Cross Origin Resource Sharing (CORS) è ora generalmente disponibile.

Per impostazione predefinita, le richieste effettuate attraverso un browser a un dominio che non corrisponde al dominio di origine della pagina vengono bloccate. La funzione CORS consente a origini specifiche di effettuare chiamate alla propria applicazione attraverso il browser. Ora i clienti di Azure Container Apps possono facilmente impostare Cross Origin Resource Sharing dal portale o tramite la CLI.

Maggiori informazioni sono disponibili al seguente indirizzo

Azure Monitor Container insights

Maggiore granularità  per ottimizzare i costi

Chiunque abbia usato Container Insights per monitorare i workload basati su microservizi sa che il fattore costo non è trascurabile, in particolare per workload critici e molto utilizzati.

Container insights amplia l’anteprima pubblica delle impostazioni di ottimizzazione dei costi, consentendo ora una terza dimensione per la regolazione delle impostazioni di raccolta dei dati di Container Insights, con una configurazione per tabella. Ora è possibile selezionare individualmente le tabelle di dati da ingerire nel loro workspace Log Analytics:

  • Perf
  • InsightsMetrics
  • ContainerInventory
  • ContainerNodeInventory
  • KubeNodeInventory
  • KubePodInventory
  • KubePVInventory
  • KubeServices
  • KubeEvents

Le configurazioni per tabella possono essere attivate tramite ARM, CLI e Azure Portal. Gli utenti del portale potranno scegliere tra le tabelle di dati in bundle definite come segue:

  • Performance
  • Logs and events
  • Workloads, deployments, and HPAs
  • Persistent volumes

Questa funzione continua a supportare l’offerta di anteprima pubblica, che permetteva agli utenti di specificare la frequenza di raccolta dei dati tra 1 e 30 minuti con incrementi di un minuto. Gli utenti possono scegliere di includere o escludere determinati namespaces dall’ingestione dei dati.

Valutazione di Azure

Per testare e valutare in modo gratuito i servizi offerti da Azure è possibile accedere a questa pagina.