Discover PerformanceHP Software's community for IT leaders // July 2012
Automatic trust: Build fast, for fast release
DevOps promises better collaboration and faster delivery of value. To get Ops to deploy as quickly as you code, you need the trust that comes from quality. Your tool: automation.
DevOps—in which apps and ops work as a cohesive unit—is a natural outgrowth of agile processes. It’s how organizations ensure that faster development becomes faster release, instead of slowing down at the handoff to Ops. Whether you formally become a “DevOps shop” or simply look for ways to serve the business better, DevOps principles can help you to shorten the lifecycle that begins with a business idea and ends with its realization in the marketplace.
DevOps extends agile software development principles into the operations world to tackle latencies and bottlenecks in the release process. The key to end-to-end agility is assurance of quality—your Ops counterparts need to trust that your rapid iterations haven’t introduced sloppiness in the apps they’re on the hook to support. You can ensure velocity doesn’t trump quality through automation, reconciling the business need for speed with the Ops team’s commitment to stability.
An overall push toward more agile delivery will involve assessing all bottlenecks in the coding-through-release pipeline. A great start is to automate the provisioning of dev and test environments, and the testing processes performed within them. Even if you’re not formally “going DevOps,” these moves will help you get changes deployed faster by removing dependencies and the frustrating wait times associated with environment setup. The right approach to automation also allows you to identify and resolve defects earlier, which makes for smoother, more predictable development and provides greater stability for Ops once changes reach production.
So whether you’re formally pursuing a DevOps agenda or just trying to get changes executed faster, automation is a first step toward IT providing better business value. Here’s how to get started.
Automate provisioning of test environments
Waiting for Ops to provision a test environment can be a slow, frustrating process. So slow, in fact, that many Apps teams resort to doing it themselves through the cloud. Ops teams are never fans of “shadow IT,” and while it may get you faster initial results, it makes it more difficult to streamline the overall flow into staging and production environments. You still face delays getting your team’s work into the hands of users.
That’s why one of the first things you should establish as part of your improved collaboration with the Ops team is the automated provisioning of dev and test environments. Ops can create and verify a template, then your developers and testers can rapidly self-provision environments and deploy applications on demand.
Your Ops partners need to know that your lightning-fast changes aren’t introducing risks that could jeopardize their mission. By automating testing, and executing these tests as soon as possible after a code change is made, you can move toward a practice of near-continuous testing, shortening the feedback cycle to developers and allowing defects to be identified and fixed almost as soon as they’re introduced.
An automated testing regimen can incorporate all kinds of testing: build verification, regression, functional, performance, security and acceptance. A rigorous, automated process that progressively verifies each dimension of quality will assure your Ops team—and your CISO—that rapid-fire coding won’t sacrifice quality.
Lab management automation
Lab management automation lets IT accelerate not just developmental iterations, but actual delivery of business value. Automated provisioning, deployment and verification helps remove latency and errors, and makes sure that everything happens when it needs to happen, and nobody has to re-create the proverbial wheel for tasks that come up time and again in each environment.
A key benefit is finding problems early, when remediation is less expensive. Your developers don’t end up backtracking to fix, say, the gaping security flaw they missed weeks or months before.
Lab management automation can let you schedule, provision and deploy in a hybrid delivery environment. That environment can be physical or virtual, in a traditional data center or in the cloud. You can use lab management to:
- Manage and schedule testing assets and resources;
- Create a reusable model that includes the infrastructure and application configurations, middleware, databases and other components;
- Provision a test lab in a hybrid delivery environment;
- Deploy the appropriate application build on the environment as needed;
- Schedule tests along with lab deployment, enabling execution when a new application build is ready for testing; and
- Automate portability to move apps from a test environment into production.
Automate your way to trust
Better collaboration between traditionally siloed teams has to be built on trust, and the ability for each side to get what it needs when they need it. With lab management automation, Dev gets quick results, and Ops (and Security) get quality and stability. For the Ops perspective on DevOps and achieving agility through automation, see our DevOps article for Operations leaders, and check out HP’s ALM page.
For more on bringing the benefits of the DevOps movement to your enterprise, visit HP.com/go/devops.
Register for HP’s premier event for inspiration from industry leaders, the HP inside scoop, and a deep dive into tomorrow’s enterprise IT trends.
HP Software VP Paul Muller brings in HP and industry-wide experts each week for challenging discussions about trends in Big Data, mobility, IT security and more.
Forrester analyst Kurt Bittner discusses how to enhance Agile development with continuous integration and automated testing to deliver real business results.