Grounded in the Cloud
cancel
Showing results for 
Search instead for 
Did you mean: 

Distributing Application Deployment using OO

collinchau

Written by Nir Diamant, HPSW DevOps Architect

 

Hello, my name is Nir, and I’m the DevOps architect at the CD group in HP Service Anywhere. My group has been using HP Operations Orchestration IT process automation to manage our automation, and I think our experience may benefit other DevOps professionals.

 

The challenge: build a modeled, easy to maintain, continuous deployment and upgrade process with zero downtime

 

20130918_HpLondon_Courtroom_088.jpgHP Service Anywhere is one of HP Software’s most complex projects. Service Anywhere is an ITIL service desk that offers IT management as a service for multiple tenants—each with potentially thousands of users. 

 

Our group’s CD team was challenged with continually deploying and upgrading this system. The requirements stated that the process must be fully automated, reliable, transparent, reasonably fast and easy to maintain. Because it is used across both testing and production environments it must be robust and versatile. And in addition, this needed to be simple enough to be triggered by other automatic systems, operators, developers etc.  

 

Service Anywhere is a distributed application - it runs on many hosts, yet it comprises a single holistic system. Continuously deploying and upgrading live SaaS environments requires a very high degree of automation. In particular, upgrading Service Anywhere’s production environments without downtime requires a very precise orchestration of various components. 

 

This orchestration involves deployment-specific tools and services as well as system runtime components, and must enforce a specific ordering of actions, precise timing, and validation of pre- and post-conditions.

 

Addressing properties management

Possibly the greatest issue we have had to address is properties management across various environments, both for our deployment tools, and application servers.

 

If you are a DevOps professional, you probably realize that Properties management, infrastructure modelling and integrating different tools are possibly the universal challenges for anyone creating a continues-deployment system.

In the following sections, I will describe how it is done in my group.

 

System Architecture

A valid Service Anywhere installation is composed of several different web applications, each with its own distinct role in the system. Because Service Anywhere is a distributed application, each role runs on more than one machine allowing for both high availability and scalability.

 

20130918_HpLondon_UpperHallway_110.pngA typical Service Anywhere installation includes at least nine machines, each running a web service. In addition, Service Anywhere relies on various second- and third party services and databases that provide:

  • persistence
  • messaging
  • caching
  • load balancing
  • indexing 
  • analytics

 

The Service Anywhere deployment process relies on Operations Orchestration for deployment, as well as an artifact repository, and a centralized properties service.

 

We needed to enable various players to trigger deployments on several different environments. For example: QA testers will trigger deployment on a testing environment while operators deploy on a production environment.

 

However, we did not wish to maintain more than one deployment flow. Moreover, whichever tool we chose to use had to satisfy a wide spectrum of requirements:

  • Run on multiple environments
  • Good integration with other tools
  • Allow for flexible decision making, and support both headless and interactive runs (With the same flow)
  • Authentication and authorization – who is allowed to run and where?
  • Tracking – who deployed what and where?
  • Logging – what went wrong and where?
  • Easy to change, maintain and support across environments

We have considered and compared several orchestration tools, and not only has OO fulfilled all of these requirements, it has provided us with more features and with a higher quality of features than any other tool we’ve considered. (We will not elaborate since a comparative analysis for OO and other orchestration tools and their features is outside the scope of this document). If you would like to take a look at some of the OO’s community content, you can find it here.

 

OO Deployment Flow

 

dir.png

 

The flow has two different modes of operation:

  • Concurrent mode, which deploys all hosts simultaneously by using OO’s multi instance operation. This mode is used when there is no need for zero downtime. (Non-production environments)
  • Serial mode, which runs the deployment host-by-host, relying on high availability and backward compatibility to allow uninterrupted use.

While the infrastructure used by the installation mainly remains static, schemas are often changed, and the Service Anywhere application servers are updated at each and every deployment.

 

At the start of every deployment flow, either the user or an external automated system must supply the application version for deployment. (As well as several other parameters). The following actions are then triggered by OO:

  1. Pulling environmental variables from an external properties service
  2. Running pre-installation requirements validation – for example, that all required hosts are available
  3. Trigger schemas update if needed
  4. Update each application server one-by-one by:
    • Removing the machine from the load balancer
    • Downloading the required artifacts from the artifact repository
    • Removing any old installation and installing the updated version
    • Verify that the application is running and responding
    • Rejoin the machine to the load balancer
  5. Run additional post-install update related operations
  6. Provide an installation report

If any of those steps fails, OO returns a message specifying the nature of the failure and the machine where the failure occurred. If the flow is not headless, the operator is given a choice between retrying, proceeding anyway, and aborting the flow. 

 

Summary

When installing distributed applications of any complexity, automation is mandatory. It would be absolutely impractical to attempt to install or update such applications manually. This is especially true when deploying several different application-versions to many different farms.    

 

20130128_THEATER_CONCRETE_TABLET_MAN_020.jpgUsing OO, our team deploys and maintains more than twenty installations over hundreds of hosts, across multiple environments and regions around the world. OO is a powerful orchestrator, which among other strong features, provides very good visibility, which enables us to manage our deployments and track problems as they occur.

 

Experience HP Operations Orchestration in just 2 hours

The new HP Operations Orchestration Community Edition is a free download, designed for easy self-installation. Begin experiencing within two hours the power of IT process automation and IT operations orchestration. For complete details, visit hp.com/go/oo-ce. Next Download HP Operations Orchestration Community Edition for FREE

 

 

 

 

Making Cloud Simple
About the Author

collinchau

Lending 20 years of IT market expertise across 5 continents, for defining moments as an innovation adoption change agent.

Events
Jan 30-31, 2018
Online
Expert Days - 2018
Join us online to talk directly with our HPE experts during online Expert Days. Find information here about past, current, and upcoming Expert Days. P...
Read more
28-30 November
Madrid, Spain
Discover 2017 Madrid
Join us for Hewlett Packard Enterprise Discover 2017 Madrid, taking place 28-30 November at the Feria de Madrid Convention Center
Read more
View all