Application Release Automation with Zero Touch Deployment

Similar documents
Business Agility SURVIVAL GUIDE

CA Workload Automation for SAP Software

SOLUTION BRIEF CA SERVICE MANAGEMENT - SERVICE CATALOG. Can We Manage and Deliver the Services Needed Where, When and How Our Users Need Them?

Next-Generation Performance Testing with Service Virtualization and Application Performance Management

CA Technologies optimizes business systems worldwide with enterprise data model

how can I improve performance of my customer service level agreements while reducing cost?

CA NSM System Monitoring Option for OpenVMS r3.2

agility made possible

How can Content Aware Identity and Access Management give me the control I need to confidently move my business forward?

1 CA SECURITY SAAS VALIDATION PROGRAM 2015 ca.com. CA Security SaaS Validation Program. Copyright 2015 CA. All Rights Reserved.

Identity and Access Management (IAM) Across Cloud and On-premise Environments: Best Practices for Maintaining Security and Control

An Enterprise Architect s Guide to API Integration for ESB and SOA

solution brief February 2012 How Can I Obtain Identity And Access Management as a Cloud Service?

CA Clarity PPM. Overview. Benefits. agility made possible

The Future of Workload Automation in the Application Economy

CA Business Service Insight

can you effectively plan for the migration and management of systems and applications on Vblock Platforms?

agility made possible

How Can Central IT Use Cloud Technologies to Revolutionize Remote Store Operation?

protect your assets. control your spending

Building a Roadmap to Robust Identity and Access Management

CA Process Automation for System z 3.1

Fujitsu Australia and New Zealand provides cost-effective and flexible cloud services with CA Technologies solutions

how can I comprehensively control sensitive content within Microsoft SharePoint?

can you simplify your infrastructure?

can you improve service quality and availability while optimizing operations on VCE Vblock Systems?

Dynamic Data Center Update:

CA Automation Suite for Data Centers

CA Aion Business Rules Expert r11

CA Workload Automation CA 7 Edition r11.3

A to Z Information Services stands out from the competition with CA Recovery Management solutions

Service Catalog Management: A CA Service Management Process Map

Siemens uses CA Clarity PPM for project management of R&D for wind, solar and hydro solutions

Authentication Strategy: Balancing Security and Convenience

solution brief September 2011 Can You Effectively Plan For The Migration And Management of Systems And Applications on Vblock Platforms?

are you helping your customers achieve their expectations for IT based service quality and availability?

CA Repository for z/os r7.2

how can I improve customer experience by reducing the cost and complexity of and accelerating the path to dynamic service delivery?

WHITE PAPER NOVEMBER Eliminate Software Development and Testing Constraints with Service Virtualization

agility made possible

CA SOLVE:Central Service Desk for z/os

Radix Technologies China establishes compelling cloud services using CA AppLogic

CA Virtual Assurance for Infrastructure Managers

CA CMDB Connector for z/os version 2.0

Contents. Introduction... 1

CA Endevor Software Change Manager Release 15.1

A FinCo Case Study - Using CA Business Service Insight to Manage Outsourcing Suppliers

Logicalis delivers low-risk, cost-effective cloud computing services with CA Technologies

Grants Management for CA Clarity PPM gives you the confidence to choose the RIGHT applicants, make the RIGHT decisions, award the RIGHT funds, and to

Picis improves the delivery of client projects worth $50 million with CA Clarity PPM

how can I deliver better services to my customers and grow revenue?

Can I customize my identity management deployment without extensive coding and services?

Improving Service Asset and Configuration Management with CA Process Maps

CA Server Automation. Overview. Benefits. agility made possible

Work Smarter, Not Harder: Leveraging IT Analytics to Simplify Operations and Improve the Customer Experience

Sallie Mae slashes change management costs and complexity with CA SCM

CA Service Desk Manager

Securely Outsourcing to the Cloud: Five Key Questions to Ask

Configuration Management in the Data Center

