Introduction
This series is a progress documentation on learning how an orchestration system works, and building one through a project-based learning method. Let's dive in.
I saw a job posting for the role of full-stack/infra engineer. The job offer was quite fair, and it came with a project, something to test how you think about, analyse, and design systems. The task was theoretically not difficult, but while thinking about how each part work together, I stumbled upon a blocker. How the API and frontend will work was unobstructed to me. The issue was putting automation together.
The project involved building a platform for deploying other projects (say a Node.js API etc.), basically a mini version of hosting platforms like Vercel, Brimble.io, Heroku, etc. The MVP require that users can deploy a project, your backend accepts, builds the project using Railpack Build, and use Caddy Server for ingress. Pretty straightforward, but I was stuck on implementation.
Perhaps some kind of epiphany, now I'm learning to master how automation works, how to make different programs communicate. This goal caused the birth of this series.
The series is broken out into phases/parts, each acting like a chapter on building a custom orchestration system. Mind that the system will not be a standard one as a lot goes into building one, but it's enough simplification of how an orchestration system works.