Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

3 Types of Infrastructure Elasticity

DZone's Guide to

3 Types of Infrastructure Elasticity

· DevOps Zone
Free Resource

Download the blueprint that can take a company of any maturity level all the way up to enterprise-scale continuous delivery using a combination of Automic Release Automation, Automic’s 20+ years of business automation experience, and the proven tools and practices the company is already leveraging.

Here is a list of three major types of elasticity that I have implemented / experienced so far:

  1. Horizontal : by adding or removing service instances in response to certain amounts of load. Like a load balancer, and behind the load balancer there are multiple webservers.  The number of webservers are dictated by number of requests / second: ELB, haproxy, apache mod_proxy, pound, squid, etc. are examples of load balancers, while nginx, Tomcat, Jetty, Apache, thin, mongrel, etc. are just a few examples of webservers.
  2. Vertical : by adding or removing CPU/RAM in an individual server itself. For example, changing instance the types of an EC2 instance, changing Cgroup settings of an LXC,  or changing UBC params of openVZ containers.
  3. Multi-environment infrastructure : These servers are elastic, as they can belong to different environments at different times. They have the ability to reconfigure themselves against a particular environment. I am trying to improve upon this currently. I am trying to make certain EC2 instances dynamically configurable aginst many different environments. I have modeled my environments and service configurations using Chef. I will configure a server for unit testing jobs (like git clone, rake, spec, etc), and I will configure a server for functional testing jobs (xvfb, x11vnc, firefox, cucumber etc). 
  • chef-client --once -E unit_testing
  • chef-client --once -E functional_testing

 

Since the functional testing is generally triggered after unit testing (and they also take more time) it's ok for me to run them sequentially one after another. But these really enable two different sets of essential services when needed. Thus reutilizing our infrastructure a bit more. Similar transitions should also be possible across UAT, staging, pre-production, and the ease of tranisition indicates the delta of intigration points.

Download the ‘Practical Blueprint to Continuous Delivery’ to learn how Automic Release Automation can help you begin or continue your company’s digital transformation.

Topics:

Published at DZone with permission of Ranjib Dey, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}