Linux / Bash scripting

Easy Medium Hard
Basic bash commands
aliases, .bashrc/.zshrc ,
interactive vs non interactive shells Process Management
Cron jobs
File transfer - ftp, scp
File permissions
Creating your own bash script - variables, loops, conditionals, functions
args in bash scripts
stderr, stdout, File descriptors, piping
grep
Creating a CLI in Node.js

Projects

  1. Create a script that ssh's into a VM and pull the latest code and restarts it
  2. Do the same using ssh2

VMs/EC2/GCP VMs

easy medium hard
What are VMs?
Creating a VM in various cloud providers. Specs, pricing …
GUI vs clis for creating VMs Keypairs and ssh’ing into VMs
Deploying a non containerized app to a VM
Process management
Reverse proxies
Certificate management
Load balancers

ASGs/MIG

Easy Medium Hard
What is autoscaling, why do you need it?
Images, Target groups, ASGs, LBs, Autoscaling policies
MIG Internals

Containerization

What is a container
What is docker
Docker vs other container runtimes
How to dockerize your app, WORKDIR, CMD, RUN, ENV, COPY, ARG
Volumes and networks
Publishing to dockerhub, other registries
Running a docker container in a VM, exposing it over the internet
Multi stage builds
docker-compose

ECS (Warming up for k8s)

easy medium hard
What is ECS, common use cases
ECR vs Dockerhub
Setting up Task definitions
Serverless vs EC2 instances for deploying , pros and cons of either
Autoscaling policies

Kubernetes

Easy Medium Hard
Introduction to Kubernetes, clusters, nodes, pods, worker node vs control plane
Kubernetes architecture
Local deployment using kind/minikube
Replicasets, Deployments
Networking Concepts - Services, Types of services
Ingress, Ingress controllers
Certificate management
Storage, PVs, PVCs, StorageClasses, Static vs dynamic provisioning
StatefulSets, DaemonSets, Jobs and CronJobs
Conifgmaps and secrets
Kubernetes Policies, Role-Based Access Control, CRDs
HPAs, VPA, Cluster autoscaler
EKS, eksctl, eks best practises
Extra - k9s, kubctx

Iac, Terraform

Easy Medium Hard
What is Iac
Iac using bash scripts, aws cli/eksctl
Various iac tools, ansiable vs terraform.
Installing tf, What is a resource, HCL syntax, Providers
Running Terraform Commands (init, plan, apply, destroy)
Managing state, variables, counts
Terraform with AWS
Remote state on S3

Monitoring

Easy Medium Hard
Introduction to monitoring, why do you need to monitor your systems
Datadog vs newrelic vs sentry.
Logging vs process observability vs Infrastructure observability. p95, p99.
Self hosted monitoring using prometheus. metrics, counters, gauges, histrograms, promQL, Graphs in Prom
Pulling vs pushing metrics, Push gateway
Grafanna for charting, observability.
Prometheus and grafanna service discovery in a kubernetes cluster

Package managers (helm)