Rapid Application Development!
in the Cloud and On-Premises!
with Docker !
Niklas Heidloff, IBM
Bluemix Developer Advocate
@nheidloff
heidloff.net
Rapid Application Development!
§  Need for speed
§  Deliver new apps in days rather than months
§  Innovate via functional prototypes rather than UI sketches
§  Need for simplicity
§  Enable different types of developers including line of business
developers to build valuable apps
New Methodologies and new Technologies!
§  New methodologies
§  Agile
§  Design Thinking / Minimal Viable Product
§  New technologies
§  Open Source
§  StackOverflow
§  Tools, platforms, languages
Rapid Deployment ?!
§  Coding is often rapid, but deployment is (mostly) not
§  Issue: Different target platforms with different configurations
§  Expanded role of developers: Not only responsible to write
code but responsible for full life cycle up to the testing in
production environments
§  Old developer excuse “it works on my machine” doesn’t count any
longer
DevOps!
§  DevOps supports developers to automate testing and
deployments through delivery pipelines
§  But deployments can still be challenging
§  Different types of applications
§  Different target environments
Containers to the Rescue!
Containers vs. VMs!
§  Lighter weight than VMs (virtual machines)
graphics from docker.com
Enter Docker!
§  Standardizes the packaging of applications and container
runtimes
§  Write once run everywhere
§  Package once deploy everywhere
Introduction to Docker!
§  Enabling application development efficiency,
making deployment more efficient,
eliminating vendor ‘lock-in’ with true portability
§  Open
§  Software
§  Contribution
§  Design
§  Governance
Docker Terminology!
§  Image
§  Container
§  Registry
§  Engine
Cloud
On
Prem
Demo!
§  Simple Java web application on Liberty Profile
§  Create image locally
§  Run container locally
Sample Servlet!
Dockerfile!
Build Image!
Run Container!
Sample Application!
Same Sample on Tomcat!
Spring Boot Sample!
Docker Maven Plugin!
§  rhuss/docker-maven-plugin to build images and run
containers
§  mvn docker:build
§  mvn docker:start
§  mvn docker:stop
§  mvn
-Ddocker.removeAll
docker:remove
Registries to share Images!
§  Docker Hub
§  Public
§  Private
§  Docker Trusted Registry
Docker on IBM Bluemix!
§  Bluemix is IBM’s application platform in the cloud based on
Cloud Foundry
§  IBM extends and connects Docker containers to
production-ready enterprise environments
§  IBM hosted private registry
§  Run containers in local datacenters or in the cloud
§  External IP addresses
§  Integrated monitoring and logging
§  Security readiness guidance via Vulnerability Advisor
Demo!
§  Push image to Bluemix
§  Create container on Bluemix
§  Monitor container
Tag Image!
Push Image!
Push Image (cont.)!
Image Registry!
Run Container!
Running Container – Overview !
Sample Application!
Running Container – Instances !
Running Container – Monitoring !
Running Container – Logs !
Running Container – Advanced Logs !
Vulnerability Advisor!
Vulnerability Advisor (cont.)!
Automation via Delivery Pipelines!
§  To simplify the process to build images and run containers,
delivery pipelines can be used
§  Different deployment strategies can be used to deploy to
different target environments without downtimes
Demo!
§  Automate deployments via delivery pipelines
Java Code Modification!
Push Change!
Automatic Maven Build!
Automatic Docker Build!
Automatic Container Creation!
Completed Deployment!
Changed Application!
Bluemix Services for Docker Applications!
§  Bluemix allows not only the hosting of Docker applications
but also provides more than 100 services to build rapidly
applications without having to set up infrastructure
§  Services are provisioned when added to applications and
can be accessed via REST APIs (plus other language
bindings) with user specific credentials
Bluemix Services!
§  Databases
§  Services to build web apps
§  Cognitive services
§  Backends for mobile apps
§  Internet of Things
§  Analytics and Big Data
§  Access to on-prem services and data
Demo!
§  Leverage Bluemix services
Docker to Cloud Foundry Bridge!
Bind Services!
Bind Services (cont.)!
Bound Service with Credentials!
Sample Application accessing Credentials!
Take-Aways!
§  Docker containers allow the standardized packaging of
applications and easy deployments to different
environments
§  Docker is currently the de-facto container standard and is
evolving into the Open Container Initiative
§  IBM adds enterprise capabilities for Docker images and
containers
§  Try Docker in the cloud via the 30 days trial of Bluemix
Thank you!

Rapid Application Development in the Cloud and On-Premises with Docker