Jump to content

Architecture/Failover suggestions


Wicket

Recommended Posts

Hi,

I am at the stage with my project where I need to start looking at a failover implementation to limit downtime, should the worst happen.

Currently I deploy each client to their own virtual private server. I use a DNS A-record for each client and use that to point at the respective server IP. eg company1.myapp.com -> server IP.

I back up daily, but need to look at having a solution to mitigate down time if a a client server went down for any reason, or even if the dns server went down.

Does anyone have any experience of this or ideas on how I could implement? Do AWS or Azure offer some sort of solution out of the box? I am open to all ideas.

I have attached an image of current high level architecture. Thanks for any help, W.Architecture.thumb.png.dbb1f1f12719fba91389c567d70962e8.png

Link to comment
Share on other sites

Hi

It depends on what you want to achieve. In your current setup you have no fail-over at machine level. So when VPS - Comapny2.myapp.com fails or is going down
then this company can't use the application anymore.

You have now made a split by assigning a vps per customer with your uniGui stack (IIS, HyperServer, UniGuiApp and Database)
If you want to achieve a fail-over in the event of a machine failure, you must ensure that there is a complete copy on a fail-over vps
where the correct ip address is again linked to this vps server.

What you could do is run multiple application environments on 1 VPS (vps-A). You then get:
- 1 IIS environment
- 1 Hyper server
- in this case 3 uniGui applications
- 1 MySQL installation with its own database per customer

A 2nd VPS (vps-B) is an exact copy of vps-A. If you change something on vps-A (eg an update of your application), you ensure that this is
automatically synchronized to vps-B. Sufficient tools are available to synchronize the database. vps-B is actually a so-called standby server
and is used when vps-A fails

vps1.png.eada4ba7e7b43b7678a1a63c13306e52.png

There are roughly 2 ways to monitor / realize / check if vps-A is up-and-running
- DNS level failover
- Server-level failover

DNS level
A DNS fail over can be setup using online DNS IP failovers but they cost money and many people say they are not as good as doing it on
the server level, since at DNS level they check your hosting on intervenes and these can be from 4- 10 mins at any time. A Quick Google
search reveals DNS Failover System Monitoring.

Server level
Normally you would proceed with the following:
- Replicate Clone of MySQL on both Servers
- Clone the file systems using clusters
- Interment a IP fail over using something like UCARP

A VPS is a virtual private server, so it is already virtual. There are providers that offer the option of purchasing a disaster recovery plan
at VPS level, for example, where they ensure that your vps-A is automatically copied to another server and started again with the same ip address.
This is what, for example, hypervisors like VMware do and is called Replication
ovh.com offers very extensive possibilities when it comes to failover solutions or disaster recovery
https://docs.ovh.com/gb/en/dedicated/ip-fo-move/

 

A other solutions can be this where you do it self:

vps2.png.c3e3544436d261a6e691f2c0f8735709.png

A second machine is always easy to switch everyone to vps-B during maintenance of vps-A. Then perform maintenance and switch the users back to vps-B and then you do maintenance on it. 

It is important to first consider what form of continuity and redundancy you want to achieve. Then you can think about the concept and realize it 

Greetz Peter

 

  • Upvote 1
Link to comment
Share on other sites

×
×
  • Create New...