I container sono una tecnologia che ha impattato notevolmente la distribuzione degli applicativi, dei database e dei servizi negli scenari virtualizzati, siano essi di tipo public o private cloud. Garantiscono indipendenza dall'hosting e affidabilità nella distribuzione, togliendoci il brutto compito di distribuire i binari manualmente e, molto spesso, a commettere errori. Dato il numero elevato di container, gli orchestrator permettono di gestire le istanze e le dimensioni dei container, gestendo automaticamente bilanciamenti di carico ed eventuali down dei nodi che si possono presentare. All'interno di Microsoft Azure disponiamo quindi di un servizio di nome Azure Container Service (ACS) che offre i principali orchestratori, come Kubernetes e DC/OS e Docker Swarm, per disporre di un cluster dove istanziare i nostri container.
Sono così leggeri e flessibili da prestarsi anche per altri scenari, come per esempio il testing, necessità nelle quali non necessitiamo delle funzioni avanzate offerte da un ochestrator, ma semplicemente vogliamo mettere in moto uno o più container. Azure Container Instance (ACI) è il servizio giusto per questa esigenza, perché con pochi semplici passi ci permette di istanziare uno o più container all'interno della stessa macchina.
Questa operazione è possibile per esempio direttamente dal portale, andando nella relativa sezione. Facendo nuova istanza ci viene proposto un wizard per indicare un nome del container, il percorso pubblico o privato e se vogliamo esporre pubblicamente il container.

Possiamo poi indicare informazioni basilari della macchina, quali CPU e RAM, quali porte esporre ed eventuali variabili d'ambiente.

Concludendo il wizard otteniamo in pochi secondi il nostro container funzionante che risponderà direttamente al DNS name label specificato, come per esempio ricciolo.westeurope.azurecontainer.io. Dal portale la gestione possiamo poi di monitorare i consumi ed eventualmente cancellare il gruppo.

Possiamo fare altrettanto anche da riga di comando, come per esempio da CLI.
az container create -g group --name ricciolo --image kitematic/hello-world-nginx --ports 80 --os-type Linux --cpu 1 --memory 1 --dns-name-label ricciolo
Lo scopo di ACI è quello di essere immediato nel fornire un'istanza del container ed altrettanto veloce nel distruggerla, dato che il pricing principalmente si basa sul tempo (al secondo) di utilizzo per la RAM e le CPU utilizzate.
Sebbene abbiamo parlato di group, in realtà fino ad ora abbiamo inserito un solo container. Possiamo inserire più container e condividere le stesse risorse e la stessa rete, a patto di usare porte diverse. Purtroppo il portale e CLI non supportano questa possibilità ed è necessario sfruttare ARM. Per ulteriori informazioni rimandiamo alla documentazione ufficiale: https://docs.microsoft.com/en-us/azure/container-instances/container-instances-container-groups
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Definire lo stile CSS in base alle dimensioni del container
Utilizzare le collection expression in C#
Elencare le container images installate in un cluster di Kubernetes
Sfruttare il portale Azure per creare script di automazione
Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Determinare lo stato di un pod in Kubernetes
Abilitare automaticamente Dependabot in tutti i repository di una organizzazione su GitHub
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Organizzare i moduli sfruttando CommonJS
I più letti di oggi
- .NET Conference Italia 2023 - Milano e Online
- Utilizzare database e servizi con gli add-on di Container App
- Evitare la script injection nelle GitHub Actions
- Reactive form tipizzati con modellazione del FormBuilder in Angular
- Eseguire attività basate su eventi con Azure Container Jobs
- Utilizzare le collection expression in C#
- Registrare servizi multipli tramite chiavi in ASP.NET Core 8
- Eseguire query verso tipi non mappati in Entity Framework Core
- Reactive form tipizzati con FormBuilder in Angular
- Eseguire attività pianificate con Azure Container Jobs