Can someone point me to an article as to how you go about providing fault-tolerance in Magento Community ( also in the enterprise version ) to cater for both a server or the primary VM going down.
Also how you would increase your performance capacity when your user load increases.
in High Availability there is no primary servers, you have at least 2-4 servers with load balance and NAS. + you have to split your database.+ few servers in a cold standby.
monitoring, errors and health checks.
in more critical situations you must have balanced DNS. etc
do not look for any articles or blog posts, etc, if you really need to go this way, you better do it yourself, test it and see how it works.
I will suggest looking at High Availability solutions at the insfrastructure level as it will be difficult to achieve this at the application level.
What do you plan to and is this for just your own Magento store?
I am just researching the area. but I get the feeling that there is no High Availability within Magento perse, rather you need to look into the underlying technologies.
Yeah the easiest way is to achieve High Availability at the infrastructure level instead of the application level unless you want to modify Magento's core codes as Magento is not built for a multi-server environment out of the box.
I agree with the other commenters - you need to look at infrastructure more than Magento. That said, iWeb have had some success scaling non-admin tasks out and making them more available using NFS exports to additional web servers sharing the same MySQL. This means that your admin site and NFS server are still a single point of failure (and you should run your crons from the admin server) but front-end web traffic can be put behind a load balancer. We use separate Redises for session stores and Magento cache to keep the site consistent across different frontends.
If you do this, you should set the CDN URLs in the admin for images etc. to go to the admin machine or, even better, to a caching proxy in front of the admin machine. This is so that stale NFS reads don't mean that newly uploaded images serve as "broken images".
If you're determined to go down the HA route then substituting NFS with GlusterFS or CephFS and making sure your MySQL is HA (which is a whole separate topic which *is* well documented on the web) will get you most of the way there - but I've never used such a set up in production and there are a lot more moving parts to manage.
Diagnosing Magento performance issues can be difficult enough without adding lots of servers and HA tools into the mix, so I would only layer these services on top of a well debugged and tested store, too.
I hope that helps,
If you are looking for HA then you need at least two of every server/service.
This means you need at least
2x Web Servers (Apache, Nginx or Litespeed)
2x Database Servers (Mysql, Percona or MariaDB)
2x Cache/NFS Servers (Memcache, Redis, NFS)
If you have any specific questions I'd be happy to help answer them.