BancoEstado achieves greater data efficiency and system development agility with CA ERwin

can I customize my identity management deployment without extensive coding and services?

How Can I Better Manage My Software Assets And Mitigate The Risk Of Compliance Audits?

SOLUTION BRIEF CA Cloud Compass how do I know which applications and services to move to private, public and hybrid cloud? agility made possible

The Advantages of Converged Infrastructure Management

IntelliNet Delivers APM Service with CA Nimsoft Monitor

Transforming IT Processes and Culture to Assure Service Quality and Improve IT Operational Efficiency

How To Improve Your It Performance

CONTINUOUS DEPLOYMENT EBOOK SERIES: Chapter 1. Why Continuous Deployment Is Critical to Your Digital Transformation Strategy

How To Use Ca Product Vision

agility made possible

CA Configuration Automation

The NIST Framework for Improving Critical Infrastructure Cybersecurity - An Executive Guide

Access to easy-to-use tools that reduce management time with Arcserve Backup

SOLUTION BRIEF Enterprise Mobility Management. Critical Elements of an Enterprise Mobility Management Suite

Data Deduplication: An Essential Component of your Data Protection Strategy

CA Encryption Key Manager r14.5

Crossing the DevOps Chasm

Nordea saves 3.5 million with enhanced application portfolio management

ScaleMatrix safeguards 100 terabytes of data and continuity of cloud services with CA Technologies

Overview. Business value

Transcription:

WHITE PAPER JUNE 2013 Application Release Automation with Zero Touch Deployment Daneil Kushner and Eran Sher Application Delivery

2 WHITE PAPER: APPLICATION RELEASE AUTOMATION WITH ZERO TOUCH DEPLOYMENT ca.com Table of Contents Executive Summary 3 Section 1: 3 How to Automate Deployment in an Agile Organization and Get Results Section 2: 5 The Objective of Zero Touch Deployment in an Agile Organization

3 WHITE PAPER: APPLICATION RELEASE AUTOMATION WITH ZERO TOUCH DEPLOYMENT ca.com Executive Summary Challenge Today s agile organizations pose operations teams with a tremendous challenge: to deploy new releases to production immediately after development and testing is completed. To ensure that applications are deployed successfully, an automatic and transparent process is required. We refer to this process as Zero Touch Deployment. This article reviews two approaches to Zero Touch Deployment a script-based solution and a release automation platform. The article discusses how each can solve the key technological and organizational challenges faced by agile organizations when they set out to implement an automatic deployment system. The article begins by recounting the business and technological contexts that drive agile organizations to seek deployment automation solutions. Section 1 How to Automate Deployment in an Agile Organization and Get Results The highly competitive environment of the enterprise software industry has forced organizations to adopt software production methodologies that better ensure rapid delivery of new services to production. In order to meet business objectives, organizations must fulfill customer expectations for constant improvement and innovation and establish short feedback loops between the market and the development teams. Development teams discovered that established software development methods were often unfit to cope with the increasing pressure to innovate and create new functionality. One solution that arose was designing new software development methodologies around the concept of rapid software releases. These development frameworks broadly referred to as agile methodologies set out to shorten the software development lifecycle by implementing an iterative and incremental approach to the process. The Agile Iteration: A Micro-Development Lifecycle The basic principle of iterative and incremental development is that software development moves forward in small cycles, or iterations. Each iteration is a micro-implementation of the general software development lifecycle. It starts with planning, continues to development and testing, and ends in deployment. The initial iterations implement a subset of the software requirements, and the subsequent iterations gradually enhance the evolving application.

