L’Academy DevOps/SRE solo tramite natural language

Introduzione


Il Manifesto GDT - prima la teoria, poi il linguaggio naturale

/ Perché il linguaggio naturale

Il linguaggio naturale per le operazioni quotidiane

Anche le operazioni più semplici richiedono spesso più linguaggi: Bash, YAML, HCL, Jinja, PromQL, SQL, Python, oltre alla sintassi specifica di ogni strumento. Il nostro approccio è svolgere queste operazioni descrivendole alla macchina in linguaggio naturale, in modo chiaro e preciso.

Quando il linguaggio naturale non basta a descrivere la forma che vogliamo dare alle cose, scendiamo in deep dive: teoria, internals e codice. Per questo i corsi partono dalla teoria.

Il linguaggio naturale in pratica / Prompting sistemistico avanzato

Un esempio di come funziona un laboratorio: lo studente non digita comandi, scrive istruzioni precise e verifica il risultato alla luce della teoria.

Reti · Bonding e VLAN

Su web01 e web02 (Rocky Linux 9) crea un bond0 active-backup con ens3 ed ens4, poi sopra la VLAN 120 con 10.20.120.11/24 e 10.20.120.12/24, gateway 10.20.120.1. MTU 9000 solo sulla VLAN. Usa NetworkManager e rendi tutto persistente. Non toccare eth0, che porta il traffico di management. Mostrami il piano prima di applicare qualsiasi cosa e prepara un rollback automatico nel caso perda la connettività.

Cosa verifichi

  • Modalità del bond e monitoraggio dei link nei profili NetworkManager generati dalla macchina.
  • Coerenza dell'MTU tra bond, VLAN e porta dello switch, perché i jumbo frame non vengano scartati in silenzio.
  • Che un checkpoint ti protegga davvero dal rimanere chiuso fuori dagli host.

Troubleshooting · Kubernetes

Dalle 10:40 circa una richiesta su dieci dai pod di checkout verso payments.internal finisce in un timeout di 5 secondi. Non riavviare e non modificare nulla. Capisci se il problema è il DNS, una NetworkPolicy o il servizio stesso: confronta latenza ed errori di CoreDNS, controlla l'uso della tabella conntrack sui nodi e cerca drop di pacchetti UDP. Voglio prove, non ipotesi.

Cosa verifichi

  • Perché proprio 5 secondi fa pensare a un retry DNS (timeout del resolver) e non all'applicazione.
  • Come ndots e search domain moltiplicano le query per ogni risoluzione.
  • Le race di conntrack su UDP, e se le prove raccolte sostengono davvero la conclusione.

Troubleshooting · Linux

db01 ha un load average di 40 ma le CPU sono quasi inattive. Senza modificare nulla, trova quali processi sono in uninterruptible sleep, su cosa sono in attesa e se il collo di bottiglia è il disco locale o il mount NFS. Raccogli due minuti di dati e riassumili.

Cosa verifichi

  • Che il load average conta anche i task in stato D: ecco perché CPU inattive e load 40 possono convivere.
  • Attese e utilizzo del disco rispetto alle ritrasmissioni NFS e ai tempi di risposta del server.
  • Che il riassunto corrisponda ai dati grezzi e che nulla sia stato riavviato o rimontato.

Edge · HAProxy

Pubblica app.example.it tramite HAProxy con terminazione TLS e HSTS, e limita /login a 20 richieste al secondo per IP client. Valida la configurazione prima del reload, ricarica senza far cadere le connessioni e tieni pronta la configurazione precedente per il rollback.

Cosa verifichi

  • Le stick-table e le regole di tracking che la macchina scrive per il rate limit.
  • Che il controllo della configurazione avvenga prima del reload, non dopo.
  • Cosa succede alle connessioni aperte durante il reload e come funzionerebbe il rollback.

Chi siamo


Due parole su di noi. Come azienda e come community di esperti.

Ci conosciamo da molti anni e abbiamo deciso di mettere insieme le nostre competenze in un progetto comune. Garanti del Talento è un'iniziativa per formare giovani in un ambiente tecnico e specializzato, a partire dalla nostra esperienza di lavoro.

