The Significant Benefits of Application Release Automation
In today’s application economy consumers want to be able to interact with their favorite brands when and where they want, on their device of choice. What this means for business is that there is increased demand for more change, more often, in order to keep up with swiftly shifting market trends and to stay ahead of the competition. The explosion of mobile and the coming onslaught from IoT assures us that the rampant pace of technological innovation is only going to continue to accelerate.
For companies still practicing manual deployments, they run the risk of becoming obsolete in the eyes of the market for want of the ability to keep pace with consumer demand. The good news is that these organizations can find a readily available solution in the form of Application Release Automation (ARA).
In an article this morning on DevOps.com, Anders Wallgren, CTO of Electric Cloud, discusses the negative impacts of manual deployments on the business, along with the benefits of adopting Application Release Automation, which he defines as “the process of packaging and deploying applications (or updates to applications) in an automated, repeatable and consistent way.”
“To understand how ARA can help you achieve higher quality software releases (which contribute to your bottom line), you must first understand the challenges you might face if your business is still using manual deployments, or other archaic methods. If that’s your case, though, you’re not alone: a survey we ran last year found that over 75 percent of deployments are still done manually, despite the many problems with this model, which is extremely brittle and error prone. This creates not only many failed deployments, but loss of hundreds of men hours trying to troubleshoot those failures. This is certainly painful in the mission critical production environment, but carries great cost long before we reach production. Even in the lower environments (such as testing or pre-production), 66 percent of respondents report its very time consuming just to troubleshoot why the failure occurred. As we promote code to be deployed in production- the stakes are higher. Costs of failed deployments, delayed releases and loss of men hours are exponentially aggravated when you add possible fines on top of that, cost of SLAs violations, customer churn, and loss of business. There’s no question the implications of failed deployments put a major dent in your bottom line, and with some companies – failed deployments have literally put them out of business.”
Knight Capital Story – A Failed Release
To illustrate that last point, Wallgren relates the story of Knight Capital and a failed software release back in 2012. With the financial markets closed over the weekend, Knight pushed out a new release that resulted in complete disaster when markets opened back up that following Monday. Due to a fault in the release, “They accumulated (extremely quickly and erroneously) a $9 billion position in the market – represented by the movement of 397 million stocks in just 45 minutes,” Wallgren writes, “Two hours later, when Knight was still chasing the culprit in their release process and trying to rollback to a previous version of the software, the New York Stock Exchange said, ‘We’re done waiting for you,’ cut their hardline to the market and Knight couldn’t make any trades.” The result was cataclysmic for the company, which suffered a “pre-tax loss of $440 million” from the debacle, and was subsequently sold for “pennies on the dollar” within a matter of weeks.
Knight’s story certainly represents a worst-case scenario, but it illustrates the potential issues stemming from manual deployment processes very well. According to Wallgren, there are three characteristics of manual deployments that contribute to those issues – reliance on human intervention, a lack of visibility and auditability into the process, and “negotiating what is called the ‘Delivery Gap.’”
To err is human
Human beings are inherently fallible, and when they’re involved in manual deployment processes it’s only a matter of time before an accident occurs. “Even the most veteran of developers or ops engineers make mistakes, and when you start talking in the hundreds (or thousands) of deployments, across complex stacks and configurations, an error is almost inevitable,” Wallgren observes. Conversely, “a deployment process where many of the steps are automated – and therefore consistent across releases – your chances of an error are reduced dramatically.”
The second issue with manual deployments is that it’s nearly impossible for humans to track and record all of the information required to provide visibility and auditability into the process. This creates risk to the business because knowledge of the deployment process is stuck between the ears of the deployment experts. “And as good as they might be in keeping notes, they’ll never be as comprehensive, or bulletproof, as an automated log that tracks every single component in the multi-stages deployment process,” Wallgren notes.
Lastly, “Manual deployments also are not adept at negotiating what is called the ‘Delivery Gap,’” or the seam that naturally exists between Dev, Ops, and the infrastructure. According to Wallgren, “Ensuring there’s no configuration drift between infrastructure or app components across the different teams, and ensuring consistency in deployment processes has proven difficult for humans to perform, particularly as each process includes hundreds – if not more – of artifacts, configuration files, dependencies and deployment requirements.”
Application Release Automation
Application Release Automation addresses these issues, ensuring a consistent, repeatable, and traceable process for deploying applications. “Application Release Automation is a DevOps solution that bridges the gap between the Development teams and Operations teams,” Wallgren writes, “It does so by creating a solution that encompasses Continuous Integration, Configuration Management and Deployment practices that respect infrastructure, as well as operations’ needs and regulatory requirements.” By building these considerations into an automated process, deployments move from each being its own unique snowflake to becoming a routine and predictable event.
The benefits to the business are numerous. Since deployments are no longer ‘high adventure’ events, operating expenses are significantly reduced because fewer man hours are spent troubleshooting failed deployments, which in turn means SLAs are met more frequently, which in turn means the risk of lost revenue from a failed deployment is significantly reduced. On top of that, your star resources can focus on innovating instead of managing troubled deployments, or, said another way, they can focus on increasing revenue as opposed to trying to contain costs.
One issue with existing Application Release Automation solutions is the lack of support for the database component of the application, which nearly always requires schema updates in a new release – and that’s where Datical comes in. Datical automates the process of packaging, validating, and deploying database changes in support of application delivery, employing a model-driven approach that treats database code like application code during the release cycle. In doing so, Datical completes the “last mile” of Application Release Automation, significantly reducing the risk of a failed database deployment and enabling database teams to keep up with ever-increasing release frequencies in a manner that’s consistent, repeatable, and traceable. On top of that, Datical comes with out-of-the-box integrations for Application Release Automation solutions like IBM UrbanCode Deploy, CA Release Automation, and Serena Deployment Automation which enable automated database deployments to be managed and governed within the existing DevOps automation framework.
Keep learning more. Read our whitepaper The Evolution of Application Release Automation