This is a continuation of a series of blogs about how Dell IT is Cracking the Code for a World-class Developer Experience.
Being able to develop, deploy and maintain high-quality and secure software at the speed that business demands is essential to today’s modern IT operations. As part of a three-year DevOps enablement push, Dell Digital, Dell’s IT organization, has created a streamlined, fully automated solution that does just that.
Optimizing our DevOps approach to software development is a key pillar of Dell Digital’s ongoing digital transformation, moving us away from fragmented and manual development processes to an agile, flexible, automated IT operation to meet fast-changing user needs.
Our focus was defining key process improvements to maximize developer experience and efficiency. This included creating a standardized CI/CD pipeline that has removed all manual intervention between code creation and production deployment and support. The pipeline gives developers a way to manage their application lifecycle autonomously. They can automatically provision infrastructure; perform functional, performance and security validations; quality check their code; and deploy to production with integrated monitoring and application tracing.
This means developers who were previously bogged down in operation tasks can now spend more time writing code and better serving our business users and customers.
This transformation takes time and commitment, but it’s critical in today’s fast-moving IT marketplace.
Mapping out a plan
So where did we start? After creating a DevOps Enablement team, consisting largely of engineers and architects, we began by auditing our current processes to identify the bottlenecks that were most slowing us down. We discovered major areas that required attention: the way we managed, tracked and deployed code; the fragmentation of our testing and manual reporting; an overall lack of integration with our security scanning tools; infrastructure provisioning and more. Our change and release process had gaps and lacked automation. Developers did not have the tools or access needed to be accountable for their applications after deployment to production.
From there, we defined our mission—our North Star for DevOps. We took a very methodical approach, first determining what metrics we wanted to target and then specifically defining our transformation goals.
We needed to standardize solutions and processes to address the fact that we had code in different repositories, across various solutions, each with their own set of processes, including CI/CD. Choosing the appropriate tools for code management and CI/CD was essential.
We landed on a specific tools stack, featuring an open-sourced Git-based approach to code management, leveraging and building upon industry standards. Over the next three months or so, with the help of some in-house developed utilities, we migrated all code from the various locations into a single repository.
Building the pipeline
The next step was building our pipeline. We decided that we wanted to build reusable pipeline definitions, called blueprints, that were both flexible and easy to consume. These blueprints would be technology-specific definitions for pipelines that would include all necessary working stages for each automated job. Engineers could reuse existing pipelines, or they could create a new pipeline by pulling elements from existing ones, negating the need to create one from scratch each time.
When consuming a blueprint, the developer need only enter their application-specific information because the blueprints already have the integration jobs built in. For example, security scanning is a required step for all pipelines and as such, the blueprints contain the required security scanning job definition. This means developers only need to define parameters that are specific to their project, paths, names, endpoints and the like.
And to make this selection even easier, we created a CI/CD Marketplace from which the developer can search and discover the most appropriate pipeline jobs from a centralized location. This is a no-code solution that significantly simplifies the creation and maintenance of the pipelines and improves the developer experience.
The result is that developers can now fully manage their code end to end without dependencies on other teams to do it for them, resulting in greater ownership and support for their application throughout its lifetime.
Advice on driving DevOps
If you are looking to transform your traditional IT operation to a DevOps and CI/CD model, there are several things you should keep in mind.
First, it needs to be supported and mandated by leadership, with a dedicated budget and CI/CD maturity targets. This was a vital foundation for us as we brought industry-leading tools and processes in house and integrated them within the Dell ecosystem. This also helped cover the cost of software licensing and the effort needed to establish DevOps in each of the product teams.
At the outset, you need to take a methodical approach to defining what DevOps is for your organization. Set priorities up-front, whether they are cycle-time reduction, incident reduction, increased deployment frequency, etc. Then track your progress in meeting those priorities with specific metrics.
We established a multi-factor maturity score based on metrics for software development standards, security, automation, and more. The CI/CD Maturity Score calculates a percentage representing how well each project is utilizing available automation. This scoring system is, by the way, also a fully automated process that scans the actual project logs looking for the existence of automation in the pipelines, with zero manual intervention and is free of subjectivity.
From a starting point of 35% in early 2021, we expect to reach a maturity score goal of 90% across our organization by the end of this year.
And finally, training is a necessary process that is critical to reaching your DevOps goals. Throughout our transformation, we provided constant training on every aspect of DevOps. The enablement team, made up of subject matter experts (SMEs), paired with many of the development teams to go through their specific use cases and technology stack.
We continue to provide ongoing training as we add new capabilities to our offering. To date, we’ve successfully trained more than 5,000 developers, product managers and engineering leaders on our DevOps offerings.
All this work is challenging but clearly a worthwhile investment where the return will be quickly realized if implemented correctly. We are now managing more than 30,0000 application projects with approximately 17,000 users in our DevOps platform and are currently expanding to organizations outside of Dell Digital. More importantly, our developers appreciate having less manual work so they can focus on what they do best, and our internal customers appreciate that all our digital transformation work means we can meet their needs faster and more flexibly. Here’s where you can learn more on how we’re transforming the developer experience, and keep an eye out for future blog posts in this series.
Source: dell.com