Challenged with increased competitive pressure, many organizations turn to Agile and DevOps methodologies to speed their time to market, access additional markets, and more. DevOps ushers in process improvements through automation that speeds developer and operations productivity and efficiency. While these benefits are alluring, many large enterprises don’t know where or how to begin their foray into DevOps.
Implementing DevOps at scale across a large enterprise can be a challenge. How can an organization effectively reap economies of scale and address the complexities inherent to a large organization? Over the course of working with several large enterprises on just this challenge, a seven-step process has emerged that I’d like to share with you today.
Plan and Assess: As many organizations are inclined to do, it’s important to establish a DevOps beachhead. A pilot project is the best approach. The best DevOps pilots tackle a specifically defined use case; they are small, impactful and easily achieved in eight to 12 weeks. And, the pilot should be helmed by a cross-functional team. This team, called a Center of Excellence (CoE), will capture DevOps best practices and other learning in order to effectively serve as future DevOps champions to the rest of the organization.
Pilot: The DevOps model is about process improvement and that is best facilitated by technology. As a result, the most successful pilots include both technology like a landing zone which provides automation to facilitate standardization and governance, and education. The CoE has a lot to learn about applying automation, agile processes, and DevOps best practices to their environment as they will be the shepherds to future DevOps projects. A quickly achieved project with demonstrable business benefits will allow the CoE to evangelize its success and create momentum for furthering an enterprise DevOps initiative.
Pattern Identification: Only after a successful DevOps pilot is the CoE ready to begin expanding DevOps to the wider enterprise. Organizations that successfully spread DevOps start this next phase by assessing their application portfolio and identifying those applications that share common infrastructure and deployment pipelines, which I refer to as patterns -- or a common method for integrating and delivering applications.
CoEs that are successful at spreading DevOps create a list of common patterns to be used to streamline the DevOps process. By identifying groups of technologies with commonalities, the CoE is able to create patterns that will ease enterprise application modernization, making the process faster, easier and with less risk moving forward.
Platform Deployment: With applications categorized by patterns, the CoE can begin deploying tools to modernize systems, applying DevOps technologies like Jenkins, Puppet, AWS, and Ansible that facilitate process improvement with automation. While there is a great deal of technical depth that can go into designing and deploying a DevOps platform, it’s useful to have a DevOps framework to guide you. In my experience, the best framework contains five main components:
- Services, which are the code, configuration and infrastructure of the services to be deployed;
- Pipelines, new common delivery processes for deploying applications in the
- Landing zone, which is service-agnostic infrastructure where services deploy.
- Injectors that keep services moving by injecting specific data into service templates as they move through the pipeline. Secret management tools like HashiCorp Vault are a good example.
- Inspectors that monitor, log and otherwise ensure that the platform is secure and operates with organizational controls in place, meeting governance and compliance requirements.
Pattern Development: Once the DevOps platform is established, the CoE shall work with operations, security and business unit teams to develop patterns that meet organizational requirements.
Process Development: Once certified by the proper teams, the CoE begins process development, creating and documenting processes for development team on-boarding and training, application adoption, pattern change requests, pattern releases, and pattern retirement.
With all these steps in place, the enterprise’s development teams are ready to begin deploying new code through the DevOps Platform using pre-approved patterns. They can use patterns to deploy new applications with self-service or migrate older applications to new infrastructure.
Continuous Innovation Process: To ensure ongoing success and continuous innovation, it’s important that the CoE continues evangelizing successes and sharing best practices. Meanwhile, development and operations teams continue to evolve the platform and its patterns, developing and certifying new patterns, or changing existing patterns for optimal efficacy. Technical debt should also be flagged and eliminated as part of an enterprise’s move to continuous innovation.
Enterprise DevOps in the Fortune 500
A large manufacturing enterprise that I had the opportunity to work with is a good example of enterprise DevOps at scale. They began their DevOps adoption with a pilot project in which they migrated their database to an AWS Data Lake. The project supported quickly illustrated how DevOps could create greater scalability to support the data demands of the manufacturer’s IoT applications.
The CoE leveraged this initial success to apply DevOps and digital transformation across company’s various departments, applying the methodology 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 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.