Configurare App contenitore di Azure
In questa unità si apprenderà come creare un ambiente di App contenitore di Azure e un database di Azure per PostgreSQL usando l'interfaccia della riga di comando di Azure. Configurare quindi l'applicazione Quarkus in modo che si connetta al database remoto anziché a quello locale.
Sono disponibili diverse destinazioni per la distribuzione di un'applicazione Quarkus in Azure: da IaaS a FaaS. App contenitore di Azure si trova tra PaaS e FaaS. È più simile a un modello PaaS perché non forza l'utente in un modello di programmazione specifico ed è possibile controllare le regole in base alle quali aumentare e ridurre il numero di istanze. D'altra parte, presenta alcune caratteristiche serverless, ad esempio il ridimensionamento a zero, il ridimensionamento basato su eventi e un modello di determinazione prezzi al secondo.
App contenitore si basa su servizio Azure Kubernetes (AKS). Include un’integrazione approfondita con KEDA (scalabilità automatica guidata dagli eventi per Kubernetes), Dapr (runtime di applicazioni distribuite) e Envoy (un proxy di servizio progettato per applicazioni native del cloud). La complessità sottostante è astratta, quindi non è necessario configurare il servizio Kubernetes, la distribuzione, l'ingresso o i manifesti del volume. Si ottiene un'API semplice e un'interfaccia utente per configurare l'applicazione in contenitori. A causa di questa semplificazione, si ha meno controllo di quanto si abbia con il servizio Azure Container.
Nell’App contenitore le applicazioni devono essere incluse in un contenitore Docker. L’App contenitore supporta i contenitori Docker compilati con Dockerfiles o con Jib. Il contenitore deve essere disponibile in un registro contenitori. App Contenitore supporta Registro Azure Container, Docker Hub e Registro Contenitori GitHub. Dopo che l'immagine dell'applicazione è disponibile in un registro, App contenitore supporta la distribuzione da portale di Azure, interfaccia della riga di comando di Azure, GitHub Actions e Azure DevOps.
App contenitore offre le funzionalità seguenti.
- Revisioni: Controllo delle versioni automatico che consente di gestire il ciclo di vita dell'applicazione delle app contenitore.
- Controllo traffico: Capacità di suddividere il traffico HTTP in ingresso tra più revisioni per distribuzioni blu/verde e test A/B.
- Ingresso: Configurazione di ingresso HTTPS semplice. Non è necessario preoccuparsi di DNS o certificati.
- Scalabilità automatica: Usare tutti i trigger di scalabilità supportati da KEDA per ridimensionare l'app in base alle metriche esterne.
- Segreti: Segreti condivisi tra contenitori, regole di scalabilità e sidecar Dapr.
- Monitoraggio: Output standard e errore standard che vengono scritti automaticamente in Log Analytics.
- Dapr: Integrazione Dapr per le app contenitore. Abilitare questa integrazione usando un flag semplice.
Nell'esercizio successivo verranno presentati i seguenti concetti.
- Ambiente: Limite di sicurezza avanzato intorno a un gruppo di app contenitore. Le app vengono distribuite in una singola rete virtuale, possono comunicare facilmente tra loro e scrivere i log in un'unica area di lavoro di Log Analytics. Un ambiente può essere confrontato con uno spazio dei nomi Kubernetes.
- App contenitore: Un gruppo di contenitori (un pod) che viene distribuito e ridimensionato insieme. Condividono uno spazio su disco singolo e una rete.
- Revisione: Snapshot non modificabile di un'app contenitore. Le nuove revisioni vengono create automaticamente e sono utili per le strategie di reindirizzamento del traffico HTTP, ad esempio test A/B.
A questo punto si creerà un ambiente app contenitore per vedere come funzionano questi elementi.