4 WHITE PAPER: APPLICATION RELEASE AUTOMATION WITH ZERO TOUCH DEPLOYMENT ca.com This cyclic approach enables organizations to be more receptive to their customer base, as user feedback on current iterations impacts the development course of future ones. The business value of the application increases because its functions are constantly being evaluated, modified and perfected. Also, the iterative approach can have the significant advantage of allowing the application to generate revenue at a much earlier stage than traditional waterfall-like development methods. The iterative approach spans the complete development process, from design through development and testing and finally to deployment. However, this transformation is not easy to accomplish. Faster methods need to be devised to carry out the testing of the new functionality, its integration into the general build, and its deployment to pre-production and production environments within the confines of the single iteration. For the testing and integration stations, a solution comes in the form of Continuous Integration (CI). Continuous Integration: Extending the Agile Methodology to Testing and Integration Continuous integration uses automation to apply testing and integration at the single iteration level. Whenever a developer commits a new code to the version control system (preferably at least once a day), the CI server automatically runs a new build and applies a full range of automatic tests, including unit tests, component tests, integration tests, and functional as well as non-functional acceptance tests. Manual tests are confined only to those testing aspects that cannot be performed by machines. Problems that are identified as a result of failed tests can be fixed by the development team before the latter moves on to the next iteration. This depiction is schematic, of course, but it captures in broad strokes the reality in many organizations, whose business survival depends on their ability to release to production a constant flow of new functionality. However, a software development cycle does not end with the testing and integration stations. To complete the agile development cycle, organizations have to extend the iteration to include the deployment of the new functionality to all environments in the application lifecycle. But although deployments are, at least in theory, a part of the CI framework, it seems that this last phase of the software development lifecycle is also the last to adapt to the agile ecosystem. The Bottleneck Simply Shifted to Operations Nowadays, organizations realize that they cannot adopt an agile methodology for development and testing and then stop short before extending it to deployment. Even when agile methodology is executed to perfection and every iteration produces well-working and integrated functionality, it is not effective if it cannot be deployed in time. An overwhelmed operations team cannot handle the flow of new updates and the bottleneck that overloaded development and testing simply shifts to operations. As it is, operations teams are facing complicated challenges without even taking into consideration the increasing rate of deployment events. Deployment flows have become more complicated, with multiple tiers and service-oriented architectures. Physical and virtual environments are simultaneously supported and maintained, and the number of deployed servers has increased exponentially since the introduction of virtualization and cloud-computing technologies. In the context of this business reality, the adoption of agile methodologies and continuous integration makes matters worse by adding additional complexity to an already complex organizational and technological environment.

5 WHITE PAPER: APPLICATION RELEASE AUTOMATION WITH ZERO TOUCH DEPLOYMENT ca.com In many organizations, the delayed adaptation to the agile mode of work in operations undermines the overall objective of an agile and iterative framework. Instead of being deployed in a dedicated release, the products of single iterations are packaged with products of other iterations. This unfortunate outcome counteracts the basic tenants of agile methodologies, since new functionality is waiting for deployment instead of running in production, generating income and being reviewed by customers. Figure 1. XML Deployment Manifest. These processes enable a deployment station that supports the agile lifecycle by clearing an open passage to the production environment and customer for every iteration. Section 2 The Objective of Zero Touch Deployment in an Agile Organization An agile organization, then, poses one tremendous challenge to operations: the ability to deploy new releases to production, where they can be reviewed by users and possibly generate revenue, immediately after successfully completing development and testing. In other words, the deployment process should be fully automatic and transparent as soon as it is activated. We refer to this integration of the deployment station to the iterative and incremental approach that characterizes the agile development and testing stations as Zero Touch Deployment. In its extreme form, Zero Touch Deployment depicts a process whereby release to production is automatically triggered by the successful promotion of a new build from the acceptance testing station. Tailor-made deployment manifest files are often created to enable Zero Touch Deployment for complex releases. Manifest deployments separate the dynamic elements of the application release from the fixed processes. This involves putting all the dynamic, changeable elements of a deployment in an xml file or other data source, including such details as which application resources should be taken, their specific location and the version. These details can be changed quickly and easily per release. The simple fixed processes, directing how the release process should be executed, are kept separate and can be employed and repeated time and time again.

