Melting your Infrastructure - Infrastructure as Code
We all are familiar with the well-known state of the matter - Solid, Liquid and Gas, as the state of matter changes from Solid to gas, the volume changes and is more manageable to achieve desired shape.
Analogues to this, IT Infrastructure has evolved its maturity state from Bare Metal (Single tenant), Virtualized and Codified. And over this evolution Infrastructure has increased its value proposition.
Infrastructure as Code (IaC) also called as Programmable Infrastructure is the automated process of building, configuring and provisioning infrastructure in a programmatic way. Thus enabling the mechanism of serializing your Infrastructure to code with a capability to rehydrate it on demand. The whole process eliminates human intervention and can be part of your deployment pipeline, so in a continuous delivery scenario, not only your application but also your Infrastructure to support the application is built on the fly. Now without manual intervention or steps out of the equation, you have a more predictable and repeatable process that is maintained and managed for reuse. This paradigm not only helps you audit the Infrastructure, it gives version control capability for your infrastructure changes and ability to revert back to specific version, just as you could do with your code.
In this blog, what I call as "melting your infrastructure" is actual the concept of transforming the state of infrastructure to code that could be used to resurrect it again to the state is was. The whole concept of codifying the Infrastructure (or melting it to code) gives rise to immense possibilities which are already being realized or have great potential in near future.
Continuing the analogy with the state of matter, just like two different metals in liquid state facilitates the creation of alloy, similarly with IaC your Infrastructure could be an alloy consisting hybrid or multi-cloud environment.
With the ability of being invoked programmatically, IaC could be used to incorporate self-healing mechanism into your application, where failure detection could be used to spin new infrastructure on the fly.
With IaC unit testing capability could be extended to test your infrastructure configuration to support your applications.
IaC tools could be leveraged to extend the concept of Code Contracts, where there could be possibilities for Applications define their Infrastructure precondition and post conditions as part of the deployment process.
IaC is an and an idea that is still maturing, growing and gaining momentum, they are implemented using tools like Chef, Ansible, Puppet and Salt (CAPS), and natively supported in some platforms (VMware) through API's. Above examples were only some of the familiar arena where IaC brings value but these are just the beginning.
IaC brings speed to value creation, agility to respond to change and the ability to reuse and extend. In today's world of innovation based economy IaC helps bring the required synergies for your Ideas that get transformed into Software Solutions and which in turn runs on Infrastructure.
Infrastructure in the state of IaC is well positioned to be augmented with AI to enter the next phase of innovation, as with the state of matter, we have solid, liquid, gas and then "Plasma" so with Infrastructure we do have Bare Metal, Virtualized, Codified and then?