Written by Emil S. Frisendal, HP SW Community Assistance Team
At HP Discover 2014 in Barcelona December 2-4, we showed a demo using HP Operations Orchestration (HP OO) Community Edition and Docker.
The demo is a showcase on how to use new cutting edge open source technologies, such as Docker, through HP Operations Orchestration (HP OO) IT process automation in order to get an abstraction layer that provides governance and a unified way of using these technologies across your organization.
The use case we demonstrated is based on a typical day in the life of a QA engineer who needs to perform end-to-end tests of new builds of an application against several operating systems.
To be more efficient, this can be automated using HP OO and done in parallel in just a few minutes. The process and scope is described in the illustration below:
All systems in this demo are included in the download and are running in Docker containers. You can easily run this demo yourself on your laptop by installing Boot2Docker and download the demo content. Links are provided in the end of this post. The demo has the following components:
HP Operations Orchestration Community Edition – as the orchestration engine
Nexus – the artifact repository which is the source of the build artifact
Docker host and containers – as the infrastructure for all of the tools and for the QA machines
Selenium – the functional testing tool
Pet Clinic – the sample application for this demo
CentOS, Ubuntu, and Suse – the operating systems that Pet Clinic will be tested on
The demo content contains two flows and several sub-flows. These are documented in the guide that comes with the content. In this post we will take a closer look that the main flow: Deploy Pet Clinic and Trigger Tests in Parallel. The flow has been designed to demonstrate the ease of automatically deploying and automatically testing in parallel a web application – in our case the Pet Clinic sample application to newly deployed Docker containers. This could easily be a part of a larger DevOps process. The flow requirements were:
Dynamically create four new Docker containers on the Docker host
Dynamically remove all four containers, thus leaving the environment clean
Send an email report using smtp server to a recipient. The email report itself should provide enough details for the recipient in terms of:
Tests’ status (test results are received as attachments)
Containers’ status (if they have been properly created and removed)
General environment details
The first two requirements come from the fact that we in our R&D teams are sharing Docker hosts, and we found, that since containers are so fast and easy to create, that without a proper policy the Docker hosts would quickly become flooded with unused containers. With standardized flows we ensure that cleanup is done automatically according current policies
So how does it work? The workflow performs the following actions:
Create the Selenium environment (new container)
For each target OS (CentOS, Ubuntu, and Suse) run in parallel:
Create OS specific container
Deploy Pet Clinic build (using a Docker Exec command on each container)
Run test using Selenium
Delete OS specific container
Analyze the selenium reports and formalize a results summary
Send an email on results to the pre-provided email addresses
The following diagram provides an overview of the containers:
In HP OO the flow has the following design:
Running the demo locally
It is easy to get started – just download three items:
If you a HP Live Network account, you are ready to start. If you don’t have an account, it is free and easy to create one.
Start by downloading the demo content from HP Live Network and check the demo guide for the detailed installation steps. The demo content will create a container for HP OO Community Edition, so you do not need to install this yourself – however you will need to download that binary and provide it to the demo installer as specified in the guide.