Locally it worked! Virtualizing with Docker

Transcription

Locally it worked! Virtualizing with Docker
Locally it worked!
© Docker, Inc.
Virtualizing with Docker
About Me
k
e
n
u
o
h
e
B
Christoph
ltant
u
s
n
o
C
g
n
Managi
ience
r
e
p
x
e
S
M
of WC
s
r
a
e
y
0
1
ames
g
d
r
a
o
B
,
board
g
n
o
L
,
d
r
nowboa
S
:
s
e
i
b
b
Ho
ral49
i
m
d
a
@
e
d
eggs.
@
b
c
:
t
c
a
Cont
About Me
n
n
a
m
k
n
i
Sascha Br
tect
rchi
A
n
o
i
t
u
l
Senior So
ence
i
r
e
p
x
e
S
f WCM
o
s
r
a
e
y
7
h Java
t
i
w
g
n
i
k
Loves wor
(script)
lling
e
v
a
r
T
,
g
Hikin
,
g
n
i
k
i
B
Hobbies:
asusu
s
@
e
d
.
s
g
sb@eg
Contact:
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
Motivation
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?
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
Virtual Machines vs. Docker Container
App A
App B
Bins + Libs
Bins + Libs
App A
App B
Guest OS
Guest OS
Bins + Libs
Bins + Libs
Hypervisor
Docker Engine
Host OS
Host OS (Linux)
Computer Hardware
Computer Hardware
Docker Image Structure
© Maersk Line, Some rights reserved
Docker Image Structure
Layers of a Docker Image
Dockerfile (Image Defintion)
Host OS (Linux)
# Base Image
FROM ubuntu:latest
Docker Engine
# Install Java
RUN apt-get update && \
apt-get install -y java7
Base Image
Bins + Libs
Application Server
Service Packs + Hotfixes
Developed Application
Application Demo Content
# 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
AEM Application Stack
AEM Author Image
AEM Publish Image
Dispatcher Image
Service Packs + HF
Service Packs + HF
Dispatcher Module
AEM Author
AEM Publish
Apache Webserver
Java + Tools
Java + Tools
Bins + Libs
Docker Engine
Host OS (Linux)
Computer Hardware
Docker Build Image
© Tobias Mandt, Some rights reserved
Docker Build Image
App
Build
Pull
Base Image
Docker Public
Registry
Bins + Libs
Docker Base Image
Dockerfile
Docker Engine
Host OS (Linux)
Computer Hardware
Docker Build Pipeline
© Álvaro Vega F., Some rights reserved
Docker Build Pipeline
GIT
Do
Pu
ll
ck
er
file
ll
Pu
Developer
Push
ll
u
P
Docker Public
Registry
Jenkins
Docker Private
Registry
Pu
ll
Test and
QA Server
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
© Docker, Inc.
KEEP
CALM
IT
WORKS ON
ALL MACHINES
Get in Touch
Presentation
eggs.de/connect2015
Sources
github.com/eggsunimedia/docker-aem
The Authors
Christoph Behounek - [email protected]
Sascha Brinkmann - [email protected]
Terms of Use
This work is licensed under a
Creative Commons Attribution-NoDerivatives 4.0
International License
About Us
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