Locally it worked!
Virtualizing with Docker
© Docker, Inc.
Managing Consultant
10 years of WCMS experience
Christoph Behounek
Hobbies: Snowboard, Longboard, Boardgames
Contact: cb@eggs.de @admiral49
About Me
Senior Solution Architect
7 years of WCMS experience
Loves working with Java
(script)
Sascha Brinkmann
Hobbies: Biking, Hiking, Travelling
Contact: sb@eggs.de @sasusu
About Me
Motivation
Just in case you’re still
not sure weather you’re in a
software project.
Wait until you hear this:
ON MY
MACHINE
IT WORKS
© Sascha Brinkmann, eggs unimedia
Everyday problems of a software architect:
➢ How was the application server setup?
➢ Which service packs and hotfixes are
installed?
➢ Why does the ramp up take that long?
➢ Why is the velocity so little?
➢ Which version of my application is installed?
Motivation
Solution
Software container which can be defined
centrally and reused everywhere
© Gianni del Bufalo, Some rights reserved
What is Docker?
Docker automates the deployment of applications
inside software containers, by providing an additional
layer of abstraction and automation of OS-level
virtualization on Linux.
© Docker, Inc.
VM vs. Docker
Computer Hardware
Host OS
Hypervisor
Guest OS
Bins + Libs
App A
Guest OS
Bins + Libs
App B
Computer Hardware
Host OS (Linux)
Docker Engine
Bins + Libs
App A
Bins + Libs
App B
Virtual Machines vs. Docker Container
Docker Image Structure
© Maersk Line, Some rights reserved
Docker Image Structure
Host OS (Linux)
Docker Engine
Bins + Libs
Application Server
Developed Application
Base Image
Layers of a Docker Image Dockerfile (Image Defintion)
# Base Image
FROM ubuntu:latest
# Install Java
RUN apt-get update && 
apt-get install -y java7
# Download and unpack AEM
ADD http://repo.eggs.de/aem-quickstart.jar /opt
ADD http://repo.eggs.de/license.properties /opt
RUN java -jar /opt/aem-quickstart.jar -unpack
# Install Service Packs and Hotfixes
RUN mkdir /opt/crx-quickstart/install
ADD http://repo.eggs.de/aem-updates.zip
/opt/crx-quickstart/install
# Install Custom Application
ADD http://repo.eggs.de/my-app.zip
/opt/crx-quickstart/install
# Install Demo Content
ADD http://repo.eggs.de/my-demo-content.zip
/opt/crx-quickstart/install
Service Packs + Hotfixes
Application Demo Content
AEM Application Stack
Computer Hardware
Host OS (Linux)
Docker Engine
Java + Tools
AEM Author
Java + Tools
AEM Publish
Service Packs + HF Service Packs + HF
Bins + Libs
Apache Webserver
Dispatcher Module
AEM Author Image
AEM Publish Image
Dispatcher Image
Docker Build Image
© Tobias Mandt, Some rights reserved
Docker Build Image
Docker Public
Registry
Host OS (Linux)
Docker Engine
Computer Hardware
Docker Base Image
Dockerfile
Bins + Libs
Pull
App
Base Image
Build
Docker Build Pipeline
© Álvaro Vega F., Some rights reserved
Docker Build Pipeline
GIT
Jenkins
Docker Public
Registry
Docker Private
RegistryPull
Pull
Push
Pull
Pull
Test and
QA Server
Developer
Dockerfile
Docker Compose Environment
Start a complete AEM environment
with one shell command.
© Aaron Escobar, Some rights reserved
Docker Compose Environment
publish:
hostname: aem-publish.aem.eggs.de
image: registry.mycompany.com/eggs/aem-publisher
ports:
- "4503:4503"
author:
hostname: aem-author.aem.eggs.de
image: registry.mycompany.com/eggs/aem-author
ports:
- "4502:4502"
links:
- publish
dispatcher:
hostname: aem-dispatcher.aem.eggs.de
image: registry.mycompany.com/eggs/apache-dispatcher
ports:
- "80"
links:
- publish
$ docker-compose up -d
Conclusion
© José Sáez, Some rights reserved
Conclusion
➢ Accelerate “Ramp Up”
➢ Provide Test and Development Environment
with a one liner
➢ Docker Container can be operate in the
cloud (Amazon AWS EC2, Google Cloud,
Microsoft Azure, Rackspace, etc.)
➢ Speed Up Desaster Recovery
➢ Deliver not only an app or a server, deliver
the system
The End
KEEP
CALM
IT
WORKS ON
ALL MACHINES
© Docker, Inc.
Presentation
eggs.de/connect2015
Sources
github.com/eggsunimedia/docker-aem
The Authors
Christoph Behounek - cb@eggs.de
Sascha Brinkmann - sb@eggs.de
Get in Touch
Terms of Use
This work is licensed under a
Creative Commons Attribution-NoDerivatives 4.0
International License
About Us
1984 Firmengründung als Electronics Graphics Group
2004 eggs wird Adobe Business Partner
2005 Gründung des Adobe Trainingscenters
2010 Gewinner des Siemens top + Awards
2014 Deloitte Fast 50 Award
Mitarbeiter: +40
Umsatz 2015: +5 Mio €
Firmensitz: München
+50 Kunden im AdobeUmfeld
About Us