Abbiamo iniziato come System Engineers, lavorando soprattutto con sistemi operativi basati sul Linux Kernel. Negli anni abbiamo scritto codice per lavoro e per passione, affiancato clienti in progetti complessi e contribuito a progetti open source, alcuni dei quali creati da noi.

Con GDT formiamo nuovi professionisti in DevOps, Ops e SRE.

Open Source

Argomenti e laboratori {dgt_oss01}

--

La filosofia Open Source

--

Chi ha fatto la storia

--

Le principali licenze software

--

Le community

--

Contribuire ai progetti

--

Alcuni progetti di rilievo

--

Libri e documentari

--

Assegnazione dei progetti Open Source

Reti

Argomenti e laboratori {dgt_net02}

--

Modelli di riferimento OSI e TCP

--

Il livello fisico

--

Il livello Data Link

--

Il livello di trasporto

--

Il livello applicativo

--

Sicurezza di rete

--

Packet sniffing

--

Pacchetti TCP e UDP in C

--

Programmi server/client in C

La shell Linux

Argomenti e laboratori {dgt_bash03}

--

Storia della shell Bash

--

Invocare la shell e VIM

--

Exit status dei comandi

--

Sintassi

--

Funzioni

--

Variabili

--

Espressioni aritmetiche

--

Cronologia dei comandi

-

Autocompletamento e personalizzazione della shell

--

Job control

--

Opzioni della shell

--

Esecuzione dei comandi

--

Manipolazione di file e dati

Linux

Argomenti e laboratori {dgt_sys04}

--

La storia di Linux

--

Le distribuzioni GNU/Linux

--

Debian GNU/Linux

--

Rocky Linux

--

Permessi

--

Pacchetti (RPM & DEB)

--

Reti

--

Processi e servizi

--

Memoria e risorse

--

Dischi e filesystem

--

Gestione e visualizzazione dei log

--

Sicurezza

--

Scripting e automazione

--

Monitoring

--

Backup e restore

--

NFS e Samba

--

Apache Web Server

LFS

Argomenti e laboratori {dgt_lfs05}

--

LFS Intro

--

Preparazione del laboratorio

--

Linux From Scratch Setup

--

Linux From Scratch Build

--

Osservare la distribuzione Linux di GDT

DevOps

Argomenti e laboratori {dgt_devops06}

--

La cultura DevOps

--

Git e GitLab

--

HAProxy e Nginx

--

Jenkins e Rundeck

--

Repository di artefatti - Nexus

--

Introduzione ad Ansible

--

Ansible: comandi ad hoc

--

Ansible: variabili, cicli e template

--

Ansible: playbook, ruoli e moduli

--

OpenTofu (fork di Terraform)

--

Qualità del codice - SonarQube

--

Introduzione a DevSecOps

--

OpenBao (fork di Vault)

Container

Argomenti e laboratori {dgt_k8s07}

--

Introduzione ai container

--

Container engine e runtime

--

Introduzione a Kubernetes

--

Helm, Kustomize e CI/CD

--

K8S Networking

--

K8S Storage

--

K8S Security

--

K8S Tuning

--

K8S Monitoring

--

Chaos Engineering su Kubernetes

--

Distribuzioni enterprise

SRE

Argomenti e laboratori {dgt_sre08}

--

Introduzione a SRE

--

Incident Management

--

Service Level Agreement

--

Error budget, metriche e monitoraggio

--

Alta affidabilità

-

Sistemi distribuiti e protocolli di consenso

--

Chaos Engineering e osservabilità

--

Scalare le infrastrutture

Il mondo del lavoro

Argomenti e laboratori {dgt_wrk09}

--

Lavorare in contesti enterprise

--

Cosa significa lavorare nelle IT operations

--

Reperibilità

--

Gli Accolli (easter egg)

--

Task Management

--

Lavoro di squadra

--

Blogging e community

--

Orientamento al lavoro

--

Collaborare con GDT

Strumenti didattici

L'infrastruttura al servizio dei nostri studenti

Hypervisor e namespace K8s

Collaborazione nel team

Infrastruttura didattica (HLD)