Today’s cloud landscape has no shortage of options when it comes to deploying HTTP-based applications. For small ideas and side projects I still have a hard time justifying running an entire container cluster, so I find myself reaching for options like Google Cloud Run or AWS Fargate because it provides me with a clear path towards something like Knative if my small idea starts to grow into something more substantial. At some point if you have enough of these small workloads running it will start to create cost drivers toward building a cluster multiple workloads could share.
The minimum footprint for a side project is a small amount of CI/CD configuration in Gitlab, GitHub, Google Cloud Build or AWS CodeBuild, a deployment target (or several if you run a proper multi stage deployment process including dev, staging, and production). This makes it quick and inexpensive to get things up and running quickly so you can iterate on your idea.
My toolchain of choice continues to change often because the technology landscape around PaaS and Serverless deployment options is evolving rapidly. AWS Lambda, Google Cloud Functions and similar offerings do not feel like the right fit and the tradeoff between ease of use and vendor gravity doesn’t seem worth it to me at this moment. I have built many solutions using these services and for many use cases they are a better fit than something container based, but I have committed technology sins by using serverless functions in places I should not have. That scar tissue is still fresh.