Community

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.

StoreApplication

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.

Store_UCD_Config

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.

Scenario

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.


Conclusion

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
4 Comments

Leave a Reply

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


JP

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!!!

Reply

    Sanjay.Nayak

    Thanks JP

    Reply

Sri Shetty

Excellent Sanjay, Thanks for putting this together.

Reply

    Sanjay.Nayak

    Thanks Sri

    Reply
More Community Stories

Welcome to IBM Cloud for VMware Solutions 2.0

IBM Cloud for VMware Solutions 2.0: Enhanced Management Control and Performance for your Hybrid Cloud Environment Since the strategic partnership between VMware and IBM Cloud launched almost 2 years ago, enterprise clients around the world have realized the myriad benefits of integrating their on-premises data center environments with IBM Cloud. Businesses seeking security and control […]

Continue reading

Db2 on Cloud offsite disaster recovery node is now in closed beta

Today, Db2 on Cloud already has excellent availability characteristics, with a 99.99% SLA and the ability to scale your database without app downtime, unlike other competitors in the market.

Continue reading

IBM Cloud Monitoring – Now Available in Germany and Sydney

Starting today, IBM Cloud Monitoring expands its availability from US-South to include the Germany and Sydney regions. IBM Cloud Monitoring automatically collects metric data from select IBM Cloud services. Build dashboards and gain insights through a hosted Grafana UI. Visit us in the IBM Cloud Catalog in the DevOps Section.

Continue reading