DevOps
Build, ship, and operate software with modern DevOps tooling.
Tutorials
Grafana Dashboards and Prometheus Alert Rules
Connect Grafana to Prometheus, provision the data source as code, build a first panel, and define an alert rule.
Prometheus Monitoring Basics with Docker Compose
Run Prometheus locally, configure scrape targets, and learn the first PromQL queries for monitoring.
Terraform Modules, count and for_each, Import, and Moved Blocks
Organize reusable code with modules, create many resources with loops, adopt existing infrastructure, and refactor safely.
Terraform State, Remote Backends, and Protecting Secrets
Understand what state is, why it must not go in Git, and how to share it safely with a remote backend and locking.
Terraform Variables, Outputs, and Locals
Make configurations reusable with typed, validated variables, computed locals, and outputs, and learn the order in which values are set.
Terraform: Infrastructure as Code and Your First Configuration
Learn the Terraform workflow of write, plan, and apply with a safe, free exercise that needs no cloud account.
Jenkinsfile in Depth: Stages, Credentials, Parameters, and Post Actions
Write a realistic declarative pipeline kept in Git, with conditions, parallel stages, secure credentials, and cleanup.
Jenkins: Install with Docker and Create Your First Pipeline
Run Jenkins locally in Docker, finish the setup wizard, and create and run a pipeline job.
GitHub Actions: Environments, Approvals, and Reusable Workflows
Build a staged deployment pipeline with environment protection and required reviewers, and remove duplication with reusable workflows.
GitHub Actions: Build and Push a Docker Image to GitHub Container Registry
Automate image builds on every push, tag them sensibly, and publish to ghcr.io using the built-in GITHUB_TOKEN.
GitHub Actions: Matrix Builds, Caching, Artifacts, and Secrets
Test across multiple versions at once, speed up runs with caching, keep build outputs, and use secrets and permissions safely.
GitHub Actions: Your First CI Workflow
Create a workflow that builds and tests your project on every push and pull request, and learn to read the results.
Helm Basics: Package and Deploy Kubernetes Applications
Install, upgrade, and roll back applications with Helm, customize them with values, and create your first chart.
Kubernetes Health Probes, Resource Limits, and Autoscaling
Make applications reliable with readiness, liveness, and startup probes, set resource requests and limits, and scale automatically with the Horizontal Pod Autoscaler.
Kubernetes ConfigMaps and Secrets: Configuring Applications Safely
Separate configuration from images with ConfigMaps, handle sensitive values with Secrets, and understand what Secrets do and do not protect.
Kubernetes Deployments, Services, and Rolling Updates
Run an app with a Deployment, expose it with a Service, scale it, update it safely, and learn how traffic reaches it from outside.
Kubernetes Core Concepts and Your First Local Cluster
Learn the building blocks of Kubernetes and create a local cluster with kind to practice safely.
Docker Volumes, Networking, and Container Security Basics
Persist data with volumes, connect containers with user-defined networks, publish ports safely, and harden your containers.
Docker Compose: Running Multi-Container Applications
Define an app and its database in one compose.yaml, with health checks, volumes, environment files, and profiles.
Docker: Writing Better Dockerfiles and Multi-Stage Builds
Build smaller, faster, safer images with layer caching, .dockerignore, multi-stage builds, a non-root user, and a health check.
Git Branching Strategies and the Pull Request Workflow
Compare trunk-based development, GitHub flow, and Git Flow, and learn a clean feature-branch and pull request routine.
DevOps Fundamentals: Culture, Lifecycle, and CI/CD Explained
Understand what DevOps really means, the delivery lifecycle, the difference between CI, continuous delivery, and continuous deployment, and how to measure success.
Docker Container Basics: Your First Container
Understand images, containers, and the Docker CLI commands you'll use every day.