Intro Docker
Agenda
Monoliths to micro services
Docker and the container analogy
Pains and why we care
How it works and awesomeness
A decade ago (and AEM today)
Monolithic
Built on a single stack like .NET or Java
Long lived
Deployed to a single server
Monolithic Architecture
ELB Monoliths
Today (an into the future)
Apps are constantly developed
Deployed often
(AWS deploys ~10sec)
Built from loosely coupled components
Deployed to run on multitude of environments
(local, digital ocean, prod AWS, CX lab)
Service Based Architecture
An analogy
Ops Pain
Compiling: This app needs x version of libc to compile
External Deps: This needs python 2, 3, etc. but the server runs 2, 3
Config Problems: The legacy app only runs on port 80 and the developer left 5 years ago
Dev Pain
Prod vs Local: I can't reproduce the problem locally
Ops Meddling: You did what to get my app running?
Local Versions: Why do I need to install Hazelcast locally??
Platform Dependency: I run Ubuntu, and the server runs Debian, but Linux is linux right?
BUT WE HAVE VM's!!!
Dockerfile
Docker compose
Made with Slides.com