For a beginner, best way understand software design/DevOps/microservices?

Hello, I really want to level up as an engineer. I essentially have no idea how our app at work is deployed. I will ask a question and get 5 million buzz words in returns - kubernetes, Docker, etc.

Is there a book that will give me background in how the deployment of large-scale applications work? Additionally, any books on system design (client/server/protocols etc) are welcome!

Thank you!

I can recommend Cloud Native Patterns by Cornelia Davis. Examples are in Java so you’ll need to be able to read that language but lessons apply to any environment.

As alone “kubernetes” can mean so many different things, there can’t be a single book that would describe the all.

It is not only that there are different kubernetes flavors (bare kubernetes, k3s, OpenShift, etc) it is also that there are different tools around it (eg. bare apply, helm, other).

Kubernetes is an ecosystem in itself and it is huge.

Do not overwhelm yourself with it before really necessary.

If you really want to learn more about how they deploy, start with learning how to write a Dockerfile, write one for an application that has no external dependencies, like databases.

Next step is to learn about docker-compose and extend that application with a compose that provides a database.

If you get access to the Dockerfile at least, compare it with the one you wrote, poke your co-workers to explain things they did different than you, try to explain your own decissions as well.

2 Likes