When it comes to today’s IT, it really isn’t a matter of whether your IT operation should pursue a DevOps strategy and operating model to deliver software in the cloud. The question is how best to transition to this critical new approach. Similar to making the shift to IT as a Service, adopting DevOps is a must do in order for IT to survive and be competitive.
DevOps is a big buzzword right now, and it can mean different things to different people. At the end of the day, however, it is really about improving cooperation between IT teams that are traditionally siloed and delivering business value quicker and cheaper.
Like so many things in high tech, DevOps represents a circular evolution in IT. We spent decades siloing IT functions, focusing on segmented competencies in the name of efficiency, and now, we realize that shedding those siloes and bureaucracy, collaborating across functions, and using automation to enable individuals to more nimbly create software is the best way to deliver capabilities in the cloud.
Making the shift to DevOps isn’t an all or nothing process. It is something that your organization will transition to over time. EMC IT is in the process of evolving its culture, tooling and practices toward a DevOps model. Here are some of the insights we have gained.
Why IT Needs DevOps
Like ITaaS, the industry’s move toward DevOps is driven by IT’s need to operate at the speed of business. Business demands for the latest capabilities have escalated and if we can’t keep pace, they will get their services elsewhere.
Traditional IT with siloed functions like development, testing, release management and operations cannot deliver value to the business at the speed it expects. As shown in figure 1, DevOps breaks down the separation between development and operations, by combining continuous integration and testing with continuous deployment to accelerate the delivery. By empowering developers to make small frequent releases of differentiated functionality to production, business need not wait for months to get their requested features.
At the same time, by correctly integrating a DevOps platform for release and change management functions, we can still ensure that agility does not compromise the standard production change control procedures. In many software delivery projects, manual handoffs between development, test, middleware and release management teams take up considerable non-development time that slows down the delivery. By eliminating these handoffs, DevOps considerably reduces the time needed to move the code to production.
What is Needed for Effective DevOps?
For an organization to embrace DevOps, it is important for it to focus on the following four key things.
- Identify a minimal set of development, test and operational resources needed for the project based on the complexity and the type of infrastructure on which the application is deployed. It is critical to have project teams collaborate together to help promote the code through different environments along the path to production.
- In DevOps, a pipeline commonly refers to the sequence of steps needed to move the code from source control to a deployable state. This typically includes source control, build, unit test, package, and deploy artifacts. In many organizations that do not practice DevOps, these steps are executed manually and by more than one team. Automating this pipeline is essential to realize the benefits of DevOps.
- Automated, test-driven development is crucial to realize the inherent agility in DevOps. Too many times, manual testing (functional as well as regression) slows down the delivery process. In the DevOps delivery model, it is key to automate testing and make it part of the development process.
- Making the cultural shift to break down the traditional silos is as important as cultivating tools and automation.
How Are We Doing It?
To begin embracing DevOps, EMC IT determined that we would have to adopt some new disciplines around things like source control management, versioning, and the way we test code. We would also have to standardize our development tools and practices. While certain development teams have been practicing parts of DevOps by innovating and automating within their teams, we needed to institutionalize this across IT. To do this, we are following a three-step process of align, prove and scale.
In the align phase, we needed to develop a common definition framework for DevOps. Everyone had their own view of what DevOps is and isn’t. We created a cross-functional IT team including representatives from architecture, development, testing, operations and automation. We also engaged our consultants from the DevOps practice at EMC Professional Services, who are helping to walk us through the process and document our progress. With their help, we adopted a maturity model to track our DevOps journey.
On the technology front, we assessed our current development tools to identify any gaps we had. We are currently working to consolidate and standardize those tools and evaluate what additional tools we may need to drive efficiency and help change our development culture.
Presently, our tools are typically automated within the step they are managing, but when you start to string them together, there’s a lack of automation. There are still manual steps and the process often gets handed off from one group to the next. In addition, we need to make further progress in our consumption-based infrastructure to let developers self-provision and consume testing environments on demand.
To prove our model, we are in the midst of performing a pilot with one application development team. This application is a mix of legacy web application components as well as micro services that are deployed on the on-demand Platform as a Service. By automating key delivery pipelines and creating a playbook for delivering code through the DevOps platform, we will provide a blue print to scale DevOps to other application types.
Because not every application type is suitable for DevOps, we will also use the pilot to define a DevOps suitability assessment before we can scale.
We hope to soon scale beyond the pilot to other applications and begin realizing the benefits of DevOps across IT. Moving towards DevOps is a gradual process, and we are still exploring our path. But we will definitely reap the benefits of this more nimble approach to software delivery in the cloud.
At EMC World 2016 in Las Vegas, May 2-4, Ram Ramani and Bart Driscoll will present an information session on DevOps and Digital Transformation on May 2 from 12 to 1 p.m.