I'm currently at an early stage startup around the series B mark, and we're currently using a PaaS, like Heroku or Fly.io, to host our infrastructure. However, while these solutions have served us to a certain extent, we're hitting limitations in terms of features, integrations, hardware options, and overall system reliability. For some context: we run a NestJS monolith application, use RabbitMQ for background tasks, Redis for rate limiting, and have an AI microservice for ML models. Our databases are managed Postgres and Google Firestore, plus we use GCP Cloud Functions for some legacy systems.
We're considering moving to native cloud solutions on AWS or GCP but are concerned about the feasibility of the setup for our volume. Although Kubernetes is an option, the idea of managing a cluster seems daunting. So, we're exploring intermediate services like Fargate, Cloud Run, or Porter, which provide more advanced features while still being somewhat managed. Any recommendations?
Unless you're certain you need K8s and have the in-house expertise to support it, I'd suggest going for Fargate or Cloud Run. Are there any requirements that you're concerned they won't meet?
- [0] https://status.flyio.net/incidents/q4tvqhthjmsy - [1] https://twitter.com/davydog187/status/1774874993618255977
Serverless functions spin up resources and run isolated code on-demand for every request as it's received. If you have no traffic, it scales down to zero and cold starts can be a concern. And paying for compute per-request like this can get very expensive at scale.
While Fargate is advertised as "serverless", I'd think of it as a fully container platform, it's closer to Heroku than it is serverless functions. You point it to an image, tell it how many instances you want to run, maybe set up some autoscaling rules (like to add more instances when CPU reaches X%), and then it'll run those instances 24/7. From what you've described, it sounds like a good fit.
Today, the server deployments use Fargate, and are truly hands off just like PaaS. Soon we're launching ECS+EC2 support which will let you customize the EC2 instance type, use GPUs, and leverage reserved instances. ECS doesn't offer some advanced k8s features, but it's 80% or more of the benefit in an easier to use, cheaper package.
We commonly see Series A & B companies migrating off PaaS to Flightcontrol + AWS because they can keep the same workflows while gaining more reliability, control, and flexibility.
I'm cofounder, CEO. Let me know if you have any questions.
[0] https://www.flightcontrol.dev/
I'm currently running a few small projects on Render and migrating one from Heroku to Render to save a few bucks.