Learning OpenStack High Availability - Sample Chapter
Learning OpenStack High Availability - Sample Chapter
$ 39.99 US
25.99 UK
P U B L I S H I N G
Rishabh Sharma
Learning OpenStack
High Availability
ee
Sa
m
pl
C o m m u n i t y
E x p e r i e n c e
D i s t i l l e d
Learning OpenStack
High Availability
Build a resilient and scalable OpenStack cloud using advanced
open source tools
Rishabh Sharma
JOB Forward, Singapore. Prior to working for JOB Forward, he worked for Wipro
Technologies, Bangalore, as a solution delivery analyst. He was involved in research
projects of cloud computing, proof of concepts (PoC), infrastructure automation, big
data solutions, and various giant customer projects related to cloud infrastructure
and application migration.
In a short span of time, he has worked on various technologies and tools such as
Java/J2EE, SAP(ABAP), AWS, OpenStack, DevOps, big data, and Hadoop. He has
also authored many research papers in international journals and IEEE journals
on a variety of issues related to cloud computing.
He has authored five technical books until now. He recently published two books
with international publications:
He is also an open source enthusiast and writes for the Open Source For You (OSFY)
magazine. You can get in touch with him at ater.rishabh.sharma@gmail.com.
Preface
OpenStack is a set of software tools and packages used to build private and hybrid
cloud computing platforms. It is one of the most popular and widely adopted open
source software managed by OpenStack Foundation. Since its introduction in 2010,
a huge number of reputed industries, including Red Hat, Intel, HP, IBM, AMD,
Canonical, and many others, support OpenStack.
The most promising feature of OpenStack is that it provides a DIY( Do-It-Yourself)
approach to cloud computing, and it can easily embrace the new development
features. Therefore, companies such as Google and Facebook created their own
data storage and cloud services using OpenStack.
High availability typically means achieving 99.99% availability, and basically this can
be possible by removing all single point of failure (SPOF), which is also applicable
for OpenStack. This book covers all the basic and advance approaches related to
achieving high availability in OpenStack with detailed step-by-step explanations,
hands-on exercises, and screenshots. These provide you with a real-time practical
understanding of implementing high availability in OpenStack. Some customer
case studies are also included:
http://www.colocationamerica.com/blog/core-advantages-open-stack-foriaas.htm.
http://www.tomsitpro.com/articles/openstack-costs-benefits,2-684-2.
html.
Preface
Preface
Chapter 9, The Principles of Design for Highly Available Applications, explains how
having a highly available cloud might not be enough, if the application running on
top of it doesn't take advantage of the principles and concepts of a resilient design.
This chapter mainly explains how correct application design can help improve
reliability and uptime of end user services; particular focus has been dedicated to
microservice architectures and distributed web applications.
Chapter 10, Monitoring for High Availability, covers how the control and maintenance
of a cloud is of the utmost importance; visibility in operations and alerting on failures
are the basis for correct functioning and quick recovery in case of unexpected outages
or planned maintenance windows. The chapter introduces a few key concepts and
tools to correctly measure and control the operations of an OpenStack cloud.
Chapter 11, Use Cases and Real-World Examples, covers a number of real-world
examples of HA deployments. The relevant lessons for a design of similar resilient
clouds have been distilled and are presented to the reader
An Introduction to High
Availability Concepts
Over the past couple of years, cloud computing has made a significant impact
in transforming IT from a niche skill to a key element of enterprise production
environments. From an Infrastructure as a Service (IaaS) point of view, cloud
computing is much more advanced than mere virtualization; various industries
and online businesses have started moving test, staging, and productions scenarios
roles to IaaS and started replacing traditional dedicated resources with on-demand
resource models.
OpenStack is one of the most popular and commonly used open source cloud
computing platforms, and it is mainly used to deploy infrastructure as a service
solution. Enabling high availability in OpenStack is a required skill for cloud
administrators and cloud engineers. This chapter will introduce you to high
availability concepts, a way of measuring and achieving high availability
through architectural design in OpenStack.
In this chapter, we will cover the following topics:
[1]
Mean time between failures (MTBF): MTBF tells us the estimated time
between two frequent failures within a process or a component, which
can be repairable.
Mean time to failure (MTTF): MTTF is the total estimated time of a system
where repairing is not possible.
Downtime/day
Downtime/month
Downtime/year
one 9s(90%)
144.00 minutes
72 hours
36.5 days
two 9s(99%)
14.40 minutes
7 hours
3.65 days
three 9s(99.9%)
86.40 seconds
43 minutes
8.77 hours
four 9s(99.99%)
8.64 seconds
4 minutes
52.60 minutes
five 9s(99.999%)
0.86 seconds
26 seconds
5.26 minutes
[2]
Chapter 1
The following are some commonly used terms that are used to understand and
measure high availability:
Recovery point objective (RPO): RPO analysis is a very critical metric for
any business. It is calculated as a total amount of data loss when a system
is not available. It is measured in terms of time.
System throughput
Response time
Here, multiple web servers means multiple web nodes, multiple load balancers
means active/passive load balancers, multiple database servers means replicated DB
servers, and leveraging different storage system means the maximum utilization of
all possible storage solutions with a backup plan that provides redundancy at each
layer of the configuration.
For advanced HA configurations, we also need to plan about automatic failover and
geo-replication, in case of disaster recovery, and also need to design our application
for high availability. In short, we can say that there are various advanced techniques
to achieve high availability, which we will discuss in detail in the following chapters,
but the prime objective of each technique is to obtain the following five principals of
high availability as described in this figure:
Design for failure consideration: This must be the first and foremost concern
of a cloud architect. Whenever any company or organization decides to
move to a cloud infrastructure solution, it has to plan for failure. If the failure
conditions are planned properly, then this will be of little or no consequence
to the HA services or the resources, and the system will always be available.
[4]
Chapter 1
High coupling
Web servers and application servers can be loosely coupled and isolated
by putting a load balancer between them, as shown in the following figure.
Any web or application server can be easily scaled up or scaled down
without any dependency.
Decoupled applications
[5]
[6]
Chapter 1
An OpenStack component
Organizations that run their production applications over OpenStack, generally try
to achieve five 9s (99.999) of availability. Hence, the failure of any running controller
node or service should not create any kind of disruption on any application running
on the resources provided or managed by OpenStack.
[7]
In short, achieving high availability in OpenStack means removing all single points of
failure, implementing redundancy, and replicating component failover capability and
automation. Also, workload should be scaled out or scaled in according to real-time
workload. We can achieve high availability in OpenStack in the following ways:
Summary
In this chapter, we learned the fundamentals of high availability and what a highly
available design is meant to achieve in a production environment.
We have also learned about SPOF, RTO, RPO MTTR, MTTF, MTTF, the concept
of SLA, and the general architectural design of a highly available system with an
overview of OpenStack high availability requirements and the various ways of
achieving high availability in OpenStack.
In the next chapter, we will take a deep dive into database replication and how
to build an efficient and reliable messaging cluster to enable high availability
in OpenStack.
[8]
www.PacktPub.com
Stay Connected: