Presentation given to the UK WebSphere User Group on 24 April 2016 giving a recap and update on integration between WebSphere Application Server and Docker. It covers both Liberty and the traditional application server.
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
WebSphere and Docker
1. WebSphere and Docker
THE NEXT CHAPTER(S)
David Currie | david_currie@uk.ibm.com | @dcurrie
Kavitha Suresh Kumar | kavisuresh@in.ibm.com | @kavi2002suresh
2. Contents
• Chapter 1: The Story So Far
• Chapter 2: Liberty Image Evolves
• Chapter 3: WAS traditional
• Chapter 4: Developer Experience
• Chapter 5: Container Platforms
• Chapter 6: Liberty Collectives
18. Dockerfiles
• Build an IBM HTTP server image
(https://github.com/WASdev/ci.docker.ibm-http-server)
• Build a WAS traditional images
(https://github.com/WASdev/ci.docker.websphere-traditional) for
• Developer
• Base
• ND
• Deployment manager
• Application server
• Custom node
19. Building a WAS traditional base or developer image
1. Obtain Installation Manager and WAS binaries from Fix Central and
developerWorks or Passport Advantage
2. Host binaries on an HTTP/FTP server
3. Use Dockerfile.prereq to build prereq image
4. Run prereq image to output a TAR file containing the product install
5. Use Dockerfile.install to build install image from TAR file
6. Optionally use Dockerfile.profile to add profile to image
Final image size is around 1.5 GB
20. Running a traditional server under Docker
$ docker run -p 9060:9060 -p 9080:9080 -d
--name=ws websphere-traditional
$ docker stop ws
$ docker rm ws
• Creates profile if not already created
• Pass -e UPDATE_HOSTNAME=true if hostname in existing profile
should be updated to match host at runtime
• Starts server and then monitors PID file
21. Deploying applications
• For development, use admin console, remote tools support or wsadmin
for application configuration and deployment
• For production, script deployment of application and build in to image
• Use -conntype NONE so that server does not have to be running
22. Data volumes
• Expectation is that WAS traditional containers are long-lived (may be
started/stopped multiple times)
• May still be desirable to persist certain files/directories outside of the
container e.g. transaction logs or logs
• Also possible to mount the entire profile as a volume to allow it to be
moved from one install image to another e.g.
• $ docker run -v /opt/IBM/WebSphere/AppServer/profiles -p 9060:9060 -d
websphere-traditional
23. Building ND images
• Build an install image as for base/developer but using ND binaries
• Create a Deployment Manager image with a dmgr profile
• Create a managed node image
• Runs a node agent and application server
• Federates to the deployment manager on startup
• Application server (and application) may be configured in to image at
build time (e.g. used as template for cluster member) or created at
runtime via deployment manager
• Some configuration (e.g. SIBus cluster members) must be configured
via deployment manager
24. Creating an ND topology
• Create a multi-host overlay network (or use host-level networking)
• $ docker network create cell
• Run deployment manager
• $ docker run --name dmgr -h dmgr --net=cell -p 9060:9060 -d dmgr
• Run application server image that federates to dmgr
• $ docker run --name server1 -h server1 --net=cell -p 9080:9080 -d appserver
25. Example ND topology
Host A
Host B
Host C
Container
Container
Container
Container
DMgr
Node
Agent
App
Server
Node
Agent
App
Server
Node
Agent
App
Server
33. Docker Datacenter
IBM reseller or Docker Datacenter providing L1 & L2 support: ibm.biz/ddc-announce
Docker Universal
Control Plane
Docker Trusted
Registry
On premises Datacenter Virtual Private Cloud
Docker Engines
Docker Swarm
Docker Datacenter
34. Docker Universal Control Plane Architecture
UCP Controller
Swarm
Manager
Certificate
Authority
KV Store
Docker Remote API Docker Remote API
LDAP/AD
User Requests via
Docker Remote API
External CA
HA Replica
Swarm
KV Store
HA Replica
Swarm
KV Store
35. Datacenter load-balancing reference architecture
https://www.docker.com/sites/default/files/RA_UCP%20Load%20Balancing-Feb%202016_1.pdf
Swarm Master NginxInterlock
Liberty Swarm AgentSwarm Agent Liberty
Docker
Compose
HTTP