Skip to main content
added 582 characters in body
Source Link
Jörg W Mittag
  • 104.7k
  • 24
  • 226
  • 327

Honestly, I am having trouble parsing what you are saying. However, the problem is quite simple: if you allocate the same spare resources to both scalability and availability, then you cannot achieve both, you have to choose.

  • allocate the spare resources for scaling, but then they are no longer available for failover, i.e. you can no longer guarantee availability
  • keep the spare resources for failover, but then your remaining resources cannot scale further

You cannot do both. If you want to guarantee both you have to overprovision resources for both separately.

Say, one server can serve 100 users. You have an average of 600 users, and peak loads of 800 users. You want to be able to survive 2 dead servers.

Then you cannot just provision 8 servers, you need to provision 10, so that you can survive 2 failed servers at peak load (800 users). If you share the 2 extra servers between your redundancy and scalability requirements (i.e. provision 8 servers), then you can survive 2 dead servers at average load, and you can scale to 800 users at peak load, but not both.

Note: I didn't say anything about active and standby servers here. That's because it is irrelevant. Obviously, you need at least 6 active servers. But it doesn't matter if you have 6, 7, 8, 9, or 10 servers active and 4, 3, 2, 1, or 0 standby. You can have 6 running and 4 standby and turn them on on demand when the load rises or a server dies. Or you can have 10 running, and the only thing that happens is that they are not running with optimal efficiency. But still if 2 die during peak load, all that happens on the other 8 is that the load goes up, but they don't overload.

Honestly, I am having trouble parsing what you are saying. However, the problem is quite simple: if you allocate the same spare resources to both scalability and availability, then you cannot achieve both, you have to choose.

  • allocate the spare resources for scaling, but then they are no longer available for failover, i.e. you can no longer guarantee availability
  • keep the spare resources for failover, but then your remaining resources cannot scale further

You cannot do both. If you want to guarantee both you have to overprovision resources for both separately.

Say, one server can serve 100 users. You have an average of 600 users, and peak loads of 800 users. You want to able to survive 2 dead servers.

Then you cannot just provision 8 servers, you need to provision 10, so that you can survive 2 failed servers at peak load (800 users). If you share the 2 extra servers between your redundancy and scalability requirements (i.e. provision 8 servers), then you can survive 2 dead servers at average load, and you can scale to 800 users at peak load, but not both.

Honestly, I am having trouble parsing what you are saying. However, the problem is quite simple: if you allocate the same spare resources to both scalability and availability, then you cannot achieve both, you have to choose.

  • allocate the spare resources for scaling, but then they are no longer available for failover, i.e. you can no longer guarantee availability
  • keep the spare resources for failover, but then your remaining resources cannot scale further

You cannot do both. If you want to guarantee both you have to overprovision resources for both separately.

Say, one server can serve 100 users. You have an average of 600 users, and peak loads of 800 users. You want to be able to survive 2 dead servers.

Then you cannot just provision 8 servers, you need to provision 10, so that you can survive 2 failed servers at peak load (800 users). If you share the 2 extra servers between your redundancy and scalability requirements (i.e. provision 8 servers), then you can survive 2 dead servers at average load, and you can scale to 800 users at peak load, but not both.

Note: I didn't say anything about active and standby servers here. That's because it is irrelevant. Obviously, you need at least 6 active servers. But it doesn't matter if you have 6, 7, 8, 9, or 10 servers active and 4, 3, 2, 1, or 0 standby. You can have 6 running and 4 standby and turn them on on demand when the load rises or a server dies. Or you can have 10 running, and the only thing that happens is that they are not running with optimal efficiency. But still if 2 die during peak load, all that happens on the other 8 is that the load goes up, but they don't overload.

Source Link
Jörg W Mittag
  • 104.7k
  • 24
  • 226
  • 327

Honestly, I am having trouble parsing what you are saying. However, the problem is quite simple: if you allocate the same spare resources to both scalability and availability, then you cannot achieve both, you have to choose.

  • allocate the spare resources for scaling, but then they are no longer available for failover, i.e. you can no longer guarantee availability
  • keep the spare resources for failover, but then your remaining resources cannot scale further

You cannot do both. If you want to guarantee both you have to overprovision resources for both separately.

Say, one server can serve 100 users. You have an average of 600 users, and peak loads of 800 users. You want to able to survive 2 dead servers.

Then you cannot just provision 8 servers, you need to provision 10, so that you can survive 2 failed servers at peak load (800 users). If you share the 2 extra servers between your redundancy and scalability requirements (i.e. provision 8 servers), then you can survive 2 dead servers at average load, and you can scale to 800 users at peak load, but not both.