DevOps Core Tenet: Dynamic Infrastructure
This is the third in a series of blog posts about our four core tenets of DevOps. For more information on our approach to DevOps, visit our DevOps page.
With rapidly changing infrastructure needs, organizations have shifted away from on-premise bare metal servers. In today’s landscape, the needs are just too unpredictable to be able to order and install servers every time an organization needs to widen its digital footprint or scale to respond to increased traffic.
The shift toward dynamic infrastructure has taken many different forms. While hardware virtualization solutions have been around for decades, application virtualization and containerization approach have matured greatly. A majority of the modern players in PaaS (Platform as a Service) rely on container solutions like Docker and Cloud Foundry’s Garden. While these approaches differ greatly, the core concept is the same: encapsulating an experience in a portable unit which is decoupled from a physical server.
In most cases, organizations choose to adopt a cloud-based or hybrid-cloud implementation for their dynamic infrastructure. For most organizations, this means building a relationship with at least one of the top four cloud providers: Amazon Web Services, Microsoft Azure, Google Cloud Platform, or IBM Bluemix. The goal of leveraging one of these providers is to allow you to scale and provision almost instantly and decouple that process from the traditional hardware acquisition and installation process.
While the goals of dynamic infrastructure have been detailed for quite some time, it is important to highlight a few specific cases that relate to a healthy DevOps implementation.
- Dynamic infrastructure removes the barrier to scalability. Today’s applications have extremely fluid requirements when it comes to scalability. One afternoon may require a good deal more horizontal scalability than the following morning. In an ideal situation, today’s organizations should be able to scale at any point to any desired level with the only boundary being cost.
- Dynamic infrastructure allows for more comprehensive testing and automation by removing any artificial limits on the number of environments that may exist for an experience. With the transition to an ‘Infrastructure as Code’ approach, organizations are able to provision and launch entire environments on demand to perform development, user validation, automated functional testing, load testing, and compliance validation.
- A portion of the overall administration is removed and the overall maintenance burden reduced. While this depends on the extent to which you leverage on-premise instances, there is still an overall reduction in maintenance (even in a hybrid-cloud implementation). In cases where organizations shift to rely on public cloud IaaS (Infrastructure as a Service), there is a good deal of overall reduction. If an organization looks to shift to a public-cloud PaaS (Platform as a Service) solution, the reduction is substantial.
Luckily, most organizations have already taken steps to partially adopt this tenet. Even in situations where organizations are still operating on bare metal servers, technology and services have arisen to make this transition relatively painless. Once organizations make the transition, they are able to make a substantial amount of gain in a matter of months.
If you are looking to determine which dynamic infrastructure solution best fits your organization, you may want to consider a DevOps Maturity Assessment.