Azure DevOps e Kubernetes
Descrizione
DevOps è una pratica che migliora la collaborazione dei processi di sviluppo (Dev) e operativi (Ops). Azure DevOps è un set di strumenti e servizi di Microsoft che fornisce una piattaforma per l'integrazione e la distribuzione continue del software. Supporta i team implementando l'efficienza in tutte le attività di sviluppo software utilizzando le sue soluzioni basate su DevOps, come Boards, Pipelines e altro.
I partecipanti impareranno poi come impostare e gestire un ambiente container su scala di produzione usando Kubernetes. Il corso, della durata di 40 ore, si propone di formare sviluppatori software in grado di operare in un ambiente Azure DevOps Kubernetes Services, gestendo tutto il ciclo di vita del software.
L’approccio formativo prevede una continua interazione tra docente e discenti, e l’alternanza di illustrazione di contenuti con esercitazioni pratiche assistite. Verranno fornite delle dispense sui contenuti e dei riferimenti a documenti ufficiali di Microsoft.
Obiettivi Raggiunti
Al termine del corso gli studenti saranno in grado di:
- Installare e configurare gli strumenti di Azure DevOps necessari per lo sviluppo del software.
- Creare applicazioni aziendali e valutare i processi di sviluppo correnti sulle soluzioni Azure DevOps.
- Gestire i team in modo più efficiente e accelerare i tempi di implementazione del software.
- Adottare pratiche di sviluppo DevOps all'interno dell'organizzazione
- Configura e gestisci Kubernetes su AKS
- Distribuire, gestire e ridimensionare un cluster Kubernetes
- Distribuire applicazioni containerizzate (Docker) in Azure
Target
Amministratori di Sistema, Sviluppatori e Ingegneri DevOp
Prerequisiti
- Buone doti di programmazione in ambiente Microsoft
- Conoscenza dei Database
- Basi di conoscenza delle metodologie agili
Programma Corso
Azure – concetti generali.
- Risorse, Zone, Aree Geografiche, Opzioni di disponibilità, Set di disponibilità.
- Identità e Role Based Access Control (RBAC)
- Infrastructure as a Service – IaaS.
- Platform as a Service – PaaS.
- Software as a Service – SaaS.
- Calcolo, Archiviazione, Reti Virtuali, VPN, Bilanciamento del carico.
- Sicurezza.
- Containers – concetti generali.
- Kubernetes – concetti generali.
- I Containers in Azure.
Azure Kubernetes Service – concetti di base:
- Descrizione del servizio e benefici;
- Architettura generale:
- Container Registry,
- Control Plane (Api Server, Scheduler, Etcd, Control Manager),
- Nodo (kubelet, Pod e ReplicaSet, kube-proxy, relazioni con Vnet e Storage)
- Api Calls.
- Networking:
- Cluster IP, Node Port, Load Balancer, DNS;
- Networking di base usando kubertnet;
- Networking evoluto usando CNI (Azure Container Networking Interface);
- Storage:
- Volumi (emptyDir, secret, configMap);
- Volumi persistenti;
- classi di archiviazione (default, managed-premium, azurefile, azurefilepremium);
- Modello di Richieste per i Pods di Volumi persistenti specificando le classi di archiviazione.
- Ridimensionamento (manuale, automatico, usando i Virtual Nodes).
- Concetti generali di distribuzione.
- Concetti di StatefulSet e DaemonSet.
- Spazio dei nomi (default, kube-system,kube-public).
- Concetti generali di sicurezza e strumenti.
Creazione di un Cluster Azure Kubernetes Service – esempi pratici:
- Generalità sulla fornitura del servizio;
- Creazione tramite Azure Portal;
- Creazione tramite CLI;
- Creazione tramite PowerShell;
- Ispezione ed analisi tramite i comandi kubectl.
Distribuire sul Cluster Azure Kubernetes Services – esempi pratici
- Creare un Container per un’applicazione Asp .Net Core;
- Creazione del Registry dei Container in Azure;
- Installare l’App containerizzata nel Registry;
- Creazione di un manifesto kubertentes usando YAML che includa il Load Balancer;
- Installare l’applicazione e testare il risultato usando kubectl ed il browser;
- Installare l’applicazione usando Helm Charts ed il browser.
Gestione di un Cluster Azure Kubernetes Services
- Concetti generali sulla gestione.
- Ridimensionare il cluster;
- Configurare i Volumi di dati;
- Configurare la rete;
- Aggiornare il cluster;
- Aggiornare il sistema operativo dei nodi;
- Usare il portale di Azure.
Monitorare il servizio.
- Azure Monitor per i container.
- Visualizzare i dati del contenitore in tempo reale.
- Visualizzare il Master Components Logs.
- Visualizzare i kubelet logs.
Usare Serverless Kubernetes.
- Generalità sul servizio e sui Virtual Nodes.
- Creare l’ambiente usando KEDA (Kubernetes Event-driven Scaling).
- Testare l’ambiente con un’applicazione Asp .Net Core.
- Costruire e lanciare Funzioni di Azure.
Panoramica su “Windows Container” in Azure Kubernetes Services.
- Generalità.
- Esempio Asp .Net Core.
Azure DevOps
- Principi e concetti chiave.
- Implementazione in Azure (Board, Repos, Pipeline, Test Plan, Artifact, Marketplace).
- Creazione di un progetto e gestione.
- Pipelines (concetti ed esempi pratici):
- Agenti (Microsoft, Self-hosted, Containers),
- Scelta del tipo di agente,
- Il linguaggio YAML (Scalars, Collections and lists,Dictionaries,Document structure, Complex Objects definitions),
- Creazione pipeline di build e pipeline multi-stage (sviluppo, test, release/produzione) con e senza approvazione.
- Creazione di una pipeline di release per “Continuos Deployment”.
- Usare gli artefatti.
- Azure DevOps per Azure Kubernet Service – “Continuos Integration Pipeline”.
Linee guida generali per la progettazione di un ambiente specifico.