See how Bluescape enhances team collaboration in:
When we consider the infrastructure for a software application, we think of all the foundational components needed for that application to run. In the analog world, we think of infrastructure as something like the foundation for a house or the train tracks for a rail system. Without the tracks, the perfect train will still go nowhere.
In the past, infrastructure for software applications meant physical servers and networking equipment. But that’s all changed. As cloud-based applications and their architectures mature, the infrastructures are fast becoming a part of the product itself. In many ways, the virtualization of servers made this an inevitability. The server hardware is still there, of course, but the application developer is shielded from the blinking lights and the spinning fans. That is an essential characteristic of cloud-based infrastructure.
Once the application servers become virtualized and code-based, the infrastructure for software applications becomes code-based as well. The days of infrastructure as something separate from the product has already come to an end, and there are many important implications to this trend. The main idea here has a label, and it’s known as “Infrastructure As Code,” or IaC.
What does infrastructure as code (IaC) mean? Quite simply, software applications are designed and built to include the software code that creates the infrastructure. The infrastructure is now part of the application itself. The infrastructure is wrapped around its application rather than having the application dropped into a free-standing architecture.
As a crude analogy, imagine a house that can create its own foundation, or a train that builds the track it needs as it runs, or a car that builds the road it needs as it drives. While those analogies only take us so far, it certainly paints a picture of a different model altogether for cloud-based applications.
There are some fairly significant implications for this new model. Here are some of them:
Here’s a short summary of the overall benefits according to Wikipedia: “The value of IaC can be broken down into three measurable categories: cost, speed, and risk. Cost reduction aims at helping not only the enterprise financially, but also in terms of people and effort, meaning that by removing the manual component, people are able to refocus their efforts towards other enterprise tasks.”
It’s a significant undertaking, but the gains are also significant.