Locally it worked! virtualizing docker

  • 1.
    Locally it worked! Virtualizingwith Docker © Docker, Inc.
  • 2.
    Managing Consultant 10 yearsof WCMS experience Christoph Behounek Hobbies: Snowboard, Longboard, Boardgames Contact: cb@eggs.de @admiral49 About Me
  • 3.
    Senior Solution Architect 7years of WCMS experience Loves working with Java (script) Sascha Brinkmann Hobbies: Biking, Hiking, Travelling Contact: sb@eggs.de @sasusu About Me
  • 4.
    Motivation Just in caseyou’re still not sure weather you’re in a software project. Wait until you hear this: ON MY MACHINE IT WORKS © Sascha Brinkmann, eggs unimedia
  • 5.
    Everyday problems ofa software architect: ➢ How was the application server setup? ➢ Which service packs and hotfixes are installed? ➢ Why does the ramp up take that long? ➢ Why is the velocity so little? ➢ Which version of my application is installed? Motivation
  • 6.
    Solution Software container whichcan be defined centrally and reused everywhere © Gianni del Bufalo, Some rights reserved
  • 7.
    What is Docker? Dockerautomates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of OS-level virtualization on Linux. © Docker, Inc.
  • 8.
    VM vs. Docker ComputerHardware Host OS Hypervisor Guest OS Bins + Libs App A Guest OS Bins + Libs App B Computer Hardware Host OS (Linux) Docker Engine Bins + Libs App A Bins + Libs App B Virtual Machines vs. Docker Container
  • 9.
    Docker Image Structure ©Maersk Line, Some rights reserved
  • 10.
    Docker Image Structure HostOS (Linux) Docker Engine Bins + Libs Application Server Developed Application Base Image Layers of a Docker Image Dockerfile (Image Defintion) # Base Image FROM ubuntu:latest # Install Java RUN apt-get update && apt-get install -y java7 # Download and unpack AEM ADD http://repo.eggs.de/aem-quickstart.jar /opt ADD http://repo.eggs.de/license.properties /opt RUN java -jar /opt/aem-quickstart.jar -unpack # Install Service Packs and Hotfixes RUN mkdir /opt/crx-quickstart/install ADD http://repo.eggs.de/aem-updates.zip /opt/crx-quickstart/install # Install Custom Application ADD http://repo.eggs.de/my-app.zip /opt/crx-quickstart/install # Install Demo Content ADD http://repo.eggs.de/my-demo-content.zip /opt/crx-quickstart/install Service Packs + Hotfixes Application Demo Content
  • 11.
    AEM Application Stack ComputerHardware Host OS (Linux) Docker Engine Java + Tools AEM Author Java + Tools AEM Publish Service Packs + HF Service Packs + HF Bins + Libs Apache Webserver Dispatcher Module AEM Author Image AEM Publish Image Dispatcher Image
  • 12.
    Docker Build Image ©Tobias Mandt, Some rights reserved
  • 13.
    Docker Build Image DockerPublic Registry Host OS (Linux) Docker Engine Computer Hardware Docker Base Image Dockerfile Bins + Libs Pull App Base Image Build
  • 14.
    Docker Build Pipeline ©Álvaro Vega F., Some rights reserved
  • 15.
    Docker Build Pipeline GIT Jenkins DockerPublic Registry Docker Private RegistryPull Pull Push Pull Pull Test and QA Server Developer Dockerfile
  • 16.
    Docker Compose Environment Starta complete AEM environment with one shell command. © Aaron Escobar, Some rights reserved
  • 17.
    Docker Compose Environment publish: hostname:aem-publish.aem.eggs.de image: registry.mycompany.com/eggs/aem-publisher ports: - "4503:4503" author: hostname: aem-author.aem.eggs.de image: registry.mycompany.com/eggs/aem-author ports: - "4502:4502" links: - publish dispatcher: hostname: aem-dispatcher.aem.eggs.de image: registry.mycompany.com/eggs/apache-dispatcher ports: - "80" links: - publish $ docker-compose up -d
  • 18.
    Conclusion © José Sáez,Some rights reserved
  • 19.
    Conclusion ➢ Accelerate “RampUp” ➢ Provide Test and Development Environment with a one liner ➢ Docker Container can be operate in the cloud (Amazon AWS EC2, Google Cloud, Microsoft Azure, Rackspace, etc.) ➢ Speed Up Desaster Recovery ➢ Deliver not only an app or a server, deliver the system
  • 20.
    The End KEEP CALM IT WORKS ON ALLMACHINES © Docker, Inc.
  • 21.
  • 22.
    Terms of Use Thiswork is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License
  • 23.
  • 24.
    1984 Firmengründung alsElectronics Graphics Group 2004 eggs wird Adobe Business Partner 2005 Gründung des Adobe Trainingscenters 2010 Gewinner des Siemens top + Awards 2014 Deloitte Fast 50 Award Mitarbeiter: +40 Umsatz 2015: +5 Mio € Firmensitz: München +50 Kunden im AdobeUmfeld About Us