avatartarun bhatt

Summary

The article outlines the application of Value Stream Mapping (VSM) to design an Infrastructure as Code (IaC) framework within a DevOps context, aiming to optimize cloud resource provisioning.

Abstract

The article extends the concept of Value Stream Mapping (VSM) beyond its traditional scope to the realm of Infrastructure as Code (IaC) within DevOps practices. It emphasizes the importance of understanding VSM, IaC, and DevOps fundamentals before delving into the process of mapping the value stream for cloud resource provisioning. The author guides readers through identifying the value stream, assembling a collaborative team, mapping the current state, suggesting improvements, and implementing changes to create a robust IaC framework. This framework is designed to automate the provisioning of cloud resources such as databases, virtual machines, and web APIs, thereby reducing manual effort, decreasing provisioning time, and facilitating a seamless transition to DevSecOps. The article concludes by reiterating the benefits of IaC, encouraging the use of VSM for continuous improvement, and inviting feedback for the writer's early endeavors in technical writing.

Opinions

  • The author believes that VSM is a valuable tool for embracing DevOps culture and that its application to IaC framework design can significantly enhance efficiency in cloud resource provisioning.
  • There is an opinion that IaC tools like Terraform, Ansible, AWS CloudFormation, Azure Resource Manager, and Google Cloud Deployment Manager are key to creating DevOps pipelines and eliminating manual processes.
  • The article suggests that a well-designed IaC framework can serve an entire organization by provisioning multiple cloud resources and adapting to new features and security policies.
  • The author advocates for the use of VSM to create a feedback loop, allowing organizations to measure improvements after each implementation cycle of the IaC framework.
  • The author expresses a personal view that Medium is an excellent platform for learning and sharing knowledge, and invites readers to join the platform and engage with the content.

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?

Self made using draw.io

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?

Self made using draw.io

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.

Self made using draw.io

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

Self made using Draw.io

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.

Self made using draw.io

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.

Self made using draw.io

Conclusion

To conclude, I would like to re-iterate the benefits of IaC:

  1. Reduce/ Eliminate manual effort.
  2. Reduce the overall time to build DevOps pipelines and provision resources.
  3. One framework to allow provisioning of multi-cloud resources.
  4. Reduce delay in handing over tasks to different teams by utilizing the full power of DevOps methodology.
  5. 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
  6. VSM allows an organization to create a feedback loop by mapping the stream after each implementation cycle.
  7. 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

DevOps — Wikipedia

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

Terraform by HashiCorp

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.

DevOps
Devsecops
Value Stream Mapping
Infrastructure As Code
Cloud Computing
Recommended from ReadMedium