6 WHITE PAPER: APPLICATION RELEASE AUTOMATION WITH ZERO TOUCH DEPLOYMENT ca.com Figure 2. Consumption of XML Manifest in CA Release Automation. The Complexities of Deployment Automation However, automating the deployment of large-scale data center applications is not a simple task to achieve, especially if we set out to provide a real and complete answer to the deployment needs of agile organizations. Whether it is comprised of a collection of deployment scripts or managed by a specialized application release automation platform, the automatic deployment system has to cope with numerous complexities on multiple levels. One complexity arises from the different types of deployment events agile organizations produce. That means that different automatic deployment processes have to be created and maintained to handle deployment events ranging from a full installation of the application to a minor update or even a single configuration file update. An automatic deployment system must be able to simplify application deployment tasks and mitigate risks, turning complex, manual operations into reliable, repeatable and error-free processes. This accelerates the time-to-release of individual releases and enables the simultaneous deployment of multiple applications. Moreover, each of these deployment events can involve more than one application tier. A minor deployment event, such as a bug fix, can involve changing a parameter value in the configuration file of a middleware server as well as applying a patch to a library file in an application server. A major deployment event, such as installing an application from scratch, usually involves simultaneously deploying the application to a database server, application server and/or a Web server.

7 WHITE PAPER: APPLICATION RELEASE AUTOMATION WITH ZERO TOUCH DEPLOYMENT ca.com The implications of this on any automatic deployment process are that it must be comprised of separate deployment flows, one for each application component or tier. Therefore, to enable the deployment of multi-tier applications, any automation deployment system must be able to capture the tier-based architecture of the deployed applications. A script-based system would map a separate deployment script to each tier. A dedicated automatic release platform can employ a graphical approach to enable the user to visually represent and create the different tier-dedicated flows of the deployed application. Co-dependent relations between tier-specific deployment flows represent another complicating factor that the automatic deployment process has to be able to contain. Deployment flows are said to be co-dependent when one flow can start execution only after another flow has run its course; for example, the website deployment flow cannot start before the database deployment flow is completed. An automatic deployment mechanism is expected to be able to coordinate the execution order of co-dependent tier-specific deployment flows. A script-based system can use a build management tool to coordinate between the execution of the different tier deployment scripts. An automated release platform can enable the user to specify the co-dependent relations by drawing connectors between nodes representing the different tier-dedicated flows. Figure 3. Multi-Tier Dependency During Application Deployment

8 WHITE PAPER: APPLICATION RELEASE AUTOMATION WITH ZERO TOUCH DEPLOYMENT ca.com In addition to the challenges inherent in the multiplicity of deployment events and flows and in their execution management and coordination, an automatic deployment system has to manage multiple deployment destinations. The rise of online applications serving a global user base, accompanied by the spread of virtualization and cloud-based technologies, has increased by tenfold the number of instances targeted by a single application release. Consequently, an automatic deployment system has to execute one deployment event to hundreds or thousands of servers residing in multiple data centers. To be able to manage application deployments to a multitude of servers, each with its own configuration information, automatic deployment systems must be able to support clean separations between the deployment process and the configuration information. For each deployment destination, an instance of the same deployment process is executed with a unique configuration information set. To support such a separation, a script-based system has to set up a strict configuration management policy. An automatic release platform, on the other hand, has a dedicated grid that maps and represents the environment in which the application is deployed. Each physical, virtual or cloud server is represented graphically in the context of its environment, as well as in its relation to the deployment process. The configuration information of each server is represented, stored and maintained in the context of this representation. Automating deployment along the principles of Zero Touch Deployment can help organizations fulfill the objective of the deployment station in an agile framework namely, to deploy new code to production immediately after it has completed the development and testing stations. Automatic Deployment: Not Just to Production However, an automatic deployment system that is comprehensive, adaptive and robust enough to face the challenges posed by an agile organization must be in a constant process of tuning and perfection. For this reason, it is imperative not to limit the use of the automatic deployment process to the deployment station at the end of the iteration. On the contrary, the same automatic process that is used to deploy to production should be used to deploy to the development and to the testing environments throughout the iteration. This directive ensures that the deployment process is tried extensively before release day to avoid any last-minute surprises. The development team should use the automatic process whenever they need to deploy the application to their local development station, and the testing team should also use it when they create their testing environment. This way, any negative impact of the new code on the automatic deployment process is discovered early, when it is relatively easy to correct. Because development and testing environments are different from production environments, some modifications should be implemented to make these environments more production-like. Such modifications may involve some costs, but these expenses are minimal in comparison to the cost of unsuccessful release days.

