Use VSM (Value Stream Mapping) to design an IaC (Infrastructure as Code) framework
Value stream mapping is a great tool to assist in embracing the DevOps culture. A lot of information is available online and I will shy away from re-writing those concepts. I have cited some useful links in the references section for readers interested in the VSM approach to implement DevOps.
In this article, I want to extend the information available online & use VSM methodology to visualize an IaC (Infrastructure as Code) framework. It is advisable to have a basic understanding of DevOps, VSM, and IaC before reading this article.
Before we dig deep into this article, let’s look at the definition of IaC and VSM.
What is value stream mapping?

Value-stream mapping is a step-by-step method for analysing the current state of a product. This analysis aids in designing series of events that will still deliver the same product but will reduce non-value-added activities.
What is IaC?

Infrastructure as Code (IaC) is one of the key enablers of the DevOps revolution. Together with cloud automation technology, It allows provisioning of complex cloud resources with the help of generic templates.
It’s time to deep dive into various stages of VSM.
Step 1 — Identify the value stream to map
IaC along with DevOps helps in provisioning cloud resources with the help of templates. These templates are used in deployment pipelines of one or more applications. Hence, the value stream to map is the provisioning of cloud resources. These resources could be storage accounts, DBs, VMs, or web APIs.
Step 2 — Create a team of key stakeholders to collaborate on the VSM process.
Key stakeholders are members who are currently involved in the provisioning of these cloud resources. A typical IT project will include Software developers, QAs, Cloud Ops, and DBAs.
Step 3 — Identify and graphically map the “As-Is” (i.e. current) stream
To map the value stream, let’s consider the following use case:
Almost every software application needs a database. The use case is to graphically map the as-is stream for provisioning a database on Cloud.
I am keeping the process as simple as possible. Different colour conventions will be used for each task to mark hand-over, delays, and re-work.

Step 4 — Collaborate and recommend improvement and prioritize changes.
Looking at the as-is value stream, there is scope for some improvements.
- Use IaC tools like Terraform, Ansible, AWS CloudFormation, Azure Resource Manager, Google Cloud Deployment Manager, etc to create DevOps pipelines and eliminate manual provisioning of DB on Cloud.
- These IaC tools can then be used to build a framework that creates DevOps pipelines for all Cloud DBs within the organization.
- The IaC framework can then be extended to create DevOps pipelines for all cloud resources for the whole organization.
Step 5— Implement recommendations
5.1 — Use IaC tools to create a DevOps pipeline
Let’s map the expected future state

5.2 — IaC framework for provisioning of multiple DBs
Once we have realized the power of IaC with the help of VSM, the focus is to enhance the IaC framework. From here onwards, I would focus more on designing the IaC framework than mapping the future value stream. I would leave it to the readers to map the future value stream with each design and estimate the improvement.

5.3 — The IaC framework could be used to provision all generic Cloud resources
The concept described in 5.2 can be further extended to upgrade the IaC framework to create DevOps pipelines for all cloud resources. With the help of a script runner and a job scheduler, the framework can be used to update DevOps pipelines with new features and security policies.
The framework can be easily used to create DevOps pipelines for new cloud applications.
It’s interesting to see how easily can IaC help teams to move from DevOps to DevSecOps.

Conclusion
To conclude, I would like to re-iterate the benefits of IaC:
- Reduce/ Eliminate manual effort.
- Reduce the overall time to build DevOps pipelines and provision resources.
- One framework to allow provisioning of multi-cloud resources.
- Reduce delay in handing over tasks to different teams by utilizing the full power of DevOps methodology.
- Use VSM to gather stats after each design cycle. This will eliminate analysis paralyzes and give value for the time spent in building the framework
- VSM allows an organization to create a feedback loop by mapping the stream after each implementation cycle.
- IaC helps in moving from DevOps to DevSecOps.
I hope the article was helpful but being a writer in his early days, feedback is always appreciated.
Below are some references, I have used to come up with this article.
Thanks Tarun
References
Infrastructure as code — Wikipedia
Value-stream mapping — Wikipedia
Value Stream Mapping is Dead. Long Live Value Stream Mapping! | Pluralsight
https://creately.com/blog/diagrams/value-stream-mapping-guide/
DevOps Value Stream Mapping — A Box Score Based Approach — DevOps Institute
How to Use Value Stream Mapping in DevOps | Lucidchart Blog
DevOps and value stream mapping: Why you need metrics | TechBeacon
DevOps Processes: Value Stream Mapping — VMware Cloud Community
Infrastructure from Code: The Big Picture | Pluralsight
Infrastructure as Code: What It Is and Why You Should Be Automating It | Pluralsight
Ansible is Simple IT Automation
AWS CloudFormation — Infrastructure as Code & AWS Resource Provisioning (amazon.com)
Azure Resource Manager overview — Azure Resource Manager | Microsoft Docs
Cloud Deployment Manager | Google Cloud
The world of *Ops: DevOps, SecOps, and DevSecOps | by tarun bhatt | DevOps Dudes | Medium
P.S — Medium is an excellent platform to read, write and learn from fellow authors. If you want to join me in this journey, Join medium today.





