Frontend Labs
⋯

Phase 2 — Intermediate Operations (Days 31–60)

Week 5: Kubernetes — Advanced Workloads & Networking

Topics:

  • StatefulSets, DaemonSets, Jobs, CronJobs
  • Ingress controllers (NGINX Ingress, Traefik)
  • Network policies
  • Persistent Volumes, PVCs, StorageClasses
  • Helm: install, upgrade, rollback, write your own chart
  • Kustomize: base + overlays pattern

Hands-on Labs:

  • Deploy a StatefulSet for Postgres with PVC
  • Install NGINX Ingress; route traffic to two services by path
  • Package the sample app as a Helm chart with values.yaml overrides
  • Apply a NetworkPolicy that restricts pod-to-pod traffic

Week 6: Observability — Logs & Metrics

Goal: Follow what's happening in a live system; detect and diagnose issues.

Topics:

  • The three pillars: Logs, Metrics, Traces
  • Prometheus: scrape configs, PromQL basics, alerting rules
  • Grafana: dashboards, data sources, alert notifications
  • Node Exporter, kube-state-metrics, cAdvisor
  • Log aggregation: Loki + Promtail stack (or EFK: Elasticsearch + Fluentd + Kibana)
  • kubectl logs --previous, stern for multi-pod tailing
  • Distributed tracing concept: OpenTelemetry, Jaeger (overview)
  • SLIs, SLOs, error budgets — the language of reliability

Hands-on Labs:

  • Deploy kube-prometheus-stack via Helm; import K8s dashboard in Grafana
  • Write a PromQL query: CPU usage per pod, memory limits hit
  • Set up an alert rule: fire when pod restarts > 3 in 10 minutes
  • Deploy Loki + Promtail; search app logs from Grafana
  • Instrument the sample app with a /metrics endpoint (use prom-client or prometheus_client)

Resources:

  • Observability Engineering by Charity Majors, Liz Fong-Jones, George Miranda
  • Prometheus docs: prometheus.io/docs

Week 7: CI/CD Pipelines

Goal: Automate build → test → containerize → deploy with no manual steps.

Topics:

  • CI/CD concepts: pipeline stages, artifact promotion, environment gates
  • GitHub Actions: workflows, jobs, steps, secrets, reusable workflows
  • GitLab CI (optional if org uses it): .gitlab-ci.yml
  • Pipeline patterns: build on PR, deploy to staging on merge to main, deploy to prod on tag
  • Image tagging strategy: sha, semver, latest (avoid latest in prod)
  • GitOps with ArgoCD: App of Apps pattern, sync policies, auto-rollback on drift
  • Secret management in pipelines: GitHub Secrets, HashiCorp Vault, AWS Secrets Manager

Hands-on Labs:

  • Build a GitHub Actions pipeline: lint → test → docker build/push → deploy to kind
  • Add image vulnerability scanning step (trivy); fail on CRITICAL
  • Set up ArgoCD; connect it to a GitOps repo; deploy sample app via ArgoCD
  • Implement branch-based environment promotion: dev → staging → prod namespaces
  • Store a DB password in Vault or AWS Secrets Manager; inject it via External Secrets Operator

Week 8: Rollback Strategies

Goal: Know exactly how to safely and quickly undo bad deployments.

Topics:

  • Kubernetes rollout rollback: kubectl rollout undo
  • Deployment history and revision tracking
  • Blue/Green deployments
  • Canary deployments with Argo Rollouts or Flagger
  • Feature flags as a rollback mechanism (LaunchDarkly concept)
  • Helm rollback: helm rollback <release> <revision>
  • ArgoCD sync rollback: reverting Git commit + ArgoCD sync
  • Database migration rollback strategies (Flyway, Liquibase)
  • Incident runbooks: define your rollback decision tree

Hands-on Labs:

  • Deploy a broken image version; execute kubectl rollout undo; verify recovery
  • Install Argo Rollouts; implement a canary: 10% → 50% → 100% traffic shift
  • Simulate a bad Helm release; run helm rollback
  • Write a 1-page rollback runbook for the sample app

Generated from k8s-docker-plan.md · 8 Oct 2026 16:36