Readit News logoReadit News
Posted by u/protus a year ago
Ask HN: Series A/B startups, what's your infra setup?
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?

wirelesspotat · a year ago
Even on low-volume projects I've noticed reliability issues with Fly.io too. For example today we have requests timing out at the gateway (before hitting our services) while the status page indicates their current outage is only related to delayed app logs [0][1]. Haven't gone deep enough with the other new-ish PaaS providers (like Render and Railway) to get a feel for their limitations.

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

protus · a year ago
I agree that Kubernetes is overkill, even at our scale. My biggest concern with "serverless" paradigms like Cloud Run or Fargate is with cold starts.
wirelesspotat · a year ago
Like another commenter mentioned, managed container platforms like Cloud Run and Fargate don't have the same cold start limitations as serverless functions like Lambda.

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.

flybayer · a year ago
Fargate does not have cold starts like Lambda. There is always a container running, it does not scale to zero.
flybayer · a year ago
Another option you might like is Flightcontrol[0]. It's similar to Porter, but newer and aims to make all the best AWS services as easy as PaaS. And unlike Porter, it doesn't charge more for horizontal and vertical scaling.

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/

protus · a year ago
Will take a look, thank you!
leros · a year ago
I've run / worked on two 7-8 figure early stage products on a handful of Heroku dynos, a medium sized Postgres, and RabbitMQ + workers for background stuff. Also cron jobs, ElasticSearch, and a few other things. You can get pretty far with basic infra if you don't have demanding computational needs. I really feel like making devops complicated and using complex setups on AWS/GCP is unnecessary for many startups.

I'm currently running a few small projects on Render and migrating one from Heroku to Render to save a few bucks.

Petr-Devops · a year ago
I have been working with infrastructure for 15 years. and I have never seen a project that chose Cloud Native a solution or platform that simplifies working with infrastructure and does not regret it. It seems simple at the initial stage, but over time it will lead to a huge overhaul of the entire infrastructure. it works on the principle that entry costs $1 and exit costs $10.
rbnsl · a year ago
The startup I work for is getting off a similar PaaS and evaluating Porter too; we really like the idea of the white glove service they have and flexibility across multiple clouds but was worried about general overhead in someone on the team needing to manage it, whereas the PaaS was so hands off (even if it was a black box). Curious what you and your team end up deciding on!
aristofun · a year ago
Swarm is a great lean solution and next good step after just docker compose files.
solidehue · a year ago
I heard FB config is decent
bertgodel · a year ago
Have you looked at Railway?
protus · a year ago
I looked at it briefly - it looks interesting, but I'm a bit worried about the same things that are affecting us with our current infra provider. Namely, PaaS overhead cost, lack of customized options for instance configurations, and long term reliability (SLAs, uptimes, managing outages, and etc).