You are here

You are here

Speed and quality can go hand in hand: Scaling with DevOps and CD

Sunil Mavadia Director of Customer Success, XebiaLabs
Skyscraper looking up

The enormous interest in DevOps right now is being driven by a need to reduce time-to-market, cope with multi-channel apps and meet rising customer expectations. Increased competition and lower barriers to entry are forcing enterprises to plan for greatly accelerated delivery cycles. DevOps adoption increased from 66% in 2015 to 74% this year, according to RightScale’s 2016 State of the Cloud Report (PDF).

However, the central question remains: How do you accelerate while maintaining or increasing quality? This is especially tough in the enterprise, where you’re dealing with a complex environment and siloed teams. You can’t go back to the drawing board because you need to maximize existing investments and fold legacy applications into the mix. The business has to keep running while it undergoes a transformation. 

Planning for success when scaling

When planning and building a DevOps model that will work for your business, there’s a lot to consider. Make sure you employ strong, standardized source control. Test early and often. Automate everything in the pipeline, including testing. You won’t achieve all of this overnight, but part of the process is about identifying the biggest bottlenecks and breaking them one by one. As manual steps give way to automation, you work towards a strong continuous delivery pipeline.

Think about how compliance and security can be integrated from the start

Conduct vulnerability testing and intrusion analysis so that security checks have been passed well ahead of release. Too many companies disregard security until they hit production, but it’s much easier to implement at the beginning of the process. Your security posture and corporate strategy must be clear and standardized because cleaning up after data breaches is a lot more expensive than taking steps to ensure they don’t happen in the first place. 

It’s important to have the freedom to experiment and embrace failure without regret. You do this by building a system that can recover automatically and degrade gracefully.

Building a DevOps team

Everyone on your DevOps team must be pulling in the same direction and communicating closely if you’re to achieve maximum gains. Cross-functional teams bridging operations, development, release and testing are very effective because they establish communication across all of these areas. 

Attitude is important (you’ll need to work towards breaking down those silos), but so is the right mix of skills and tools. Development experience, infrastructure knowledge, and some understanding of continuous integration and continuous delivery all are vital. Also important is providing tools that allow people to work more efficiently and enable visibility so they can coordinate their efforts across the pipeline. 

Manage and govern your DevOps adoption

There are three broad areas, or “tasks,” to think about when figuring out how to manage and govern your DevOps adoption in an enterprise environment.

Put metrics in place

Metrics show you what is and isn’t working in the process so you can continuously improve. They also help you figure out how to scale. For example, you can answer questions like: How long did a release take in a certain phase? How long did a release sit waiting for approval? And, how many builds/deployments had to occur before one of them was successful?  Metrics also empower DevOps teams to cut through the bureaucracy that typically separates departments.

Drive changes at the enterprise layer

Your DevOps practices should always be driven at an enterprise layer so that changes are distributed across all functional areas. One way to do this is to employ the “as-a-service” model. This allows you to provide services across all platforms and avoid getting bogged down in onboarding apps into your pipeline.

Standardize through release orchestration

The complexity of developing, testing and deploying the right versions of each service goes up exponentially as you scale. Managing all of this complexity requires standardizing processes, which in turn requires improving automation. Automation allows you to bake standardized controls and support for compliance and security procedures into the release process.

Hand-in-hand with automation is release orchestration. Release orchestration helps you coordinate the efforts of multiple teams and manage multiple applications, stages and environments. It also offers a single view into your entire ecosystem to ensure visibility, transparency and auditability in your DevOps transformation so you can scale the enterprise effectively.

For more on this topic, see the webinar “Scaling DevOps and Continuous Delivery for the Enterprise.”

Keep learning

Read more articles about: App Dev & TestingDevOps