Many people keep saying something to the effect of, "There is a right time to scale a system and we need to focus on that." This is true. There is a right time to scale up. In my experience, you rarely know when that might be except in hindsight.
I worked at a startup once and we built the product in a way that it should have been able to scale up pretty well. Then one of the co-founders went on a national news channel and started talking about our company. Our servers got absolutely slammed with traffic. We did the best we could but it didn't go well.
Now, we should have known to expect increased traffic from an event like that, and, in fact, we did. We simply didn't know just how much traffic we were going to get, and, honestly, couldn't have known that. We had only had a tiny fraction of that traffic until that event. That was the best basis for comparison we had at that point in time.
We updated and upgraded some things after that and the next time he went on that news channel, things were a lot better.
Knowing when to scale up is a hard problem. You have hints, sure, but there's never a data point that says, "Ok, you have until July to migrate this system from a single VPS to a full Kubernetes build-out."
I would like to add that you'd be foolish to use my post as a reason for building a system to scale to high levels prematurely. I agree with the original article that doing so bogs you down in needless complexity and wastes time and resources.
At that startup, we built the system to scale to where we were projecting traffic would be within a given time period. If that co-founder going on national television hadn't happened, our original plan would have been sufficient.
I worked at a startup once and we built the product in a way that it should have been able to scale up pretty well. Then one of the co-founders went on a national news channel and started talking about our company. Our servers got absolutely slammed with traffic. We did the best we could but it didn't go well.
Now, we should have known to expect increased traffic from an event like that, and, in fact, we did. We simply didn't know just how much traffic we were going to get, and, honestly, couldn't have known that. We had only had a tiny fraction of that traffic until that event. That was the best basis for comparison we had at that point in time.
We updated and upgraded some things after that and the next time he went on that news channel, things were a lot better.
Knowing when to scale up is a hard problem. You have hints, sure, but there's never a data point that says, "Ok, you have until July to migrate this system from a single VPS to a full Kubernetes build-out."