A Natural Language DevOps/SRE Academy

Introduction


The GDT Manifesto - theory first, then natural language

/ Why natural language

Natural language for everyday operations

Even simple operations often involve several languages: Bash, YAML, HCL, Jinja, PromQL, SQL, Python, plus the specific syntax of each tool. Our approach is to carry out these operations by describing them to the machine in natural language, clearly and precisely.

When natural language is not enough to describe the shape we want to give things, we go deep dive: theory, internals and code. This is why the courses start from theory.

Natural language in practice / Advanced systems prompting

An example of how a lab works: the student does not type commands, writes precise instructions and checks the result against the theory.

Networking · Bonding & VLAN

On web01 and web02 (Rocky Linux 9), create an active-backup bond0 using ens3 and ens4, then VLAN 120 on top of it with 10.20.120.11/24 and 10.20.120.12/24, gateway 10.20.120.1. MTU 9000 only on the VLAN. Use NetworkManager and make it persistent. Do not touch eth0, which carries the management traffic. Show me the plan before applying anything, and set up an automatic rollback in case I lose connectivity.

What you verify

  • Bond mode and link monitoring in the NetworkManager profiles the machine generates.
  • MTU consistency across bond, VLAN and switch port, so jumbo frames are not silently dropped.
  • That a checkpoint really protects you from locking yourself out of the hosts.

Troubleshooting · Kubernetes

Since 10:40, about one request in ten from the checkout pods to payments.internal ends in a 5-second timeout. Don't restart or change anything. Find out whether it is DNS, a NetworkPolicy or the service itself: compare CoreDNS latency and error rates, check conntrack usage on the nodes and look for UDP drops. Give me evidence, not guesses.

What you verify

  • Why exactly 5 seconds points to a DNS retry (resolver timeout), not to the application.
  • How ndots and search domains multiply the queries for every lookup.
  • Conntrack races on UDP, and whether the evidence collected really supports the conclusion.

Troubleshooting · Linux

db01 has a load average of 40 but the CPUs are almost idle. Without changing anything, find which processes are in uninterruptible sleep, what they are waiting on, and whether the bottleneck is the local disk or the NFS mount. Collect two minutes of evidence and summarize it for me.

What you verify

  • That load average also counts tasks in D state, which is why idle CPUs can coexist with load 40.
  • Disk wait and utilization versus NFS retransmissions and server response times.
  • That the summary matches the raw data, and nothing was restarted or remounted.

Edge · HAProxy

Publish app.example.it through HAProxy with TLS termination and HSTS, and limit /login to 20 requests per second per client IP. Validate the configuration before reloading, reload without dropping connections, and keep the previous configuration ready for rollback.

What you verify

  • The stick-table and tracking rules the machine writes for the rate limit.
  • That the configuration check runs before the reload, not after.
  • What happens to open connections during the reload, and how the rollback would work.

About Us


A brief description of us. Both as a company and as a community of experts.

We have known each other for many years and decided to bring our skills together in a common project. Garanti del Talento is an initiative to train young people in a technical, specialized environment, drawing on our work experience.

We started out as System Engineers, working mainly with operating systems based on the Linux Kernel. Over the years we have written code for work and for passion, supported clients on complex projects, and contributed to open-source projects, some of which we created.

With GDT we train new professionals in DevOps, Ops and SRE.

Open Source

Topics and Labs {dgt_oss01}

--

Open Source Philosophy

--

People who have made history

--

The main software licenses

--

Communities

--

Contributions

--

Some relevant projects

--

Books and documentaries

--

Open Source projects assignment

Networking

Topics and Labs {dgt_net02}

--

OSI and TCP Reference Model

--

The Physical Layer

--

The Data Link Layer

--

The Transport Layer

--

The Application Layer

--

Network Security

--

Packet Sniffing

--

TCP and UDP packets in C

--

Server / Client programs in C

Linux Shell

Topics and Labs {dgt_bash03}

--

Story of the Bash shell

--

Invoking Shell and VIM

--

Command exit status

--

Syntax

--

Functions

--

Variables

--

Arithmetic expressions

--

Command History

-

Autocompletion and shell customization

--

Job Control

--

Shell Options

--

Command Execution

--

File and data manipulation

Linux

Topics and Labs {dgt_sys04}

--

The Story of Linux

--

GNU/Linux distributions

--

Debian GNU/Linux

--

Rocky Linux

--

Permissions

--

Package (RPM & DEB)

--

Networking

--

Processes and services

--

Memory and resources

--

Disks and filesystems

--

Logs management and visualization

--

Security

--

Scripting and automation

--

Monitoring

--

Backup and restore

--

NFS and Samba

--

Apache Web Server

LFS

Topics and Labs {dgt_lfs05}

--

LFS Intro

--

Lab preparation

--

Linux From Scratch Setup

--

Linux From Scratch Build

--

Observe the GDT Linux distribution

DevOps

Topics and Labs {dgt_devops06}

--

The DevOps Culture

--

Git and GitLab

--

HAProxy and Nginx

--

Jenkins and Rundeck

--

Artifact Repos - Nexus

--

Ansible Introduction

--

Ansible Ad Hoc Commands

--

Ansible Vars, Loops and Templating

--

Ansible Playbooks, Roles and Modules

--

OpenTofu (Terraform fork)

--

Code Quality - SonarQube

--

DevSecOps Introduction

--

OpenBao (Vault fork)

Containers

Topics and Labs {dgt_k8s07}

--

Containers intro

--

Container Engines and Runtimes

--

Kubernetes introduction

--

Helm, Kustomize and CI/CD

--

K8S Networking

--

K8S Storage

--

K8S Security

--

K8S Tuning

--

K8S Monitoring

--

Chaos Engineering on Kubernetes

--

Enterprise Distributions

SRE

Topics and Labs {dgt_sre08}

--

SRE Introduction

--

Incident Management

--

Service Level Agreements

--

Error Budget / Metrics & Monitoring

--

High Availability

-

Distributed systems and consensus protocols

--

Chaos Engineering and observability

--

Scaling infrastructures

Work Setup

Topics and Labs {dgt_wrk09}

--

Work in the enterprise context

--

What it means to work in IT operations

--

On-call availability

--

The Accolli (Easter Egg)

--

Task Management

--

Team Working

--

Blogging and community

--

Orientation to work

--

Collaboration with GDT

Training Assets

The infrastructure serving our students

Hypervisor & K8s Namespace

Team collaboration

HLD Training Infrastructure