By Philip Merry, software
engineer, SIOS Technology
Cloud computing has revolutionized how system
administrators, developers, and software engineers need to consider the
environment their code will run on. Code that used to be hosted on-premises on
monolithic machines has been transitioned to run in cloud environments. The
principles of managing such an environment have changed along with the
environments in which applications are hosted. Fortunately, cloud providers do
their best to help customers leverage their services to their maximum utility.
Unfortunately, that help doesn't always deliver all of the requirements imposed
upon those resources. With the ease of creating, deploying, and recycling
virtual machines enabled by the cloud, a new wave of server administration has
arrived - and for better or for worse, making servers more disposable than
ever.
What is meant by a server's disposability? Literally, the term disposability means something that is
intended to be thrown away. The concept is relatively simple, but it might be
best to reflect on cloud best practices for background. Amazon Web Services
(AWS) Well-Architected Framework suggests the use of "Disposable Resources
Instead of Fixed Servers".
Creating a server - a task that used to
require a huge upfront investment of money, manpower, and planning - is now
streamlined and can even be automated. IT teams can use deployment templates
and cloud command line interfaces to facilitate scripting, and deploy code to
manage their environment's infrastructure and hardware. They can deploy a new
server quickly and far more economically by using the "infrastructure as code"
model. In many cases, Cloud environments can be easier to re-deploy than they
are to repair.
Unlike on-premises environments, where testing
and rolling out hardware changes or software updates can be costly and
time-consuming, cloud resources can be managed, swapped out, or simply re-deployed
quickly and easily. Where hardware resources and the software those resources
ran were once closely linked, the gap that the user sees between hardware and
the application continues to grow.
One important point to keep in mind is that,
while cloud compute resources are becoming disposable, companies are becoming
more dependent than ever on applications and the functions those applications
serve. As a result, they are placing higher and higher demands for uptime and
reliability. Hardware may be disposable, but applications are anything but.
Companies are more reliant than ever on applications and databases, such as SQL
Server, SAP, HANA, Oracle, and others to run core business operations. As a
result, IT teams are under pressure to bridge the gap between disposable
servers and the high availability needed for their essential software
applications.
Despite these changes, some IT principles have
not changed. For example, whether on-premises on in the cloud, operating on a
single server (or cloud VM) is risky, single points of failure should be still
avoided wherever possible. A high availability solution is still important to
ensure essential applications continue to run, regardless of the hardware (or
virtual hardware) they are currently operating upon.
With a high availability software solution helping to protect applications, the
state of an individual node's hardware does not correlate to a cluster's
ability to maintain application uptime. The high availability software helps
ensure the application keeps running, regardless of the state of the underlying
server/VM. It enables IT to remove instances (temporarily or permanently), or
to re-create instances without taking the application off line. Because
application uptime can be retained - the application is not limited by the
current system's state., but rather the readiness of the "next system" in the
event of a failover/switchover scenario. This scenario presents the opportunity
for IT to maintain servers in a way that is easiest to one's business - even if
that means redeploying nodes. In order for business practices to grow alongside
the system administration landscape, a high availability software enables
administrators to treat servers as disposable while treating applications as
indispensable.
##
ABOUT THE AUTHOR
Philip Merry, software
engineer, SIOS Technology
Philip Merry is a software
engineer at SIOS Technology, where he focuses on the
company's high availability clustering and replication software products. He
has a background in cloud architecture, networking, and system administration.
Philip holds a BS in Computer Science from Clemson University.