Immutable Infrastructure is a concept which has reason to be present for developing softwares on virtual environments running Docker or LXC. This sentence possible does to clarify what is immutable infrastructure but provides an idea that we are talking about cloud, virtualisation, Docker, LXC and software development and deployment. Of course when there Immutable Infrastructure, there will be Mutable Infrastructure.
What is Immutable Infrastructure?
Immutable Infrastructure means while once a server is build, later there will be no change to the software of the server. Normally we need to change the running software configurations, which in some cases if involves server software and the server environment can impact the stability of the application. The idea of immutable infrastructure is fix of the software configuration of the server and the running the applications on a virtual environment such as Docker, LXC, Jenkins in order to make the application stable without changing to the host OS itself.
The ideas around Immutable Infrastructure became prominent since when Platform as a Service (PaaS), Docker, configuration management softwares started to play a big role in software development. In this concept, when the service or application is iterated, its components are set and the service or application is immutable. Conceptually the two kinds of infrastructures – immutable and Mutable (read conventional traditional) greatly vary in their approach around how we manage, deploy the servers.
However, the topic how immutable infrastructure can be deployed is too bigger to discuss and will change the motive of this short article. At this moment immutable infrastructure is not really fully immutable in reality.
Deploying immutable infrastructure has components. There are many different ways to implement each of those components. Different combination of these ways make different ways. The decision of choosing one of the way one largely depends on the person’s personal familiarity and how the infrastructure one will want to build for the particular need.