High Availability is one of those things often touted by cloud pundits as one of the miracle features of 'the cloud'. As a recovering sysadmin, things like availability, uptime, mean time to recovery, fault tolerance, and redundancy are near and dear to my heart.
How services and applications are built and used is changing. The older way of thinking, was to centralize everything, buy the most reliable hardware you could get and that is as available as you could make things. (Read that as closer to mainframe thinking) And that type of thinking generally worked (and still does in many cases) OK - but it's not without problems; Namely, it's expensive and failure still occurs.
As the industry has continued down the consumption of computing services pathway the need for reliability has grown exponentially. People want and need better reliability - and the old way of 'ensuring' availability doesn't scale very well. That led us to what most people talk about when they consider HA today. Much less expensive machines but using redundancy in components - and actually architecting High Availability at the software level. This led to things like Linux-HA, Pacemaker, Zookeeper, Corosync, etc. and to applications and services designing some of their own distributed (and thus more highly-available) capabilities - such as database replication, web load balancing, etc.
Real HA comes from proper architecting. We are moving away from a critical application running on a single piece of hardware. Folks have started to realize, through the pioneering work of folks like Amazon, Netlfix, and Zynga, that failure is assured. Trying to avoid failure is fruitless - embracing failure and architecting systems to expect, and properly react to failure is the path to availability.
Along the path, HA became a buzzword, and is still one of those essential checkboxes that must be completed for enterprise computing purchases. Like cloud-washing that we see so much of now, it has led to some abuse of the term, and over time the term has changed meanings. This is pretty taxing on people who actually care about the underlying technology. But this post isn't a rant about buzzword-washing and definition dilution - it's about HA in the cloud.
...