? QA Design Gurus: High Availability
Showing posts with label High Availability. Show all posts
Showing posts with label High Availability. Show all posts

Jul 31, 2015

Business Continuity/Zero Downtime Testing in Blue Green deployment



As per wiki definition,
“Business continuity encompasses a loosely defined set of planning, preparatory and related activities which are intended to ensure that an organization’s critical business functions will either continue to operate despite serious incidents or disasters that might otherwise have interrupted them, or will be recovered to an operational state within a reasonably short period.

During deployment
·         Our business should continue with existing production environment and customers should be able to operate and work with our products without any interruption
Once deployment is completed
·         Customer should be able to see the changes in the build and able to operate with our products seamlessly

Business continuity also means that customers should able to operate with our products in case of deployment failures. We should identify the time taken for disaster recovery during hot upgrade deployment in case of deployment failures.



Business continuity can’t be simulated with manual testing alone. In Production, we are not sure how many customers are using our products, what the load on production is and what the customer user cases are. We can automate Business continuity tests by continuously running the tests before and during upgrade deployment. We should make sure that none of the automated tests should fail during upgrade deployment because of deployment issues. We are calling this as Business Continuity/zero downtime testing.

Mar 13, 2015

Disaster Recovery/High availability testing

     High available means a system that is designed to avoid the loss of service by reducing or minimizing the failures as well as minimizing planned down time for the system.
Ref: goo.gl/ocaLI0

     For example, we expect electrical service to be highly available since we have geared our lives depend on electricity for registration, heating and lighting, in addition to less important daily needs.
Let’s try to understand this concept through an example in case of Cloud-based software products. Assume we have a cloud platform which uses the following Amazon EC2 Web services to achieve high availability.
  • Elastic Load Balancer (ELB)
  • Auto Scaling Groups (ASG)
  • Amazon Rational Database Service (RDS)
  • Amazon Simple Email Service (SES)
High availability testing in Amazon Cloud:

Assume our above mentioned cloud platform has a Cloud Services layer which cater for some of the common services required across the platform. These services could be user management, notifications, check-out process to purchase certain items etc. We will execute the following to make sure that Cloud Service on this Platform is highly available in case of failures and customer should not see any difference in case of failures in back end systems.