Alm. Brand has been successfully running greenfield Dockerized workloads in production for nearly two years. However, enterprises are known for their very long-lived and ill-maintained monoliths which are not easily rewritten or relocated, and we have our fair share of those. Focusing on freeing up precious ops time, Alm. Brand ventured to transform all legacy WebLogic apps to run in Docker. The move has provided a golden opportunity to restructure our platform, and has helped push the DevOps agenda in what is probably the oldest company yet to present at DockerCon (1792).
Through an awesome live demo, we will demonstrate:
* as much as we can of our entire working production setup, boiled down to a Swarm stack file;
* how we are able to convert and deploy applications during office hours, unbeknown to the end users;
* how to smoothly and transparently handle the transition of users to the Dockerized environment;
* how we have streamlined monitoring, logging and deployment across greenfield and legacy apps
3. Agenda
1. Who are we
2. Where do we come from
3. What are we trying to do
4. Demo time
5. Wrap-up
6. Questions
*.prod.dockercph.com
The focus of this talk
is a live demonstration.
Everything will be reachable
from the following domain:
6. Alm. Brand A/S - Denmark
Insurance,
Banking,
Pension,
Leasing
Oldest company
to presentat
DockerCon
(1792)
Currently
around1,600
employees
nationally
Name
literallymeans
"GeneralFire"
7. Where Do We Come From / Part 1
1
Large WebLogic
clusters withtens of
applications and
services oneach
2
Apps crashing
affectedother apps,
i.e. crashedthe
entire clusteror
made it
unresponsive
3
We had a hard time
identifying the bad
acting apps
4
Excruciatingly long
deploy queues,
frequent server
restarts, scattered
logs
5
No straight-forward
way to scale apps
independently
8. Where Do We Come From / Part 2
4
IntroducedDocker whenthe
needarose for a better
platformsupporting higher
throughput, newer technologies
and increasedstability &
isolation
5
Docker Universal Control Plane
and Docker TrustedRegistry
(announced in Barcelona
November 2015, nowpart of
Docker Enterprise Edition)
together withenterprise
support enabledselling the
initiative internally
6
Deployedtens of brand new
greenfield, stateless services
to productionin the first
year, currently at 50
9. What Are We Trying To Do
Use what we’d built for greenfield
as a base for migrating legacy apps
Switch users over to the Dockerized apps
gradually to minimize impact of gotchas
that we didn’t / couldn’t catch in the
stages prior to production
Explicitly encode the otherwise
implicit configuration built up over a
decade into our WebLogic base
images, allowing for per-app
overrides
Avoid app code changes as much as
possible, nearly 50 apps to move and
they are not scheduled for being
rewritten in other technologies
10. Servicediscovery & runtimeconfig layer
Insidecontainers
Greenfield
Systems Overview in Alm. Brand
Build & deploy
Logging
Legacy
MetricsRegistrator
Docker EE
Sw arm Classic
11. Systems Overview in the Demo
Servicediscovery & runtimeconfig layer
InsidecontainersBuild & deploy Logging
Legacy
Registrator
12. Mixing Docker and Legacy Servers
Docker serversLegacy Servers
Service discovery & runtime config layer
13. Demo Overview
1 2 3 4
Short intro to
legacy app
Quick run
through
services in stack
Move legacy
app to Docker
platform
Move traffic to
new app live,
remove old one
15. Summary
1. Intro to demo app
2. Quick run through stack file
3. Created new branch for containerization
4. Deployed legacy app to Docker platform
5. See the containerized app show up in service catalog
16. Summary / Part 2
6. Showed the startup logs from the containerized app
7. Found an error in the app
8. Switched 100% of all traffic to legacy server
9. Deployed app fix, switched traffic back to Docker
10. Merged fix and deployed to production
11. Gradually increased traffic to app in Docker
12. Shut down the app on the legacy server
17. Impact
39 legacy apps migrated so
far
Far fewer service
interruptions
Much more precise and informed
troubleshooting
From 26 complicated VMs
to 12 simple VMs
Logs from greenfield and
legacy apps in one place
Metrics from greenfield and legacy
apps in one place
39
!
26 12
18. Timeline
March
2017
April
2017January 2017
Legacy migration project
started
First app (our largest
monolith) deployed in
production
Undeployed first app
from production
legacy cluster
Today
33 legacy apps migrated
and deployed in production
6 morelegacy apps
migrated to test stage,
~10 moreleft
19.
20.
21.
22. What’s Next
Use Docker EE Advanced to
consolidate UCP clusters
Actually use Swarm
services
Migrate existing and upcoming Windows VMs
using Image2Docker
Compare service mesh
technologies
Upgrade the platform to become a
generic self-service based platform for
any workload