πΊοΈ 8-Month Platform Engineering Learning Plan
Author: Augustine Tambe Created: March 4, 2026 Milestones: CKA exam at end of Month 2 | RHCSA exam at Month 5 | Advanced platform skills Months 6β8
Timeline Summary
Month 1 ββββββββββ Linux/Networking/Cloud + CKA 15%β60%
Month 2 ββββββββββ CKA Sprint β EXAM π
Month 3 ββββββββββ RHCSA begins + Terraform
Month 4 ββββββββββ RHCSA deep dive
Month 5 ββββββββββ RHCSA EXAM π + Secrets/Security
Month 6 ββββββββββ Helm + ArgoCD/GitOps
Month 7 ββββββββββ Observability + Policy + Mesh
Month 8 ββββββββββ Advanced topics + Capstone
Weekly Cadence
| Day | Activity |
|---|---|
| MonβThu | Study new concepts (1β2 hours/day) |
| Fri | Hands-on in your work clusters or local Kind cluster |
| Sat | Cert-specific labs (CKA β Killer.sh/KodeKloud, RHCSA β RHEL VM drills) |
| Sun | Review notes, fill gaps, rest |
Resource Stack
| Resource | For What |
|---|---|
| Mumshad Mannambeth (Udemy) | CKA β already in progress (15%) |
| Killer.sh | CKA practice exams (free with registration) |
| KodeKloud | CKA + RHCSA labs |
| Sander van Vugt (OβReilly / Pearson) | RHCSA video course β best instructor |
| Asghar Ghori β RHCSA book | RHCSA deep reference |
| Microsoft Learn AZ-900 path | Cloud fundamentals (free) |
| kubernetes.io/docs | CKA exam reference (only allowed resource) |
| Your own work codebase | Real-world practice β better than any lab |
Month 1 β Linux, Networking & Cloud Fundamentals + CKA Acceleration
Youβre 15% into Mumshadβs course β goal is to be at ~60% by end of this month.
Week 1β2: Linux & Networking Essentials (also RHCSA head start)
- Linux CLI β
grep,awk,sed,find,xargs,jq,yq, pipes, redirection - File system β FHS layout (
/etc,/var,/usr,/tmp),df,du,mount - Permissions β
chmod,chown,umask, SUID/SGID, sticky bit (CKA + RHCSA) - Process management β
ps aux,top/htop,kill, signals,systemctl(RHCSA heavy) - Networking β TCP/IP model, DNS resolution (
dig,nslookup),curl,netstat/ss, ports, firewalls (iptablesbasics) - SSH β Key-based auth,
~/.ssh/config, tunneling, agent forwarding - Shell scripting β Variables, loops, conditionals, functions,
set -euo pipefail
Practice: Write or dissect a real shell script end to end β trace OS detection, package management, and architecture-aware install logic.
Week 3β4: Cloud Fundamentals + CKA Push
Cloud Fundamentals (Azure-focused)
- Cloud models β IaaS vs PaaS vs SaaS, shared responsibility model
- Azure core services:
- Compute β VMs, AKS, Azure Functions (your stack uses all three)
- Networking β VNets, Subnets, NSGs, Load Balancers, Application Gateway, NAT Gateway
- Storage β Blob storage, Storage Accounts (your Terraform state lives here)
- Identity β Azure AD (Entra ID), Service Principals, Managed Identities, Workload Identity
- Security β Key Vault, Defender, RBAC (Subscription β Resource Group β Resource level)
- Azure Government β How it differs from public Azure (sovereign cloud regions)
- Azure CLI β
az login,az aks get-credentials,az keyvault secret list- Practice:
az loginthen explore resources withaz resource list
- Practice:
Resource: Microsoft Learn: Azure Fundamentals (AZ-900 path) β free, self-paced. You donβt need to take the AZ-900 exam, but the material covers exactly what you need.
CKA β Mumshad Course Push (target: 60% complete)
- Cluster architecture & installation
- Core workloads β Pods, ReplicaSets, Deployments
- Services & networking
- Scheduling β taints, tolerations, affinity, nodeSelector
- Do every lab β donβt just watch, type it out
Month 2 β CKA Sprint & Exam π―
Goal: Finish Mumshadβs course + 2 weeks of exam-focused practice β take CKA.
Week 1β2: Complete Mumshadβs Course (60% β 100%)
- Storage β PV, PVC, StorageClasses, volume types
- Security β RBAC, ServiceAccounts, SecurityContexts, NetworkPolicies
- Troubleshooting β Node failures, pod crashes, networking issues, DNS debugging
- Cluster maintenance β
etcdctlbackup/restore, OS upgrades,kubeadm upgrade - Logging & monitoring β
kubectl logs,kubectl top, metrics server - Complete all remaining labs and mock exams in the course
Week 3: Killer.sh + Focused Practice
- Take Killer.sh Practice Exam #1 (comes free with CKA registration)
- Simulate real conditions: 2 hours, one monitor, only kubernetes.io/docs
- Review every wrong answer thoroughly
- Speed drills β Practice imperative commands until theyβre muscle memory:
alias k=kubectl
export do="--dry-run=client -o yaml"
k run nginx --image=nginx $do > pod.yaml
k create deploy web --image=nginx --replicas=3
k expose deploy web --port=80 --type=NodePort
k create configmap cfg --from-literal=key=val
k create secret generic sec --from-literal=pass=s3cret
k create sa mysa
k create role viewer --verb=get,list --resource=pods
k create rolebinding view --role=viewer --serviceaccount=default:mysa- Troubleshooting drills β Practice these scenarios:
- Fix a broken kubelet (check
systemctl status kubelet,/var/log/syslog) - Fix a pod stuck in
CrashLoopBackOfforImagePullBackOff - Fix broken DNS (
kubectl exec busybox -- nslookup kubernetes) - Repair a NetworkPolicy blocking traffic
etcdctl snapshot save/snapshot restore
- Fix a broken kubelet (check
- Learn
kubectl explainβ faster than searching docs during the exam:
kubectl explain pod.spec.containers.livenessProbe
kubectl explain deployment.spec.strategyWeek 4: Final Prep & Exam
- Take Killer.sh Practice Exam #2
- Review the CKA exam curriculum β make sure you can do everything listed
- Exam day tips:
- Set up aliases and autocompletion first (
source <(kubectl completion bash)) - Read every question fully before starting
- Skip questions worth few points if theyβre hard β come back later
- Copy YAML from kubernetes.io docs, donβt write from scratch
- Use
kubectl explaininstead of searching docs - Check your work:
k getthe resource after creating it
- Set up aliases and autocompletion first (
CKA Exam Domains & Weights
| Domain | Weight | Key Topics |
|---|---|---|
| Cluster Architecture | 25% | RBAC, kubeadm, etcd backup, node management |
| Workloads & Scheduling | 15% | Deployments, scaling, resource limits, scheduling |
| Services & Networking | 20% | Services, Ingress, DNS, NetworkPolicies |
| Storage | 10% | PV/PVC, StorageClasses, volume modes |
| Troubleshooting | 30% | Node/pod debugging, logs, cluster component failures |
Practice in your own stack: Spin up a local Kind cluster and use it to practice CKA scenarios. Real cluster experience > theoretical study.
Month 3 β RHCSA Prep Begins + Terraform Fundamentals
Post-CKA recovery month β shift gears to Linux system admin + start IaC.
Week 1β2: RHCSA Core β System Administration Basics
Pick a study resource (recommended: Sander van Vugtβs RHCSA course on OβReilly or Asghar Ghoriβs RHCSA book)
- RHEL basics β Install RHEL/CentOS/Rocky Linux in a VM or container
- Essential tools β File management, text editors (
vi/vimβ mandatory for RHCSA), I/O redirection,manpages -
vimmastery β The RHCSA is entirely CLI-based, you must knowvim:- Normal mode:
dd,yy,p,u,/search,:%s/old/new/g - Insert mode, visual mode, saving/quitting
- Normal mode:
- Users & groups β
useradd,usermod,groupadd,passwd,/etc/passwd,/etc/shadow - File permissions (deep) β Standard perms, ACLs (
setfacl,getfacl), SUID/SGID/sticky bit -
sudoconfiguration β/etc/sudoers,visudo
Week 3β4: Terraform Foundations (Applied to Your Stack)
- Core concepts β Providers, resources, data sources, state, plan/apply cycle
- HCL syntax β Variables, locals, outputs, conditionals (
count,for_each), string interpolation - Modules β Inputs, outputs, composition
- Study how AKS clusters are provisioned via reusable modules
- Study how databases (SQL Server, elastic pools) are managed as modules
- State management β Remote backend (Azure Storage blob),
terraform state list/show/mv/rm - Root module composition β How dev/prod environments are conditionally composed with
count = var.deploy_dev ? 1 : 0 - Terraform workflow:
terraform initβterraform planβterraform apply
Practice: Run terraform plan against a dev environment and read the entire output. Understand what each resource is doing.
Month 4 β RHCSA Deep Dive
Full RHCSA focus β this is the hardest certification month.
Week 1β2: RHCSA Core β Storage, Networking & Services
- Storage management:
- Partitions:
fdisk,gdisk,parted - LVM:
pvcreate,vgcreate,lvcreate,lvextendβ high weight on exam - File systems:
mkfs.xfs,mkfs.ext4,mount,/etc/fstab - Swap:
mkswap,swapon - Stratis and VDO (RHEL 8/9 specific)
- Partitions:
- Networking:
nmcliβ configure connections, static IP, DNS, gatewayip addr,ip route, hostname configuration- Firewall:
firewall-cmdβ zones, services, ports, permanent rules
- Services & boot:
systemctlβ start, stop, enable, disable, mask, statussystemdtargets (multi-user, graphical, rescue, emergency)- Boot process, GRUB2, resetting root password
Week 3β4: RHCSA Core β Security, Automation & Containers
- SELinux β Critical for RHCSA:
- Modes: enforcing, permissive, disabled
getenforce,setenforce,sestatus- Contexts:
ls -Z,chcon,restorecon - Booleans:
getsebool,setsebool -P - Troubleshooting:
audit2why,audit2allow
- Scheduled tasks β
crontab,at, systemd timers - Time services β
timedatectl,chrony - NFS & autofs β Configure NFS mounts, automounting
- Containers with Podman (RHCSA includes this):
podman run,podman build,podman ps- Rootless containers, configuring containers as systemd services
- Shell scripting β Automate tasks with bash (RHCSA may require simple scripts)
RHCSA Exam Domains (EX200)
| Domain | Key Topics |
|---|---|
| Essential Tools | File mgmt, vim, grep, I/O redirection, tar, SSH |
| Operate Running Systems | Boot targets, processes, logs, systemctl |
| Configure Local Storage | Partitions, LVM, fstab, swap, Stratis |
| File Systems | Create/mount, permissions, ACLs |
| Users & Groups | Create, modify, password policies, sudo |
| Security | SELinux, firewall-cmd, SSH key auth |
| Containers | Podman, rootless, systemd integration |
| Networking | nmcli, hostname, firewall |
Month 5 β RHCSA Exam + Secrets & Security in Your Stack
Week 1β2: RHCSA Final Prep & Exam π―
- Full practice exam β Time yourself (2.5 hours), do everything on a fresh RHEL VM
- Rapid-fire drills:
- Reset root password from GRUB
- Create an LVM, extend it, mount persistently
- Configure SELinux context for a non-standard web directory
- Set up
firewall-cmdrules for HTTP/HTTPS - Configure static networking with
nmcli - Create a Podman container running as a systemd service
- Configure autofs for NFS mounts
- Take the RHCSA exam
RHCSA Tips:
- Itβs fully hands-on β no multiple choice
- You get a VM and tasks to complete
- Reboot at least once during the exam to verify persistent configs survive
- SELinux and LVM come up almost every single time
- Read every task completely before starting β some tasks depend on others
Week 3β4: Secrets Management & Security (Your Stack)
- Azure Key Vault β dev and prod vaults, access policies, and secret versioning
- External Secrets Operator (ESO) β The full secret flow:
Azure Key Vault β ClusterSecretStore β ExternalSecret β K8s Secret β Pod env var
- Azure Workload Identity β How pods authenticate to Azure without storing credentials
- Container image signing β Notation, Cosign
- Container scanning β Grype (vulnerabilities), Syft (SBOMs)
- RBAC in AKS β Azure AD groups,
kubelogin, admin context vs user context
Month 6 β GitOps, Helm & ArgoCD
Now that you have Linux + K8s + Cloud certs, go deep on your teamβs GitOps workflow.
Week 1β2: Helm Deep Dive
- Chart structure β
Chart.yaml,values.yaml,templates/, helpers, hooks - Templating β
{{ .Values }},{{ include }},range,if/else,with,tpl - Chart dependencies β
Chart.lock, subcharts - Helm commands β
install,upgrade,rollback,template,lint,test,diff - Study real charts in your codebase:
- A cluster app-of-apps chart for the dev environment
- A cluster chart for the prod environment
- A simpler utility chart (e.g. DB tasks) to learn chart structure from scratch
Week 3β4: ArgoCD & GitOps Mastery
- GitOps principles β Declarative, versioned, automated, self-healing
- ArgoCD objects β Application, AppProject, ApplicationSet
- App-of-Apps pattern β Pipeline deploys Root App β points to a cluster chart β spawns child apps (ESO, cert-manager, istio-gateway, etc.)
- Sync waves & hooks β Control deployment ordering
- Per-environment chart versions β Version files per environment (dev, prod, infra)
- Change version β merge to
mainβ pipeline auto-deploys
- Change version β merge to
- ArgoCD CLI β
argocd app list,argocd app sync,argocd app diff,argocd app history
Practice: Spin up a local Kind cluster, install ArgoCD, explore the UI, and manually sync/rollback apps.
Month 7 β Observability, Policy & Networking
Week 1β2: Observability Stack
- Datadog β Agent (DaemonSet), Operator, APM, logs, metrics, dashboards
- Pod annotations:
ad.datadoghq.com/*for auto-discovery
- Pod annotations:
- Cilium & Hubble β CNI, eBPF-based networking, network policies, flow observability
cilium status,hubble observe- Run Hubble UI to visualize traffic flows
- Kubernetes-native monitoring β
kubectl top pods/nodes, metrics server, resource recommendations
Week 3β4: Policy & Service Mesh
- Kyverno β Policy engine for K8s:
- Validate (block bad configs), Mutate (auto-fix), Generate (create resources)
- Istio / Service Mesh β VirtualServices, Gateways, DestinationRules
- Typical traffic flow: App Gateway β Istio Ingress β Gateway β VirtualService β Service β Pod
- cert-manager β Issuers, ClusterIssuers, Certificates, Letβs Encrypt ACME
- Gateway API β The K8s-native successor to Ingress (your stack deploys these CRDs)
Month 8 β Advanced Platform Engineering & Putting It All Together
Week 1β2: Advanced Infrastructure
- KEDA β Event-driven autoscaling (scale on queue depth, HTTP rate, cron, etc.)
- VPA β Vertical Pod Autoscaler (right-sizing resource requests)
- Descheduler β Rebalancing pods after node changes
- Azure Service Operator (ASO) β Managing Azure resources from inside K8s
- Terraform advanced β
terraform import, state manipulation, drift detection - Azure DevOps pipelines advanced β Write a new pipeline from scratch following your teamβs template pattern
Week 3β4: Capstone β Full Stack Ownership
- End-to-end exercise: Trace a change through the entire system:
- Terraform creates an AKS cluster + Key Vault
- Pipeline deploys cluster components (ArgoCD, ESO, cert-manager, Kyverno)
- ArgoCD syncs the app-of-apps chart
- ESO pulls secrets from Key Vault
- Apps deploy with Istio ingress, TLS certs, and Datadog monitoring
- Build something new: Add a new cluster component end-to-end:
- Terraform module β Helm chart β Values per environment β Pipeline β ArgoCD integration
- Incident simulation: Practice troubleshooting:
- Secret sync failure (ESO β Key Vault connectivity)
- ArgoCD app stuck in
OutOfSync - Pod canβt pull image from ACR
- Ingress not routing traffic (Istio VirtualService misconfigured)
- Terraform state drift
Post-Plan β Transition into MLOps
After Month 8, the goal is to stop being βplatform-onlyβ and become the engineer who can support model delivery, ML infrastructure, and production AI workloads end to end.
Why MLOps Fits Next
- You will already have the right base: Kubernetes, Terraform, GitOps, observability, secrets management, CI/CD, and cloud infrastructure
- MLOps builds on platform engineering, but shifts the application layer toward data pipelines, model training, model serving, and experiment lifecycle management
- This move makes you more valuable because very few engineers can bridge platform reliability and ML delivery well
Phase 1: MLOps Foundations
- Learn the ML lifecycle β data prep, training, evaluation, packaging, deployment, monitoring, retraining
- Python for ML workflows β virtual environments, packaging,
pandas, notebooks, APIs, CLI tooling - Model artifact flow β datasets, feature sets, trained model binaries, registries, reproducibility
- Containers for ML β packaging inference apps, GPU vs CPU considerations, image size, startup time
- Serving basics β REST inference APIs, batch jobs, async workers
Target outcome: Be able to explain the difference between deploying an app and deploying a model-backed service.
Phase 2: Core MLOps Tooling
- MLflow β experiment tracking, model registry, runs, artifacts
- Kubeflow or KServe β understand the Kubernetes-native ML stack
- Model serving patterns β single-model, multi-model, canary rollouts, shadow deployments
- Data and workflow orchestration β start with simple scheduled pipelines, then explore Airflow or Prefect
- Storage for ML workloads β object storage, artifact versioning, dataset handling
- GPU scheduling basics β node pools, requests/limits, taints, tolerations, device plugins
Target outcome: Stand up a minimal model training-to-serving workflow on Kubernetes.
Phase 3: Production ML Operations
- Model observability β latency, throughput, error rate, saturation, model-specific metrics
- Data drift / concept drift β understand what changes in data or model behavior should trigger review
- Secure ML platforms β secret handling, registry access, supply chain concerns, RBAC for ML teams
- CI/CD for ML β separate code deploys from model promotion workflows
- Feature and model promotion β dev β staging β prod validation gates
- Cost awareness β GPU cost, idle training jobs, right-sizing inference workloads
Target outcome: Operate ML systems with the same discipline as platform systems.
Suggested 3-Month MLOps Ramp
Month 9: ML + Python + Model Serving Basics
- Learn Python well enough to build and package a small inference API
- Train or download a small model and serve it with FastAPI
- Containerize it and deploy it to Kubernetes
- Add logging, metrics, health probes, and autoscaling
Month 10: Experiment Tracking + Pipelines
- Stand up MLflow and log experiments, metrics, and model artifacts
- Build a simple training pipeline that outputs a versioned model
- Store artifacts in object storage
- Add a promotion step from βbest runβ to βdeployable modelβ
Month 11: Kubernetes-Native MLOps
- Explore KServe or Kubeflow serving patterns
- Deploy a model with canary or shadow rollout strategy
- Add dashboards and alerts for inference latency and failure rate
- Document an end-to-end operating model for ML workloads on your platform
MLOps Capstone Idea
- Build a small internal ML platform demo:
- Training pipeline produces a model artifact
- MLflow tracks runs and stores the promoted model
- A CI/CD or GitOps flow deploys the model service to Kubernetes
- KServe or a custom FastAPI service exposes inference
- Datadog or Prometheus tracks API and model health
- A rollback path exists for bad model versions
Recommended Learning Stack
| Area | Starting Point |
|---|---|
| Python | FastAPI, pandas, packaging basics |
| Experiment Tracking | MLflow |
| Serving | FastAPI first, then KServe |
| Pipelines | Simple Python jobs β Airflow/Prefect later |
| Model Hosting | Kubernetes + Helm + ArgoCD |
| Observability | Datadog / Prometheus + model-specific metrics |
| Cloud Direction | Azure ML later if your job starts leaning heavily into managed ML services |
Long-Term Outcome
- You become a Platform Engineer with MLOps depth, not just someone who can deploy clusters
- You can support both application platforms and ML delivery platforms
- You position yourself for roles like:
- Senior Platform Engineer
- Cloud Platform Engineer
- MLOps Engineer
- AI Platform Engineer
Contributing to Open Source
Contributing to open source is one of the best ways to accelerate your growth as a platform engineer β you read production-grade code, work with distributed teams, and build a public record of your skills.
Where to Start
Good first-contribution targets for platform engineers:
| Project | Why Itβs Good for PE |
|---|---|
| Kubernetes | Core to everything β docs, issues, and KEPs are all public |
| Helm | Chart tooling β great for someone learning Helm internals |
| ArgoCD | GitOps engine β active community, many good first issues |
| External Secrets Operator | Directly relevant to secrets management work |
| Kyverno | Policy engine β well-documented contribution process |
| Cilium | CNI/eBPF networking β higher bar but very rewarding |
| cert-manager | TLS automation β approachable Go codebase |
| OpenTofu | Open-source Terraform fork β active and welcoming |
How to Find Issues
# Search GitHub for beginner-friendly issues
label:"good first issue" + label:"help wanted"
# Good starting searches on GitHub:
# kubernetes/kubernetes good first issue
# argoproj/argo-cd good first issue
# external-secrets/external-secrets good first issueContribution Types (Easiest β Hardest)
- Documentation fixes β typos, unclear explanations, missing examples. No code required, high value.
- Adding examples β write a usage example for an undocumented feature.
- Bug reports β a well-written, reproducible bug report is a real contribution.
- Bug fixes β pick a confirmed bug with a clear reproduction path.
- Feature implementation β tackle a
good first issuefeature request. - Core feature work β after you know the codebase well.
Workflow
# 1. Fork and clone
gh repo fork argoproj/argo-cd --clone
# 2. Create a branch
git checkout -b fix/docs-typo-in-sync-policy
# 3. Make your change, then run linters/tests
make lint
make test
# 4. Commit with a clear message following the project's convention
git commit -m "docs: fix typo in sync policy documentation"
# 5. Push and open a PR
gh pr create --title "docs: fix typo in sync policy documentation"Tips
- Read
CONTRIBUTING.mdfirst β every project has one. Follow it exactly. - Start with docs or tests β easier to get merged, you learn the codebase, maintainers notice you.
- Join the Slack/Discord β Kubernetes, ArgoCD, Cilium all have active Slack workspaces. Say hi before opening a PR.
- Donβt ghost your PR β if a maintainer requests changes, respond within a few days.
- One thing at a time β small, focused PRs get merged. Large PRs get abandoned.
- Your day job is a superpower β real operational experience with these tools gives you insight most contributors donβt have. Use it.
Top 10 Things to Internalize Early
taskβ Run it often. Itβs your command menu for everything.- Always specify
--contextβ Wrong context = deploying to wrong cluster = bad day. - Dev first, prod second β Always.
- Never commit secrets β
terraform.tfvars,.envfiles stay local. - Read the pipeline template β Your team likely has a shared Helm deploy pipeline template. Read it.
- K9s is your best friend β Run it daily to understand whatβs running in your clusters.
kubectl get events --sort-by=.lastTimestampβ First thing to check when debugging.- Understand the secret flow β Key Vault β ESO β K8s Secret β Pod env var.
- ArgoCD UI β Check sync status before and after every deployment.
- Read the
docs/folder β If your team has internal docs, read them. Theyβre worth more than any tutorial.
Good luck on the CKA and RHCSA β youβve got this! π