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