Introduction
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 Urban Code 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.
Overview
We built this hybrid and
on-premises cloud deployment demo for the IBM booth at DockerCon 2015 with the
following products:
v Docker Trusted Registry (DTR)
v IBM Containers on Bluemix
v IBM UrbanCode Deploy (UCD) with NEW Plugins for Docker
and IBM Containers
v IBM UrbanCode Build
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.
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.
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!
Download
File
Name
|
Size
|
Download
|
Deploy Containers to On-Premises and Hybrid Clouds with IBM
and Docker.pdf
|
600KB
|
0 comments :
Post a Comment