continuous delivery with docker containers and … · continuous delivery with docker and java ee...
TRANSCRIPT
![Page 1: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/1.jpg)
CONTINUOUS DELIVERY WITH
DOCKER CONTAINERS AND JAVA EE
Markus Eisele
@myfear
blog.eisele.net
![Page 2: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/2.jpg)
Continuous Delivery with Docker and Java EE
THE WORLD WE LIVE IN TODAY
Customers and consumers
• Ubiquitous access to data and services
• Impatient, want everything NOW
• Increased QoS expectations
Businesses
• New opportunities and markets
• Threat of being disrupted, intense competition
• Small time frames to get products and services out
2
![Page 3: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/3.jpg)
TRADITIONAL SOFTWARE DELIVERY ENVIRONMENT
![Page 4: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/4.jpg)
Continuous Delivery with Docker and Java EE
TYPICAL ASSUMPTIONS AND EXPECTATIONS
4
Software should
never break.
Ops teams are not
required in application
design discussions. Production environments
are provisioned/
through a mostly
manual process.
You have to give a
lot of lead time for getting
an application
environment.
Developers should
not have any access
to the production
environment.
An application is
deployed to production
after all development
is complete.
We cannot keep
deploying code to
production on a
regular basis.
Deployments are a
headache—software is
deployed using a
mostly manual process.
![Page 5: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/5.jpg)
Continuous Delivery with Docker and Java EE
5
1 2 3
8 7 6
4
5
Request a VM Request a
middleware platform
Set up the
environment for the
application
Configure build
scripts
Write code
for application
Unit testDeploy to Share
Dev
Integration test
DEV
Request a VM Request a middleware platform1 2 3 Set up the environment for
the application
4 Build and deploy application6 Sign off to deploy
application
5
Integration testing
Regression testing
Functional testing
Non-functional testing
Performance testing
Stress testing
Manual testing
TEST
1 Request a VM 2 Request a middleware
platform3 Set up the environment for
the application
4 Build and deploy application
5 Smoke test
9 Get application fix
8 Root cause analysis 7 Production
issue
6 Monitor the
application
OPS
![Page 6: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/6.jpg)
Continuous Delivery with Docker and Java EE
5
Request a VM Request a
middleware platform
Set up the
environment for the
application
Configure build
scripts
Write code
for application
Unit testDeploy to Share
Dev
Integration test
Request a VM Request a middleware platform Set up the environment for
the application
Build and deploy applicationSign off to deploy
application
Integration testing
Regression testing
Functional testing
Non-functional testing
Performance testing
Stress testing
Manual testing
Request a VM Request a middleware
platformSet up the environment for
the application
Build and deploy application
Smoke test
Get application fix
Root cause analysis Production
issue
Monitor the
application
DEV
TEST
OPS
6
21 3
8 7 6
4
1 2 3
46 5
Developers should focus
on writing code.1 2 3
4
5
9
8 7 6
![Page 7: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/7.jpg)
Continuous Delivery with Docker and Java EE
Request a VM Request a
middleware platform
Set up the
environment for the
application
Configure build
scripts
Write code
for application
Unit testDeploy to Share
Dev
Integration test
DEV
Request a VM Request a middleware platform Set up the environment for
the application
Build and deploy applicationSign off to deploy
application
5
Integration testing
Regression testing
Functional testing
Non-functional testing
Performance testing
Stress testing
Manual testing
TEST
7
Quality engineers should focus on testing.
Request a VM Request a middleware
platformSet up the environment for
the application
Build and deploy application
Smoke test
Get application fix
Root cause analysis Production
issue
Monitor the
application
OPS1 2 3
4
5
9
8 7 6
1 2 3
46
1 2 3
8 7 6
4
5
![Page 8: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/8.jpg)
Continuous Delivery with Docker and Java EE
Request a VM Request a middleware platform Set up the environment for
the application
Build and deploy applicationSign off to deploy
application
Integration testing
Regression testing
Functional testing
Non-functional testing
Performance testing
Stress testing
Manual testing
TEST1 2 3
46 5
8
Request a VM Request a
middleware platform
Set up the
environment for the
application
Configure build
scripts
Write code
for application
Unit testDeploy to Share
Dev
Integration test
DEV1 2 3
8 7 6
4
5
Ops engineers should focus on
providing reliable and stable environments.
Request a VM Request a middleware
platformSet up the environment for
the application
Build and deploy application
Smoke test
9 Get application fix
8 Root cause analysis 7 Production
issue
6 Monitor the
application
OPS1 2 3
4
5
![Page 9: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/9.jpg)
BUT THIS IS SOOOOOOOOOOOOOOOYESTERDAY.
![Page 10: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/10.jpg)
Continuous Delivery with Docker and Java EE
CONTINUOUS DELIVERY
• Continuous Integration
• Fail fast and recover
• Self service
• 100% Automation
• Push to Prod
• Proactive Monitoring and Metrics
• Requires fast and ConsistentBuild and Deploy
![Page 11: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/11.jpg)
Continuous Delivery with Docker and Java EE
TRADITIONAL SILOS
![Page 12: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/12.jpg)
Continuous Delivery with Docker and Java EE
BREAKING THEM DOWN (THE MONOLITHIC WAY)
![Page 13: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/13.jpg)
Continuous Delivery with Docker and Java EE
BREAKING THEM DOWN (THE MICROSERVICE WAY)
API
![Page 14: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/14.jpg)
Continuous Delivery with Docker and Java EE
TRADITIONAL ARCHITECTURE
![Page 15: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/15.jpg)
Continuous Delivery with Docker and Java EE
SCALING == SCALING THE COMPLETE STACK
![Page 16: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/16.jpg)
Continuous Delivery with Docker and Java EE
TOMORROWS APPROACH (MICROSERVICES)
![Page 17: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/17.jpg)
Continuous Delivery with Docker and Java EE
PACKAGE ONCE RUN EVERYWHERE (CONTAINER)
Physical |Virtual |Private | Public
![Page 18: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/18.jpg)
Continuous Delivery with Docker and Java EE
SCALING SERVICES ON DEMAND
Physical |Virtual |Private | Public
![Page 19: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/19.jpg)
Continuous Delivery with Docker and Java EE
PYRAMID OF MODERN APPLICATION DEVELOPMENT
![Page 20: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/20.jpg)
Continuous Delivery with Docker and Java EE
WHAT‘S IN IT FOR JAVA EE DEVELOPERS?
• Developers can focus on the app
• Standardized Development Environment
• Spin-up and Tear-Down of different instances in seconds.
• Easy, centralized configuration
• “Build, Ship and Run: Any App, Anywhere”
• Faster and more predictable delivery
![Page 21: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/21.jpg)
Continuous Delivery with Docker and Java EE
CONTAINERS, WHAT‘S SO GREAT?
• Put everything in a box
• It’s cheap (compared to special shipments)
• I don’t have to care if they are delivered on a ship, a truck or a train
• I can put a look on it and make sure that my integrity is kept
• If a container breaks replace it
![Page 22: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/22.jpg)
Continuous Delivery with Docker and Java EE
CONTAINERS, WHAT ARE THE DRAWBACKS?
• One size doesn’t fit all.
• I hope no one drops my container.
• No one is going to care if I put a sign on it saying fragile.
• I cannot change the routing while in process.
• I’m not in control.
![Page 23: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/23.jpg)
Continuous Delivery with Docker and Java EE
CONTAINER DEPLOYMENT
• Many organizations today are not ready to directly deploy the same containers in all environments
• “Build, Ship and Run Any App, Anywhere” (Docker Slogan)
• Requires adopting DevOps principles and Microservices architecture
• Today typical Java EE application still requires small variations between environments.
• E.g. Memory usage, clustering, endpoints, security patches etc
• The key is to minimize the variations.
![Page 24: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/24.jpg)
Continuous Delivery with Docker and Java EE
CAN CONTAINERS BE ABUSED?
• Containers are immutable
• Release vs Patch
• If it break, replace it. Do not try to fix them.
• Complex environment gets complex to maintain even with containers
• Use a orchestration tool like OpenShift
![Page 25: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/25.jpg)
HOW TO DO IT?
![Page 26: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/26.jpg)
Continuous Delivery with Docker and Java EE
JAVA EE DEVELOPMENT WORKFLOW
? ?
??
![Page 27: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/27.jpg)
Continuous Delivery with Docker and Java EE
SOLUTION ONE: DEVELOPMENT ENVIRONMENT
![Page 28: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/28.jpg)
Continuous Delivery with Docker and Java EE
SOLUTION TWO: CI ENVIRONMENT
![Page 29: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/29.jpg)
Continuous Delivery with Docker and Java EE
SOLUTION THREE: CLOUD DEV ENVIRONMENT
s2i
![Page 30: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/30.jpg)
Continuous Delivery with Docker and Java EE
SOLUTION FOUR: CLOUD DEVOPS ENVIRONMENT
![Page 31: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/31.jpg)
Continuous Delivery with Docker and Java EE
Developer Experience
Ops UserExperience
Cluster Management
Container & Registry
ContainerHost
![Page 32: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/32.jpg)
Continuous Delivery with Docker and Java EE
DEVELOPER UI
![Page 33: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/33.jpg)
Continuous Delivery with Docker and Java EE
![Page 34: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/34.jpg)
Continuous Delivery with Docker and Java EE
MORE RESOURCES AND READINGS
• Fabric8 Guide
http://fabric8.io/guide/overview.html
• Running WildFly on Fabric8 / OpenShift
http://blog.eisele.net/2015/07/running-wildfly-on-openshift-3-with-kubernetes-fabric8-on-windows.html
• Handy Resources for WildFly on Docker
http://blog.eisele.net/2015/01/java-ee-docker-wildfly-and-microservices-on-docker.html
Follow:
- @myfear
- @jbossdeveloper
- @fabric8io
![Page 35: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/35.jpg)
Continuous Delivery with Docker and Java EE
http://developers.redhat.com/promotions/distributed-javaee-architecture/
![Page 36: CONTINUOUS DELIVERY WITH DOCKER CONTAINERS AND … · Continuous Delivery with Docker and Java EE TYPICAL ASSUMPTIONS AND EXPECTATIONS 4 Software should never break. Ops teams are](https://reader031.vdocuments.site/reader031/viewer/2022021914/5c759c6209d3f25d028b5a5c/html5/thumbnails/36.jpg)
QUESTIONS?