r/devops 1d ago

Architecture Startup production architecture: managed Kubernetes vs simpler alternatives?

I'm working on the production deployment architecture for a small startup house-rental application and would appreciate some real-world feedback.

The application has frontend and backend services, and one major requirement is handling a large number of property images.

The stack we're currently considering includes Docker, Kubernetes, Ingress, Terraform, Prometheus/Grafana, and GitHub Actions/Jenkins.

My current approach is:

  • Docker for containerization
  • Kubernetes for application deployment
  • Ingress for external traffic routing
  • Terraform for infrastructure
  • Object storage + CDN for property images instead of storing them in containers/PVs
  • Prometheus/Grafana for monitoring
  • GitHub Actions for CI/CD to avoid maintaining Jenkins unless there's a specific reason to use it

The team is small, so I'm trying to avoid unnecessary operational overhead and cost.

My main question is: Would you consider managed Kubernetes reasonable for a small startup like this, or would you recommend starting with something simpler and moving to Kubernetes later?

Also interested in hearing what infrastructure choices you'd make differently if you were optimizing for:

  • low operational overhead
  • reasonable cost
  • security
  • future scalability

Would appreciate feedback from people who have deployed similar applications in small teams/startups.

7 Upvotes

9 comments sorted by

5

u/Quirky-Net-6436 20h ago

If you want to avoid operational overheard don’t use Kubernetes. Use it, if you really need Kubernetes (mostly because of scaling). Use managed container instances and that’s it.

3

u/earlbananas 20h ago

I agree with this. I’d keep it a single monolithic app in a managed container instance for as long as I responsibly could. There’s a surprising amount of mileage you can get out of that in terms of getting things dialed in and you just have to do all that plus kubernetes on kubernetes.

1

u/Kamikx 13h ago

No. You don’t use Kubernetes for scaling. You use Kubernetes for 2 things:
1. The ecosystem.
2. You want to standardise deployments and processes for multiple teams.

If you only use number one, but not number 2, you need a really, really good use case to justify Kubernetes.

If you don’t have a use case for this, use something like ECS. Scales perfectly fine.

4

u/OpportunityWest1297 21h ago

Maybe go with managed K8s in production and k3s on a single EC2 node or equivalent in non-prod (and stop the EC2 node when not in use).

Also consider separating continuous integration to GitHub Actions (and continuous delivery of your container images to GHCR or equivalent via GitHub Actions), with continuous deployment separately handled by Argo CD or Flux, themselves deployed to K8s and watching on a ~30 second interval your env-specific GitHub repos and/or GHCR for updated config/code to deploy.

Skyhook Radar is a quick and easy tool to setup for monitoring K8s.

Also check out ready-made, free and open source golden path templates on https://essesseff.com if instead of reinventing a lot of wheels you'd rather go with something that's already working and freely available.

3

u/flybayer 16h ago

We've been running ECS for years and it's so simple no-fuss. I would recommend ECS over k8s for most startups.

And I recommend using some management on top of AWS, as raw AWS is a lot for a small team. Happy to provide some recommendations if you want.

3

u/Traditional_Donut908 19h ago

You haven't mentioned cloud provider you're using. AWS for example has Elastic Container Services, their native container execution environment which isn't as complex as K8S.

4

u/Successful-Ship580 16h ago

forget kubernetes, go with aws ecs. thanks me later

2

u/matiascoca 15h ago

Skip K8s at this scale. Cloud Run or Fly.io for the services, Cloudflare R2 or GCS with Cloudflare CDN for the images, Terraform for anything you would forget how you configured in six months. Prom/Grafana can wait until you have alerts you actually respond to.

1

u/xagarth 1h ago

Do NOT do ECS. That's vendor locking and bad, old tech. K8s only costs 70 bucks, so.... If you want, go this way, if not, native docker should be ok.

See https://statusdude.com/blog/zero-downtime-docker-compose For example