October 08, 2024
How to survive the Infrastructure and Operations world: from servers to Kubernetes
If you’re here, most likely, you’re trying to get into the infrastructure world. First, I’m so sorry. Second, the links here are my tried and true resources to navigate the fundamentals in this jungle. Hopefully, they’ll make a difference for you too.
How to host stuff: the easy way
Go for a Platform As A Service (PaaS). These cost more, but your time is also valuable:
- Netlify (great for Javascript-based applications)
- Heroku (a classic in the PaaS space)
- Fly.io
- Zeabur
How to host stuff: the hard way
Grab a generic server, SSH into it, and install whatever you need. It can be an AWS EC2 or, if you’re a cheapskate like me, you can live on the edge and use Oracle’s free servers.
Cools tools you can use to help:
- portainer: cool and convenient web UI to manage Docker containers
- watchtower: to update your Docker containers
- FluxCD: to set up your own CD pipeline
How to survive AWS
AWS In Plain English is a great start.
To get a feeling for cloud architecture in the real world, take a peek at this playlist with quick videos of organizations showing the problems they had and how they fixed them (it’s a bit of an advertisement of AWS products, but still super valuable):
How to GitOps
As an introduction to the topic, refer to the video What is GitOps, How GitOps works and Why it’s so useful.
When it comes to implementation, these strategies are powerful starting points:
- Step-by-Step Guide to Building a GitOps CI/CD Pipeline with GitHub Actions
- How To Use GitOps on AWS In Your Organization: A Complete Guide
How to deal with networks and firewalls
No easy ways out here. On AWS, you’ll have to face the dreaded Security Groups. On Oracle Cloud, this tutorial should help.
And remember the classic port numbers:
- SSH uses port 22
- HTTP uses port 80
- HTTPS uses port 443
How to deal with DNS
To make sure you got the basics covered, read these:
Now, get your hands dirty by creating live hosted zones with these tools:
- Cloudflare (it’s one of the best, and it’s free)
- AWS Route53
How to think about Docker
Containers are a deeply misunderstood piece of technology. But you don’t need to know much to get value from them. Start here:
When you feel ready, go deeper:
- Welcome To The Container Jungle: Docker vs. containerd vs. Nabla vs. Kata vs. Firecracker and more!
- What even is a container?
- How are docker images built? A look into the Linux overlay file-systems and the OCI specification
How to survive Kubernetes
Don’t underestimate the official Kubernetes tutorials. They’re great.
Knowing what it does under the hood is a great way to feel comfortable with a tool. That’s why this half-hour presentation can leave a strong impression.
And, as Master Yoda once said, “The greatest teacher failure is”. With this spirit, peek at a fantastic read.
For debugging applications in Kubernetes, these resources can also be very powerful:
- WhoAmI: a tiny server that returns OS information and HTTP request headers
- Podinfo: similar to WhoAmI, but more feature rich
- Telepresence: a powerful tool for debugging Kubernetes-native applications; (also check out these troubleshooting tips)