DevOps is one of the fastest growing areas in software development and IT operations as organizations seek to drive faster delivery of new applications and features, stabilize and secure operating environments, increase speed to innovation, and gain competitive advantage. Forrester called 2018 the “year of enterprise DevOps”, with research showing that 50% of organizations have implemented DevOps. With adoption gaining, the conversation has shifted from “What is DevOps?” to “How do I implement at scale?”.
Scaling DevOps across large enterprises can be challenging due to legacy technologies and complicated organizational structures. Furthermore, simply knowing where or how to begin DevOps is one of the most common roadblocks.
While there is no “Easy Button” for adapting DevOps at scale, breaking the process down to an actionable framework can help kickstart progress. Take stock of business goals and gain a thorough understanding of the environment from technical, process, and organizational mindset perspectives. Have a specific, measurable, and ideally quantifiable end-goal to drive focus.
Here is a five-step approach based on our experience working with hundreds of enterprises on their DevOps initiatives:
1. Create and execute a pilot project
The best DevOps pilots tackle specifically defined use cases; are small, impactful and easily achieved in eight to 12 weeks. Pilots should be led by a cross-functional team often referred to as a Center of Excellence (CoE) or a Center of Practice (CoP), that can capture best practices and key learnings and champion that knowledge-share across the organization. Ideal candidates for CoEs/CoPs can effectively work with ambiguity, are biased toward action and short feedback loops, are technically skilled, willing to make rapid changes, and embrace mitigated risk-taking.
2: Identify patterns
After a successful pilot project, the process of expanding DevOps to the wider enterprise begins by identifying shared patterns among revenue-generating, “invest” applications. These are applications that are strategically imperative to the business because they contribute to revenue and therefore are high investment priorities. (As opposed to “sustain” applications that are necessary for business and hence should be sustained at the lowest possible TCO.) Pattern definition should be a complete embodiment of what’s needed to deploy the application, including infrastructure components, middleware dependencies, and the app itself. Comparing the analysis, teams can identify applications that can be deployed using the same pattern -- for example, upwards to 50 applications can use a single pattern.
3: Deploy a DevOps platform
Once patterns are identified, the enterprise can begin the process of deploying technology to modernize their systems. It’s highly recommended to base modernization on a DevOps platform that features technologies and processes for services, continuous testing and delivery pipelines, a landing zone, inspectors, and injectors.
4: Develop patterns
Pattern development is the thrust behind the fourth step in the process, helping organizations develop application patterns that meet operations, security, and business requirements. As not all development teams are full-stack developers, enterprises should build patterns with the appropriate interface level for their development team(s), ensuring that they can easily consume the patterns created. Too many patterns and the job of keeping them maintained quickly becomes unwieldy. Conversely, too few patterns and they lose effectiveness. Most organizations can identify between five and 20 patterns for invest applications. Furthermore, while there will not be a pattern that addresses everything, and snowflakes will exist, patterns typically exist for about two-thirds of an organization’s applications.
5: Spread skills
Create ways to effectively spread the skills needed for DevOps across the enterprise, including documentation for a broader set of teams to follow. Tailor knowledge sharing in ways that your teams learn best, whether it be formal classroom training or coach-as-you-go sessions. Pass along skills needed to support not only new infrastructure and applications, but also culture change.
Enterprise DevOps in the Fortune 500
To give you a practical example of how these steps come together, consider the story of a large manufacturing enterprise with which we had the opportunity to work. They began their enterprise DevOps adoption with a pilot project in which they migrated their database to an AWS data lake. The project quickly showed how DevOps could create greater scalability to support the data demands of the manufacturer’s IoT applications.
The manufacturer’s Center of Excellence leveraged this initial success to apply DevOps and digital transformation across company’s various departments, applying the model above to departments like enterprise architecture, application development and even business units like credit services. With the initial pilot project focused on a well-defined migration to AWS, the outcome has been the company’s agile adoption of DevOps for greater security, cost efficiencies and reliability.
The idea of enterprise DevOps at scale can be daunting -- especially for large enterprises with complex systems, complicated processes and a great deal of technical debt. However, by starting small, creating a team dedicated to success, and effectively using technology patterns and platforms, DevOps is not only achievable, but achievable at enterprise scale.
Aater Suleman is CEO and co-founder of Flux7, an IT consultancy providing DevOps consulting, cloud architecture, and migration services.