Filters
How to search
  • Plain words find names, texts and examples.
  • "two words" finds the exact phrase.
  • --name or -x finds an option.
  • #word looks only inside commands.
  • @grep finds lessons and labs that use grep.
  • Filters: cat:network · in:labs · in:notes · level:rhcsa · ch:8 · root:yes. Put ! before a word to leave it out. OR between words means one of them.
  • ↑ ↓ to move · Enter to open · Esc to close · / to search

Chapter 12Name in the course: Put it together

Put the tools together in one DevOps stack

Knowing 62 tools one by one is not the goal. Teams want people who join them into a delivery system that is fast and reliable. This chapter shows one reference stack and one change flowing through it — a good target for a home lab and a portfolio project.

  • 4 Lessons
  • 36 Commands

$ run as a normal user# run as root (or with sudo)

12.1

Build the reference stack

One small app ("shop") from commit to production.

LayerChoiceTools
Code and reviewGitHub, protected maingit, gh
BuildMakefile + multi-stage Dockerfilemake, go / npm / mvn, docker or buildah
CIGitHub Actions (tested with act)act, gh
InfraAzure or AWS from codeterraform / tofu, terragrunt, ansible, packer
ClusterAKS / EKS (cloud) or k3s (lab)az / eksctl, kubectl, helm, kustomize
DeliveryGitOpsargocd or flux, yq
EdgeIngress + TLS, canarynginx (ingress-nginx) or traefik, istioctl
ObserveMetrics, logs, traces, alertspromtool, grafana-cli, logcli, otelcol, node_exporter
TestSmoke and loadcurl, k6
OperateServers and runnerssystemctl, journalctl, ssh, tmux

12.2

Follow one change through the stack

What happens when you change one line of code.

  1. You push a branch and open a PR with gh pr create; CI runs make lint test in 3 minutes.
  2. After review and merge, CI builds the image once (docker build), tags it with the commit and pushes it.
  3. CI sets the new tag in the GitOps repo with yq or kustomize edit set image.
  4. argocd syncs staging; a k6 smoke test with thresholds runs against staging.
  5. A pull request promotes the same image tag to production; Istio sends 10 % of traffic to it first.
  6. Grafana shows errors and latency per version; if the error rate rises, git revert brings the old version back.

12.3

Start small in the home lab

One weekend per step.

  1. 3 VMs with Vagrant (or a small cloud account) and Ansible for the base setup.
  2. k3s with 1 server + 2 agents, or kind on a laptop; Traefik as ingress.
  3. A small Go or Node app with a Makefile, Dockerfile and GitHub Actions (test it with act).
  4. Argo CD from a GitOps repo with Kustomize overlays for dev and prod.
  5. kube-prometheus-stack + Loki; one dashboard and three alerts.
  6. Terraform (or OpenTofu) for the cloud part, state in a storage account.
  7. A k6 test in the pipeline that fails when p95 latency is over 300 ms.

At work

Write a README with a diagram and "what I learned" for each step, and link it from your CV — see my DevOps projects.

Commands in this lesson

12.4

Answer the common interview questions

Questions you will hear, and the tool behind each answer.

QuestionShort answer
How do you deploy without downtime?Rolling update with readiness probes; canary with Istio or Argo Rollouts
How do you roll back?Helm rollback or git revert in the GitOps repo
How do you manage many environments?Kustomize overlays / Helm values; Terragrunt for infra
How do you keep builds the same everywhere?Lock files, pinned versions, multi-stage Docker builds, build once
A pod is in CrashLoopBackOff. What do you do?kubectl describe, kubectl logs --previous, events
How do you know the release is healthy?Golden signals in Grafana, alerts on error rate, k6 smoke test

Remember

Tools change; the habits stay: small changes, everything as code, build once, automate the boring parts, watch what runs, and practise the rollback.

All commands in this chapter