Q&A: The Rise of DevOps

Applications and environments are more complex than ever. DevOps may be the approach IT needs.

Applications are getting more complex, and so are the environments into which they must be incorporated and updated. Mistakes are inevitable, and scripts often aren't enough to release and manage applications across the data center so they don't disrupt operations. One solution: a new, cross-department approach. To get a better understanding of what's driving the adoption of DevOps, we turned to Eran Sher, executive vice president of products and business development and co-founder of Nolio, an application service automation provider.

Enterprise Strategies: What do you mean by DevOps?

Eran Sher: IT operations, release engineers, and application service teams now need in-depth knowledge of the application and how it works under the hood. Developers, engineers, and QA staff must understand the network, infrastructure, and scalability aspects of the application they create and test. This new breed of a multi-disciplined resource is often referred to as DevOps. It’s a single point for the dev and ops teams to converge to produce, release, and deploy processes that take into consideration both the complexity of the application and the topology of the network, servers, and data center.

To what do you attribute the rise in DevOps? What are you seeing with your customers and in the market that’s making this an emerging trend?

To name the single and most important attribute that sparked the rise in DevOps would be the success of agile development. Companies strive to bring on new business ideas and push the development teams to release new features, patches, and updates at an ever-increasing frequency. All this new code, database updates, and configuration changes that are coming out of the development pipeline need to get put into multiple data centers and onto thousands of servers.

If you now compare how the dev team strives to embrace change to IT operations (which prefers stability and opposes change), you can get a clear reasoning for the existence of the dev and ops gap. This gap is causing chaos within operations, and dev teams can just not keep up with the frequency and number of changes coming their way. In today’s market, IT operations need to become agile and accept that the number of applications and their rate of change will increase at a significantly higher rate than will the resources available for deploying them.

On the flip side, development teams are becoming increasingly involved in application deployments due to the complexity involved. These teams are now pairing with operations in the hope that their invested time will, in turn, significantly reduce total time and effort spent on production deployments.

What is the actual role and promise of DevOps in an organization? How does this impact the business?

DevOps -- whether a person, team, or methodology -- will ultimately provide the organization a competitive advantage. In the modern data center, deploying applications is a complex task where one needs to synchronize updates between multiple and sometimes distributed tiers. For example, the application servers should get updated only after all the database servers have been updated, and then another set of servers will need to get their services restarted once the application servers are up to date. Also, complex scenarios that involve server inquiries are often needed, introducing branching and loops into the release process.

DevOps is the start of agile operations that enables the business not only to deliver the applications as fast as it develops them but also with fewer errors and increased uptime.

What has changed over the last several years that is causing IT operations to fail so often?

IT has gone through a dramatic shift over the last decade, all the way from a business enabler to a revenue generator. The introduction of e-commence, Web 2.0, and SaaS models has turned business delivery models upside down, putting the application in the center. We see more and more core-business applications that are driving the business revenue.

This new situation poses great challenges to the application owners who are tied to strict SLAs and need to abide by local auditing regulations. In addition, with the introduction of new technologies and paradigm shifts within IT, from infrastructure (virtualization and cloud computing) to growing cross-application dependencies (Web services, APIs, mash-ups, etc.), there’s an enormous explosion in complexity, which directly affects how deployments are managed in the modern data center.

With these changes, managing IT from an infrastructure perspective -- servers, network, storage, etc. -- is not enough, and the IT teams must adopt new a skill set: that of DevOps.

What solutions have IT operations tried to avoid such failure?

IT operations are the first to recognize the operational risk in the reality I have described. To speed up deployment and maintenance times, many efforts are being put into scripting much of the manual work that’s being done during deployments. Although a good short-term fix, scripts are hard to maintain. The knowledge is usually all in the heads of the “scripters.”

However, scripts are not scalable, and programming dependencies into the workflow are near impossible. From observation, many of the companies that have invested heavily in scripting are now starting to look at automation platforms. They realize that their scripted deployments can’t keep up with the pace of their growth.

Doesn't ALM cover the “last mile” of releasing applications into the data center?

Application lifecycle management has many and mature products all the way from application planning and up to configuration management. The “last mile,” or getting the application changes onto the servers, isn’t covered very well in the current ALM arsenal.

It’s important to remember that data centers push deltas onto the servers, and very rarely do they provision from scratch for application updates. Unlike Dev or QA, where applications can be built and tested on fresh systems, the production environment is always going to be carrying the payload of thousands of updates over the course of three to four years.

This is the reason why ALM needs an application-centric approach for deployment automation. The “last mile” is surely the most complex, and I am sure that we’ll be seeing a lot of innovation in this area.

What do enterprises need from an application service automation platform?

First, it would need a simple interface for building and designing the application service workflows instead of cumbersome scripts. The platform should also provide a way to assure that the same workflows can run in different environments as well as in multiple architectures. For example, an application is tested on an “all-in-one” architecture, where all tiers are running on the same server, but in production, the same application will have a group of servers for each tier. The application service automation platform should be able to provide granular audits for changes that are being done to the applications in the data center, who is doing them, when, and the outcome.

During deployments to live production data centers, if something can go wrong, it usually will. This is why any automation platform should support planned and unplanned pauses in the workflow. If the DBA needs a few minutes to sort out some mess in the database schema, then the automated deployment process should be capable of existing in a suspended state, providing the DBA time to troubleshoot and bring the environment back to a state where the processes can continue to run.

How can IT operations transform into an agile organization to improve development throughput and efficiently service applications in the data center?

Automation and control management are the key elements toward achieving operational agility. Automation is not only a guarantee for faster service response time but also a means to assure that the application service processes run seamlessly in production as they did 100 times beforehand in pre-production and testing environments. With bare minimum human handling and no need for “in-flight” configuration changes, run-time errors, which statically cause up to 60 percent of application failures, are practically eliminated.

Agility is accomplished by studying deployment patters, learning what can be improved and where it can be improved. Granular auditing reports are a key ingredient to accomplishing the desired operation agility. The organization needs to know what is happening and what the outcomes of deployments are.

With such knowledge, release managers and network operations center personnel can find root causes of delays, broken processes, and bottlenecks in the release flows. The foremost attribute needed for agility is the capability of keeping the information flowing. From development to QA to IT operations, everybody needs to be able to model the release in a single, agreeable, and easy to understand method.

What role does Nolio play in this market?

Nolio's solution was designed to meet the operational challenges of IT operations and application deployments, providing a platform that is application-centric at its very core. Once traveled through the ALM cycle, Nolio can take the most complex multi-tier and heterogeneous environment application and automatically deploy it using pre-defined and approved workflows that went through vigorous testing by the QA. Whether the application is running on 10 servers or 1,000 servers, regardless of the server count balance between the database tier and application tier, each deployment starts and ends with the push of a button and is followed up with in-depth reports on what actions ran where and their final outcome.

Besides providing significant cost saving by delivering on-time and shorter application maintenance windows, Nolio is being integrated into many data center platforms, such as CMDBs, ALM platforms, monitoring systems and help-desk software, to name a few, positioning Nolio as the flight deck for application service management and automation.