Dev Ops
exercises: https://github.com/bregman-arie/devops-exercises
self hosting projects: https://www.youtube.com/watch?v=jFrGhodqC08
linux, git, docker, docker compose, ssh, nginx, bash scripts for building and deploying, cron jobs,
if you need multiple containers across multiple computers use docker swarm to communicate and load balance between computers.
if you need more orchestration than that use kubernetes.
vid also talks about how to have 0 down time deployment. with caddy I think.
Programming language
- python or node or ruby
 
Networking:
- DNS resolution and tools to troubleshoot dns problems (like nslookup for instance)
 - basic networking: subnetting, gateways, dhcp/nat, http,
 - firewalls(incomin, outogoing, stateful, non-stateful, layer3 or 7), load balancers(learn typers of load balancing algorithms) and proxy servers (reverse and forward)
 
Cloud
- learn one provider and learn the concepts. when switching cloud providers the main differences are service naming and UI.
 
Containers and orchestration
- Docker
 - Kubernetes
 
Infrasctructure as code
- terraform
 
Config management
- Ansible
 
CI/CD:
- github actions, Gitlab
 - QA with Jenkins,
 - code linting and unit testing
 
Monitoring and Log management / Data analytics
- ELK stack, Grafana