I've been working on my own SaaS and micro-SaaS projects using Go for the backend and Angular on the frontend. It's been quite a journey, but I've encountered some minor issues like 500 errors and brief downtimes. Currently, I'm running everything on a single VPS with nginx as a reverse proxy and managing my Go executable with systemd. I'm expecting user growth and want to prepare for hundreds of thousands of users. What should I focus on next to scale my infrastructure without overcomplicating it? I'm not ready for something as complex as Kubernetes yet, but I'm looking for more reliable and scalable options than my current setup. Any insights on practical, incremental improvements to enhance scalability for my Go applications would be greatly appreciated!
7 Answers
Absolutely, multiple VPS instances are great for resilience! If you're looking for something quick to set up, consider using Lightnode for deploying small, geographically distributed nodes. It'll help you manage the load efficiently.
Classic signs of scaling issues! My recommendation is to get some solid application logging and server monitoring in place. Understanding the causes of those 500 errors is key before you can successfully scale or improve performance!
I'm an AWS engineer who has scaled many projects. If you want a partner to help manage the infrastructure, I could assist you! You can then concentrate more on the development side.
I've worked extensively with backends and currently use Kubernetes for its auto-scaling and resilience. It might not be difficult if you invest some time learning the basics. But if you're not up for that, major cloud providers have options to scale small VMs. Just add a load balancer and use services like CloudFlare to improve your setup.
You're on the right track avoiding Kubernetes for now. The first thing to do after a single VPS is to reduce any single points of failure. Consider deploying 2-3 identical Go instances behind nginx or a managed load balancer; this can really boost your resilience without adding much complexity. After that, focus on making failures manageable with good health checks and quick restarts, plus keep your data in a separate store like a database or Redis. You'd be surprised how far a basic infrastructure can take you if you cover these basics!
If you're leaning towards AWS, consider using an Application Load Balancer, ECS, and RDS to support your scaling needs. They'll simplify the setup and allow you to focus on development.
Before you scale, it's crucial to figure out why you're getting those 500 errors and hiccups. Your backend shouldn't fail without a known cause. If you just duplicate your failing backend across multiple instances, you'd end up multiplying those issues instead. It's better to make the current setup as fault-tolerant as possible before scaling.

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically