DevOps is all rage now and enterprises want to find out how to embrace DevOps in their organization. The buzzword nature of DevOps has lead to all kinds of marketing and false information around how organizations can embrace DevOps. It’s like Cloud Computing between 2008 and 2009. Everyone wants it but no one knows how to do it right. Even though it is a marketer’s dream scenario, it is important for organizations to embrace DevOps culture with the right attitude and right tools. Otherwise, they will move from a severe Ops headache to DevOps heartache.
Before embracing DevOps as a cure to all your Ops troubles (or in other words, before considering DevOps as the magic pill to cure your legacy baggage), think of what you want to do for your organization. Do you want to add a layer of patchwork and sweep the core problems in your IT under the carpet for the time being or do you really want to build an IT platform for today’s use of modern technologies while also future proofing it for tomorrow’s onslaught of machines? Take a clean break from how you are doing IT so far and rethink your strategy. Build a platform that not only meets the needs of your business users today but also builds a platform for tomorrow’s automation.
In this context, I am emphasizing the concept of modern enterprise which is built using a composable enterprise framework. The composable enterprise approach requires a reconsideration of traditional models of organization and processes. The processes and organization that manages them are broken into components (imagine lego bricks) that follow some key design principles (Note: I have deviated from the original set described by Jonathan Murray to add few other characteristics I find critical to future proofing your platform):
- The Minimal Functions with least dependencies: The components should encapsulate minimal set of features (think Micro Services) and should have least dependencies with one another. The latter part is critical to build a platform with loosely coupled components underneath.
- Portability: The components underlying the platform should be portable across multiple infrastructures and completely decoupled from any platform fabric used. Even though the previous characteristic implies this under certain context, I want to make this an explicit characteristic under composable enterprise framework.
- Shared Knowledge: Data, information and context should be shared across the organization. This also includes any information or context (or metadata as I would like to call it) about Development or Operations. Both developers and ops people should document every aspect of their job functions and share it in the organization’s knowledge repository.
- Predictable Contracts: Each function defines the information and authorizations it requires, what work product will be output and provides quantified performance guarantees. This clearly requires monitoring to be built into every part of the platform components.
- Maximized Human Value: Human resources should be used only for those tasks that cannot be automated. Clearly, large scale automation is part and parcel of the Modern Enterprise concept and is a critical factor in ensuring agility, minimizing errors and governance.
If you look at the five key characteristics of the composable enterprise framework, the last three bullet points encapsulate the very definition of DevOps. In other words, DevOps is in the DNA of Modern Enterprise concept. Instead of getting confused about DevOps, embrace the Modern Enterprise philosophy, use the composable enterprise framework to build a platform using the right tools and you will have DevOps nirvana.
In the future, I will be digging deeper into various components that are part of a Modern Enterprise platform. First I wanted to make it clear that DevOps is already part of that platform.