.Deployment Models v13.0
Non-Redundant / Simplex Mode Deployment
For a non-redundant deployment, the application is deployed on a single server with a single point of failure.
High Availability (HA) / Duplex Deployment
For HA, ExpertFlow deploys the solution on two VMs as Docker containers using Docker Compose. If one VM goes down, the traffic will be routed to the other VM.
Each solution component is deployed as a stateless microservice in its own Docker container. Expertflow opted for a service-per-container paradigm in which each backend microservice is executed in its separate container.
Each Docker container is deployed with the “Restart Always” policy which causes it to restart automatically on the same VM. Notice that there might be a downtime of a few seconds while restarting the container. This implies that any requests received during the downtime will be rejected.
Services will be available via a virtual IP. If one of the VMs goes down, the virtual IP will route the traffic to the other VM.
Failover scenarios
Failover Scenario | Behavior | |
---|---|---|
1 | When one of the VMs/nodes are down | The VIP will route the traffic to the secondary VM. All read/write operations will continue to work. |
2 | When both of the VMs are down | All read/write operations will fail and a manual intervention will be required. |
Out of Scope
- Component-Level Failover: Failover of individual components is not supported.
- Network-level failover support: The internal network/link between the VMs (or the Docker network) is assumed to be working all the time.
Assumptions
- Both VMs must be on the same subnet. Otherwise, the failover won't work.
- Setting up the DB cluster for MS SQL Server lies under the Customer responsibility.
- Manual intervention will be required when both VMs are down.