9 WHITE PAPER: APPLICATION RELEASE AUTOMATION WITH ZERO TOUCH DEPLOYMENT ca.com Figure 4. High-level Graphical Representation of Application Deployment Process A Deployment Language Common to All This brings us to the question of who owns the automatic deployment system. Deployment used to be the sole responsibility of operations, but the reality of agile organizations has made deployment the business of everyone involved in software production. Since developers, testers and operation personnel alike must use the automatic deployment system in their daily work, they must share the knowledge regarding the technology, terminology, work practices and release strategies that are involved in everyday running and maintenance. Figure 5. Ecosystem of an Application Deployment

10 WHITE PAPER: APPLICATION RELEASE AUTOMATION WITH ZERO TOUCH DEPLOYMENT The implication of this organization-wide shared ownership on the automatic deployment system is that it should be accessible to everyone participating in the development lifecycle. In the case of a script-based system, only personnel with coding skills can develop and maintain the deployment scripts. This limits the accessibility of the system from the point of view of the organization. owever, in the case of a dedicated release automation platform, a task-specific GUI enables the user to define, configure and maintain the automatic deployment processes without recourse to script coding. In this context, there is a good chance for the formation of a common language between development, testing and operations, and the successful integration of the deployment station in the agile development lifecycle. Connect with CA Technologies at ca.com CA Technologies (NASDAQ: CA) creates software that fuels transformation for companies and enables them to seize the opportunities of the application economy. Software is at the heart of every business, in every industry. From planning to development to management and security, CA is working with companies worldwide to change the way we live, transact and communicate across mobile, private and public cloud, distributed and mainframe environments. Learn more at ca.com. About Logicalis SMC: Logicalis SMC has been a market leader of Service Management for over fifteen years and is the founder of Service Management as a Utility: an integrated approach that combines IT processes, tools and professionals that connect with the business. We work with the conviction that successful IT change relies on skill, enthusiasm and vigour. With that we develop flexible IT4IT solutions, based on best practices in IT Service Management, Enterprise Portfolio Management and Continuous Delivery. These are much-needed building blocks that enable IT organizations to get a firm grip on their services and to build a long lasting relationship with the business. More information on Logicalis SMC at www.logicalissmc.com, or E-mail: consulting@logicalissmc.com Copyright 2014 CA. All rights reserved. All trademarks, trade names, service marks and logos referenced herein belong to their respective companies. This document is for your informational purposes only and to the extent permitted by applicable law, CA provides it as is without warranty of any kind, including, without limitation, any implied warranties of merchantability, fitness for a particular purpose, or noninfringement. The information in this document is based upon CA s experiences with the referenced software products in a variety of development and customer environments. Past performance of the software products in such development and customer environments is not indicative of the future performance of such software products in identical, similar or different environments. In no event will CA be liable for any loss or damage, direct or indirect, from the use of this document, including, without limitation, lost profits, business interruption, goodwill or lost data, even if CA is expressly advised in advance of the possibility of such damages. CA does not provide legal advice. Neither this document nor any software product referenced herein serves as a substitute for your compliance with any laws (including but not limited to any act, statute, regulation, rule, directive, standard, policy, administrative order, executive order, and so on (collectively, Laws ) referenced herein or any contract obligations with any third parties. You should consult with competent legal counsel regarding any such Laws or contract obligations. CS200_84455_0914