Struttura del corso
Modulo 1: Design dei Microservizi
• Un buon confine per il microservizio
• Utilizzo del Domain-Driven Design (DDD)
• Alternative ai confini del dominio aziendale (volatilità, dati, tecnologia, organizzativo)
• Scomporre il Monolite
• Decomposizione prematura
• Decomposizione per strato
• Utilizzo di pattern di decomposizione (Strangler, Parallel Run, Feature Toggle)
• Aspetti della decomposizione dei dati (prestazioni, integrità, transazioni)
Modulo 2: Ottimizzazione di Docker e del Runtime
• Scelta dell'immagine base corretta
• Minimizzazione del numero di strati
• Utilizzo delle build multi-stage
• Ottimizzazione delle immagini (ordinamento degli argomenti multilinea, ecc.)
• Sfruttamento della cache di build
• Blocco delle versioni delle immagini (pinning)
• Affinamento dell'allocazione delle risorse
• Pratiche sicure per i container
• Configurazione del runtime per le prestazioni
Modulo 3: Kubernetes e Strategie di Rilascio
Panoramica sulle Deployment di Kubernetes
• Creazione ed esecuzione di una Deployment iniziale
• Opzioni di Deployment in Kubernetes
Esecuzione di aggiornamenti Rolling
• Comprensione dell'aggiornamento Rolling
• Creazione ed esecuzione di un aggiornamento Rolling
• Rollback della Deployment
Esecuzione di Canary Deployments
• Comprensione delle Canary Deployments
• Creazione ed esecuzione di una Canary Deployment
Esecuzione di Blue-Green Deployments
• Comprensione delle Blue-Green Deployments
• Creazione ed esecuzione di una Blue-Green Deployment
Gestione di Jobs e CronJobs
• Creazione di un Job e di un CronJob
Esecuzione di attività di monitoraggio e troubleshooting
• Tecniche di troubleshooting con kubectl
Modulo 4: Automazione ed Efficienza Operativa
Utilizzo di Python per automatizzare attività comuni in Kubernetes
• Utilizzo di Python per eseguire operazioni amministrative in Kubernetes
• Utilizzo di Python per definire oggetti di configurazione
• Utilizzo di Python per creare oggetti Deployment
• Monitoraggio degli eventi Kubernetes tramite Python
• Scalatura di una Deployment utilizzando Python
Comprensione delle sfide dell'automatizzazione dei rilasci
• Configurazione dichiarativa con Kubernetes
• Gestione dell'integrità della configurazione
Utilizzo dell'approccio GitOps per automatizzare le distribuzioni
• Principi del GitOps
• Introduzione a Flux
• Installazione di Flux su un cluster Kubernetes
Configurazione di Flux per distribuzioni automatizzate
• Utilizzo delle notifiche
• Struttura del repository Source
Gestione degli aggiornamenti delle applicazioni con Image Automation
• Aggiornamento della Deployment dell'applicazione con Flux
• Scansione dei repository di immagini container per i tag
• Definizione della policy per la selezione dell'ultima versione dell'immagine
• Configurazione di Flux per eseguire aggiornamenti automatici delle immagini
Modulo 5: Osservabilità e Chiarezza sulle Cause Root
Capacità di logging e tracing in Kubernetes
• Perché logging e tracing sono importanti
• Accesso ai log di Kubernetes
• Log dei Pod e dei Container
• Log del Control Plane
• Utilizzo delle risorse di Nodi e Pod
Raccolta e analisi dei log
• Aggregazione dei log
• Visualizzazione dei log
Distributed Tracing in Kubernetes
• Cos'è il distributed tracing
• Utilizzo di OpenTelemetry
• Strumenti per il distributed tracing
• Strumentazione di un'applicazione
• Utilizzo del tracing per individuare problemi di prestazioni
Monitoraggio con Prometheus e Grafana
• Concetti di osservabilità
• Strumenti di monitoraggio
• Utilizzo dell'Instrumentation di Prometheus
Casi d'uso avanzati per il logging
• Elaborazione dei log
• Filtraggio e arricchimento dei log
• Event Sourcing
Modulo 6: Simulazione delle Crisi del Cluster e Risposta agli Incidenti
• Comprensione dei diversi tipi di guasti in un ambiente cluster
• Simulazione di fallimenti dei nodi
• Scenario di Pod Eviction ed esaurimento delle risorse
• Problemi di rete
• Fallimenti DNS per la gestione dei timeout delle applicazioni
• Simulazione di un'interruzione del API Server
• Simulazione di alto traffico per la stabilità del sistema
• Fallimenti dello storage
• Errori di configurazione
• Comprensione delle procedure di segnalazione degli incidenti
Modulo 7: Supporto al Troubleshooting tramite Intelligenza Artificiale
• Vantaggi dell'Intelligenza Artificiale Generativa per Kubernetes
• Architettura della CLI K8sGPT
• Installazione della CLI K8sGPT
• Comandi e utilizzo di K8sGPT
• Utilizzo degli Analyzers di K8sGPT (podAnalyzer, pvcAnalyzer, rsAnalyzer, ecc.)
• Analisi del cluster tramite K8sGPT
• Analisi dei problemi in tempo reale con K8sGPT
• Operator in-cluster per K8sGPT
Requisiti
- Conoscenza di base della riga di comando Linux
- Esperienza nello sviluppo di applicazioni o nell'amministrazione di sistemi
- Familiarità con i container (concetti Docker)
- Conoscenza di base dei concetti di Kubernetes (pod, deployments, services)
- Comprensione generale dell'architettura software (ad esempio API, servizi)
Pubblico target:
- Ingegneri DevOps
- Ingegneri Site Reliability (SRE)
- Sviluppatori Backend / Software che lavorano con microservizi
- Ingegneri Cloud e Platform Engineers
-
Amministratori di sistema che si orientano verso ambienti Kubernetes
Recensioni (2)
Craig era estremamente coinvolto nella formazione, sempre assicurandosi che prestassimo attenzione, adattando gli esempi alle nostre attività quotidiane e fornendo sempre una risposta quando sollecitato, anche se l'informazione non era inclusa nella presentazione.
Ecaterina Ioana Nicoale - BOOKING HOLDINGS ROMANIA SRL
Corso - DevOps Foundation®
Traduzione automatica
Alto livello di impegno e conoscenza del formatore
Jacek - Softsystem
Corso - DevOps Engineering Foundation (DOEF)®
Traduzione automatica