Deploy containers to on-premises and hybrid clouds with IBM and Docker

Share this post:

As of May 23rd IBM Bluemix Container Service now provides a native Kubernetes operations experience while removing the burden of maintaining master nodes. Kubernetes itself is based on the Docker engine for managing software images and instantiating containers. Get the details.

In this post, we describe how you can quickly and continuously develop and deploy hybrid multi-tier and multi-container applications to on-premises and public clouds using IBM and Docker products.

IBM is Docker Inc.’s lead-with partner to bring containers technology to the Enterprise. IBM has integrated its UrbanCode DevOps offerings with the new Docker Trusted Registry product to enable multi-platform and multi-container deployments. Additionally, IBM is wrapping Docker Trusted Registry with its world-class support that enterprise customers highly value. Read more about IBM and Docker partnership here.

We built this hybrid and on-premises cloud deployment demo for the IBM booth at DockerCon 2015 with the following products:

An Enterprise Hybrid Cloud Application

In the demo, we describe the development and deployment of an e-commerce application (The Store) that consists of a Node.js front-end Docker container running on IBM Containers in Bluemix, and a multi-container back-end deployed with Docker Swarm on-premises.  The figure below shows this hybrid architecture.


The front-end container uses the IBM Bluemix Secure Gateway Service to communicate with the back-end running in the on-premises infrastructure. As a first-class citizen in Bluemix, the container can also consume any of the other Bluemix services (such as cache, analytics, and email), as needed by the application as it evolves to meet new business requirements.

Easily configure Docker builds and deployments

UrbanCode Build and UrbanCode Deploy enhance developer productivity by enabling automated processes to quickly build and continuously deploy the application components to fully on-premises or hybrid environments. The UrbanCode products also provide easy-to-use and intuitive features for orchestration, visibility, and control of the automation processes that add value over command-line-only based workflows.

We model the Store Application in UrbanCode Deploy using the following containerized Components:

  • Front-end: Node.js
  • Back-end: WebSphere Application Server
  • Back-end: DB2
  • Back-end: MySQL

In UrbanCode Deploy, you can define different deployment Environments for an application, such as those representing on-premises, staging, production, and hybrid areas.

For the Store Application, we defined one Environment to deploy all 4 Components to an on-premises Swarm cluster, and defined another Environment to deploy the front-end container to IBM Containers in Bluemix and the three back-end containers to the on-premises Swarm cluster, as shown below.

UrbanCode Deploy also provides a graphical editor application to define the deployment processes for the Application and its Components.


Updating and deploying the application with UCD, DTR, and Bluemix

As part of the demo scenario for updating and redeploying the Store, we highlight the following DevOps process (the numbered steps correspond to the figure below).

  1. Developer changes the application and pushes it to the Git repository.
  2. UrbanCode Build is notified of the Git commit containing the updated code.
  3. UrbanCode Build packages the software into a new Docker image and pushes it to the on-premises Docker Trusted Registry instance.
    The new UrbanCode Deploy plugin then imports the updated image version for the application component.
  4. UrbanCode Deploy pushes the image for the front-end component to the IBM Containers Registry in Bluemix.
  5. UrbanCode Deploy starts the back-end Docker containers in the on-premises Docker Swarm cluster.
    UrbanCode Deploy starts the front-end Docker container on IBM Containers in Bluemix.


IBM UrbanCode Deploy provides enterprise grade automation, orchestration, management, visibility and control capabilities for the application development and deployment process, where an application can include software components hosted in bare metal, virtual machines or containers.

In the DockerCon demo recording we also show the use of an approval process in UrbanCode Deploy, which can gate the deployment of new software versions to an environment such as production only with the explicit action of a specific user role in the organization.


We showed how a multi-tiered and multi-container application could be quickly developed on-premises and continuously deployed to both an on-premises Docker Swarm cluster and an off-premises cloud environment such as IBM Containers in Bluemix. We used the enterprise features of IBM UrbanCode Build and IBM UrbanCode Deploy along with the new IBM-supported Docker Trusted Registry offering as the trusted repository for Docker images.

IBM UrbanCode products integrate with Docker Trusted Registry, as well as orchestrate and automate the deployment of multiple containers to multiple cloud environments as part of a typical DevOps pipeline. We also demonstrated how an application running in IBM Containers in Bluemix could securely connect to on-premises infrastructure using the Bluemix Secure Gateway service, with the potential to use the vast catalog of other Bluemix services.

For further details on the IBM UrbanCode Deploy plugins for Docker and IBM Containers in Bluemix, go to this link.

Please feel free to give us your feedback by posting your comments below, our aim is to help customers make the most of Docker containerization in their enterprise cloud environments!

Thanks to contributions from the following IBMers:

Sanjay Nayak, Noel Nihill, Michael Samano, Steve Hanley, Willie Duchenay, Kathy Girard

Add Comment

Leave a Reply

Your email address will not be published.Required fields are marked *


This is so cool! We can show the whole story with the strength of Docker and the simplicity of Bluemix! I will try to replicate this on my own environment!

Great work Team!!!



    Thanks JP


Sri Shetty

Excellent Sanjay, Thanks for putting this together.



    Thanks Sri

More Community stories

IBM Announces Promotions for Cloud Servers and Components

IBM is excited to announce 50% off list price for 60 days on selected virtual server and bare metal server offerings. This is your chance to try out a wide variety of IBM Cloud infrastructure offerings – from our fast, flexible and easily provisioned virtual servers to our high performance, totally customizable bare metal servers running Intel®'s Xeon® Scalable processors – perfect for driving today's HPC and cognitive / analytics workloads to new performance levels.

Continue reading

IBM Cloud Container Service Live in São Paulo, Brazil

IBM Cloud Container Service is a managed Kubernetes service providing an intuitive user experience with on-going cluster management. Built-in security and isolation to enable rapid delivery of apps, while leveraging IBM Cloud Services including Weather data, IoT, Analytics, or AI capabilities with Watson. Available in six IBM regions WW, including 20+ datacenters.

Continue reading

Retirement of IBM Cloud Schematics

Thank you for using the Schematics service on IBM Cloud. We’d like to inform you that we are retiring the Schematics service on March 30, 2018.

Continue reading