Is one large server enough, or do I need high availability?
A larger server can provide more capacity, but it remains a single application failure point unless the wider design provides recovery or failover. High availability requires coordinated redundancy across the components the service depends on. Two servers alone do not establish a working failover system.
Before you start
- An agreed availability target and a dependency map of the service.
Instructions
1. Identify failures the service must survive
Consider application crashes, host maintenance, storage loss and loss of a location. Record acceptable interruption and data loss for each critical business operation. Those requirements determine whether a restart, a standby, multiple active nodes or another arrangement is appropriate.
2. Design the whole request path
Include traffic routing, health checks, shared state, databases, file storage, certificates and management access. Place redundant components in appropriate failure domains and ensure the remaining capacity can carry the required load. Database failover also needs a clear writer-selection and consistency strategy.
3. Test failover and return
Rehearse a controlled failure in an agreed environment, measure interruption and verify data correctness. Include failback, maintenance and the handling of incomplete requests. Compare the additional operating cost and complexity with the business impact the design is intended to reduce.
Check the result
- A rehearsed failure meets the documented recovery and data-loss objectives.
- No overlooked single dependency defeats the intended redundancy.
Troubleshooting
- Both servers fail during the same event
- Review shared storage, routing, credentials and physical failure domains. Multiple instances can still depend on one vulnerable component.
Official references
Use the documentation for your installed version when a flag, service name or platform feature differs.
