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