Disclaimer: I am building a product to address the same need for getting started with SaaS products as a kit, including Docker, Kubernetes, CI/CD and more:
https://saasstarterkit.app/I strongly agree with this. Investing into a quick setup for CI/CD in the beginning of a project pays of really quickly. Every time someone comes up with a "simpler" suggestion to deploy things, I find it always tricky and not-so-simple because of the following questions:
- which machine do I deploy my code to? should I use an existing VM or should I get a new one?
- what dependencies do I need to have on the machine? do I install them manually for each project?
- how do I deploy multiple projects on this machine? what if the dependencies conflict?
- how do I get the code to the instance? Should I use SCP, or Git, or some other method?
- once the code is in the machine, how do I start it? how do I ensure it is running?
- how do I securely expose it to the internet?
- how do I serve multiple projects from the same instance?
Obviously, each of these questions have answers and they can be solved, potentially "simply" for some; but for myself, I found these to be way harder to deal with then a few lines of Kubernetes configuration. I use Docker for packaging the application, I build everything on GitLab CI, and just deploy to the same Kubernetes cluster for all of my projects. With this setup, I still use a single instance and have very low stable costs, and I can deploy 10+ projects on the same cluster since they have small load for now. Everything is standardized, and I can get to live in minutes even for a new project.
I believe the idea that these tools overcomplicate things need to ba taken on a case-by-case basis. For some, it works; for others, it won't, just like any other custom script or "simple" solution.