high availability

In information technology, high availability refers to a system that is continuously operational for a desirably long length of time.

System design for high availability

Paradoxically, adding more components to an overall system design can undermine efforts to achieve high availability. That is because complex systems inherently have more potential failure points and are more difficult to implement correctly.

System design for high availability

High availability requires less human intervention to restore operation in complex systems, the reason for this being that the most common cause for outages is human error.

How to ACHIEVE

   ♔ Simplicity
   ♘ Automation (Less Human Interference)

 

   ♕ Scalability

PLATFORM AS A SERVICE

a.k.a. PaaS

Application
Libraries

 Tools
Operating System
Hardware

               Tools

The Demo scenario

 

  1. Upload An Image
  2. Browse the Images
  3. Drop a random node from the network
  4. See if the app is still working!

choice #1: Deis

  • 4400+ ★ in GitHub
  • Focus on 12 Factor Apps
  • Release early, release often
  • Integrate with open source ecosystem

CHOICE #2: OpenShift by Red Hat‎

  • 800+ ★ in GitHub
  • Older than Deis, but with different technologies
  • Same as Deis!

Other choices: Cloud Foundry, Joyent, FLYNN, Tsuru, octohost, RANCHER, ...

High Availability

By Reza Mohammadi

High Availability

  • 888