4. Virtual Machines
Each virtual machine includes the application,
the necessary binaries and libraries and an
entire guest operating system - all of which
may be tens of GBs in size.
Containers
Containers include the application and all of its
dependencies, but share the kernel with other
containers. They run as an isolated process in
userspace on the host operating system. They’re also
not tied to any specific infrastructure – Docker
containers run on any computer, on any infrastructure
and in any cloud.Source Docker.com
5. Technology
• Operating System Virtualization
Examples: Solaris Containers and LXC (LinuX Containers)
• OS virtualization is lightweight
Small images (low transfer times)
Smaller memory overhead
Faster start times
• Docker Containers are Application Containers
Focused on transposing and operating software rather than pure isolation
5
6. Operations
• Consistent lifecycle and runtime
• Between software
packages/technologies
• Between environments
• Software specific operations are
still required
• Solution: Simplify software
operational requirements
6
Lifecycle
Create
Start/Stop
Destroy
Runtime
Volumes
Port Mappings
Network Attachment
7. Extension to Microservices
Docker Engine alone is just one component
of a microservice solution
Additional technology is required, and there are a many technology
combinations available
7
DockerRouting
Service
Discovery
HA/Auto
Scaling
Monitoring
Configuration
9. Build Preparation
• Prepare the build folder
• Add the applications
• Add Configuration files
• Add Dockerfile
• Get the server image
• docker pull websphere-liberty:8.5.5
• Build the image
• docker build –t odm871 .
10. The dockerfile
# ODM 8.7.1 on liberty 8.5.5.5 with derby database
#
# VERSION 1.0 FROM websphere-liberty:8.5.5 MAINTAINER pap <xxx@fr.ibm.com>
# accept license by default
ENV LICENSE=accept
# Deploy database driver for derby
COPY derby.jar /opt/ibm/wlp/usr/shared/resources/derby/ $
# Init derby database
ADD data.tar.gz opt/ibm/wlp/usr/shared/resources/
# Deploy the war files for RES and DC
COPY apps /opt/ibm/wlp/usr/servers/defaultServer/apps/
# Update server configuration
COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/
15. Transition to Capability Focus
Reorganization of how software is provided, consumed, and operated:
15
WebSphere
Liberty
Rule Execution
Rule Management
Heterogeneous:
• Installation Technologies
• Machine Topologies
• Operations
Homogeneous:
• Unified Software Delivery
• Simplified Topologies
• Consistent Operations
Installation
Manager
16. ODM on Cloud leverages Docker in Production
• ODM on Cloud running on Docker
• Internal Docker registry of images tuned for this SaaS offering
• A provisioning engine that orchestrates the Docker container
creation across predefined VMs
• Leverages Docker Swarm to place containers with anti-
colocation policy
• Each image instance executes a startup script packaged in the
image at Docker run
• Use Shipyard
• Positive feedback so far
• No quality or perf issue detected
• All ODM capabilities work as Docker containers
16
Platform
Dev Test Prod
Tenant ship
Dev Test Prod
Tenant shipUrbanCode
17. Private ODM Docker Images
17
RES Console
Scenario
Service
Provider
HTDS
Decision
Center
• First move consists in Dockerizing existing runtimes
• Run product JEE Artifacts in separated WAS Liberty containers
• Wire these containers with REST/JSON APIs
• Leverage Docker volume to configure the microservices
IaaS
(Virtual Machines, VLAN)
Docker Container
WAS Liberty
ODM
runtime
Docker Volume
18. DB2
Primary
DB2
Primary
Docker based ODM Topology
18
• An ODM Standard HA topology assembled based on Docker containers
Decision
Center 1
Decision
Center 2
IHS IHS
IP
sprayer
Hosted
Transparent
Decision
Service 1
Hosted
Transparent
Decision
Service 1
SSP 1 SSP 2
Virtual Machine
Docker container
Topology
descriptor
Docker
Swarm
Docker
Registry
Composition
Engine
UCD
19. Learnings from Dockerizing ODM
• Layered binary in the image
• Docker images contain several layers for Liberty
+ WAR
• Articulation between Docker and Liberty
Collective
• Currently using Liberty 8.5.5.7 servers & Swarm
without any Collective
• Externalize configuration & metadata in a
volume
• Let generic binary only in the image
• Minimize the number of images
• Clear cut between binaries/metadata
19
Docker Machine, Swarm & Compose
• Using currently Machine & Swarm
• Not yet Docker Compose
What is the best approach to load balance across
Docker containers
• IHS plugin are re-generated when we
add/change/remove containers
• Liberty Collective Controller can help by generating IHS
plugin when cluster changes
• Plugin for IHS or other load balancer can be generated
by CONSUL
Container monitoring & more
• Kibana
• Currently using Shinken, evolution of Nagios for
dashboards and alerts