SlideShare a Scribd company logo
Web Applications with 
Eclipse RT and Docker 
in the Cloud 
Johannes Eickhold, Markus Knauer, 
Florian Waibel
Web Applications with Eclipse RT and Docker in the Cloud
Sandboxing
User Perspective 
● register 
● access 
● upload 
● manage 
● experiment 
● play
Implementing our Vision 
● one lightweight container per lab 
● minimal / no manual preparation per lab
Web Applications with Eclipse RT and Docker in the Cloud
Server Client 
Button button = new Button(parent, SWT.PUSH); 
button.setText("Push me!"); 
JSON 
HTTP 
{"head":{"requestCounter":1}, 
"operations": [... 
["create","w3","rwt.widgets.Button",{"parent":"w2","style":["PUSH"],"bounds":[5,5,98,32]}], 
["set","w3",{"text":"Push me!"}],... 
]}
Web Applications with Eclipse RT and Docker in the Cloud
Heavy to Lightweight 
Isolation Level 
Lightweight Heavyweight
Docker DDoocckkeerr is iiss an aann open ooppeenn platform 
ppllaattffoorrmm 
for developers and sysadmins 
to build, ship, and run distributed 
applications.
Intro to Docker 
Docker uses containers 
● LXC (Linux Containers) 
○ cgroups and namespaces for strong process 
isolation and resource control 
Docker uses a copy-on-write filesystem 
● AUFS 
○ stacking and layering of containers 
Docker uses simple configuration language
Intro to Docker: Containers 
Docker Container A Docker Container B 
OSGi Application B 
Eclipse Virgo 
Docker Daemon 
Host OS (Linux) 
Server Hardware 
Web Application A 
Tomcat 
Base Image Debian 
Base Image Ubuntu 
Docker Container C 
OSGi Application C 
Eclipse Virgo 
Base Image Ubuntu 
API Console Client
Intro to Docker: Commands 
$ docker version 
$ docker search ubuntu 
$ docker pull ubuntu 
$ docker run ubuntu cat /etc/os-release 
$ docker run -t -i ubuntu /bin/bash 
$ docker run ubuntu apt-get install -y iputils-ping 
$ docker ps -l 
$ docker commit --author="Markus Knauer <mknauer@eclipsesource.com>" 
-m="Install ping utility" ID123123123123 mknauer/ping 
$ docker run mknauer/ping ping eclipse.org 
$ docker run -i -t mknauer/ping /bin/bash
Intro to Docker: Dockerfile 
FROM base:ubuntu-12.10 
MAINTAINER EclipseSource <admin@eclipsesource.com> 
RUN apt-get update && apt-get upgrade -y 
RUN apt-get install -y gzip tar curl openjdk-7-jre-headless 
RUN useradd -m tomcat 
... 
EXPOSE 8080 
ADD setenv.sh /home/tomcat/bin/setenv.sh 
VOLUME ["/home/tomcat/webapps"]
Docker Security 
Docker Daemon is running as root! 
Beware! 
Bad things may happen!
Serving HTTP 
SSL for https? 
Dynamic Rewriting?
The Backend Server 
:443 
:80 
User Portal 
Developer 
Trial Application User
Container 
Container 
B 
Container 
C 
Dynamic Reverse Proxy++ REST 
Mapping 
Service 
:20002 
:20003 
A 
:20001 
hhttttpp::////ttaabbrriissttrriiaall..eecclliippsseessoouurrccee..ccoomm//ffoooo//eexxaammpplleess 
user: foo 
http://localhost:20002/myapp 
myapp/examples 
http://tabristrial.eclipsesource.com/foo/examples
Our Technology Selection
Using the Lab 
1. register at website 
2. receive mail with registration key 
3. access user portal with 
registration key (OAuth) 
4. upload app (Web Application) 
5. URL under which app is available 
6. access app 
Lab Registration 
(some website) 
Lab
Docker Container 
● Based on Ubuntu image 
● Contains OpenJDK 7 + Virgo 
Static and dynamic containers 
linked
Inside Docker: Virgo 
Container A 
:20001 
Java VM 
:8080 
● Deployment mechanism 
for uploaded app 
Application Upload 
● Virgo Runtime 
● RAP and dependencies 
pre-installed
Visit the Labs 
DEMO
Conclusions 
● Docker proved to be stable and flexible and 
scalable at the same time 
● Inspiring cool technology 
● Creating Docker images manually 
is time consuming and error prone
Outlook 
● Put everything into Docker containers 
● Switch to Virgo RAP Server base-image 
● Use Gradle to build Docker images 
● Polish web user interfaces and add more 
management capabilities to user console 
● Release as well documented open source 
template project
Questions?

More Related Content

What's hot (20)

PDF
Multi-provider Vagrant and Chef: AWS, VMware, and more
Chef Software, Inc.
 
PDF
Deploy django apps using docker
Thomas Kremmel
 
PDF
Multiple django applications on a single server with nginx
roskakori
 
PDF
VCCW - Vagrant based WordPress development environment
Takayuki Miyauchi
 
PPTX
Deploy Node.js application in Heroku using Eclipse
Jitendra Zaa
 
PDF
"Wix Serverless from inside", Mykola Borozdin
Fwdays
 
PDF
dkr_django_slides
Gladson Manuel
 
PDF
Automating Docker Containers with Puppet 2014 10-13
kylog
 
PPTX
Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code
Israel Shirk
 
PDF
CI/CD Using Ansible and Jenkins for Infrastructure
Faisal Shaikh
 
PDF
"13 ways to run web applications on the Internet" Andrii Shumada
Fwdays
 
PDF
Docker Tooling for Eclipse
Max Andersen
 
PDF
Wocker @WordBench Osaka No.41
Kite Koga
 
PDF
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
謝 宗穎
 
PPTX
How To Set a Vagrant Development System
Paul Bearne
 
PDF
Dockerize Laravel Application
Afrimadoni Dinata
 
PPTX
Vagrant-Overview
Crifkin
 
PPTX
Vagrant crash course
Marcus Deglos
 
PDF
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
Weerayut Hongsa
 
Multi-provider Vagrant and Chef: AWS, VMware, and more
Chef Software, Inc.
 
Deploy django apps using docker
Thomas Kremmel
 
Multiple django applications on a single server with nginx
roskakori
 
VCCW - Vagrant based WordPress development environment
Takayuki Miyauchi
 
Deploy Node.js application in Heroku using Eclipse
Jitendra Zaa
 
"Wix Serverless from inside", Mykola Borozdin
Fwdays
 
dkr_django_slides
Gladson Manuel
 
Automating Docker Containers with Puppet 2014 10-13
kylog
 
Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code
Israel Shirk
 
CI/CD Using Ansible and Jenkins for Infrastructure
Faisal Shaikh
 
"13 ways to run web applications on the Internet" Andrii Shumada
Fwdays
 
Docker Tooling for Eclipse
Max Andersen
 
Wocker @WordBench Osaka No.41
Kite Koga
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
謝 宗穎
 
How To Set a Vagrant Development System
Paul Bearne
 
Dockerize Laravel Application
Afrimadoni Dinata
 
Vagrant-Overview
Crifkin
 
Vagrant crash course
Marcus Deglos
 
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
Weerayut Hongsa
 

Similar to Web Applications with Eclipse RT and Docker in the Cloud (20)

PPTX
Docker - Demo on PHP Application deployment
Arun prasath
 
PDF
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Jérôme Petazzoni
 
PDF
Docker in Action
Alper Kanat
 
PDF
Fast C++ Web Servers
Troy Miles
 
PDF
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PDF
Docker From Scratch
Giacomo Vacca
 
PPTX
Docker for everything
Tim Haak
 
PDF
Présentation de Docker
Proto204
 
PPTX
Java developer intro to environment management with vagrant puppet and docker
Getting value from IoT, Integration and Data Analytics
 
PDF
Modernizing Java Apps with Docker
Docker, Inc.
 
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
PDF
EclipseCon Europe 2016 - Docker Tooling for Developers
Xavier Coulon
 
PDF
How to Dockerize Web Application using Docker Compose
Evoke Technologies
 
PPTX
Introduction to Docker
Nissan Dookeran
 
PDF
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
PDF
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Jérôme Petazzoni
 
PDF
Eclipse DemoCamp Munich - Docker Tooling and Vagrant Tooling
Xavier Coulon
 
PPTX
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Lucas Jellema
 
PDF
Be a better developer with Docker (revision 3)
Nicola Paolucci
 
Docker - Demo on PHP Application deployment
Arun prasath
 
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Jérôme Petazzoni
 
Docker in Action
Alper Kanat
 
Fast C++ Web Servers
Troy Miles
 
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Docker From Scratch
Giacomo Vacca
 
Docker for everything
Tim Haak
 
Présentation de Docker
Proto204
 
Java developer intro to environment management with vagrant puppet and docker
Getting value from IoT, Integration and Data Analytics
 
Modernizing Java Apps with Docker
Docker, Inc.
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
EclipseCon Europe 2016 - Docker Tooling for Developers
Xavier Coulon
 
How to Dockerize Web Application using Docker Compose
Evoke Technologies
 
Introduction to Docker
Nissan Dookeran
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Jérôme Petazzoni
 
Eclipse DemoCamp Munich - Docker Tooling and Vagrant Tooling
Xavier Coulon
 
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Lucas Jellema
 
Be a better developer with Docker (revision 3)
Nicola Paolucci
 
Ad

More from Markus Knauer (6)

PDF
Eclipse RAP 2.0, 2.1, 2.2, and beyond.
Markus Knauer
 
PDF
Sovereign: Migrating Java Threads to Improve Availability of Web Applications
Markus Knauer
 
ODP
Searching The Cloud - The eclipseRT Umbrella
Markus Knauer
 
PDF
Raindance - Tooling for the Clouds
Markus Knauer
 
PDF
Eclipse Packaging Project Usage Data Collector
Markus Knauer
 
PDF
Cloud Computing and Eclipse technology - how does it fit together?
Markus Knauer
 
Eclipse RAP 2.0, 2.1, 2.2, and beyond.
Markus Knauer
 
Sovereign: Migrating Java Threads to Improve Availability of Web Applications
Markus Knauer
 
Searching The Cloud - The eclipseRT Umbrella
Markus Knauer
 
Raindance - Tooling for the Clouds
Markus Knauer
 
Eclipse Packaging Project Usage Data Collector
Markus Knauer
 
Cloud Computing and Eclipse technology - how does it fit together?
Markus Knauer
 
Ad

Recently uploaded (20)

PPTX
PHIPA-Compliant Web Hosting in Toronto: What Healthcare Providers Must Know
steve198109
 
PDF
AI security AI security AI security AI security
elite44
 
PDF
Materi tentang From Digital Economy to Fintech.pdf
Abdul Hakim
 
PDF
The Hidden Benefits of Outsourcing IT Hardware Procurement for Small Businesses
Carley Cramer
 
PDF
google promotion services in Delhi, India
Digital Web Future
 
PPTX
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 
PDF
Beginning-Laravel-Build-Websites-with-Laravel-5.8-by-Sanjib-Sinha-z-lib.org.pdf
TagumLibuganonRiverB
 
PPTX
My Mother At 66! (2).pptx00000000000000000000000000000
vedapattisiddharth
 
PDF
FutureCon Seattle 2025 Presentation Slides - You Had One Job
Suzanne Aldrich
 
PDF
Learning Exemplar_Technology and Livelihood Education 7 Q1_W2.pdf
mjhiludo16
 
PDF
BRKSP-2551 - Introduction to Segment Routing.pdf
fcesargonca
 
PPTX
Class_4_Limbgvchgchgchgchgchgcjhgchgcnked_Lists.pptx
test123n
 
PDF
Digital burnout toolkit for youth workers and teachers
asociatiastart123
 
PPTX
Lesson 1.1 Career-Opportunities-in-Ict.pptx
lizelgumadlas1
 
PPTX
原版一样(毕业证书)法国蒙彼利埃大学毕业证文凭复刻
Taqyea
 
PPTX
Meloniusk_Communication_Template_best.pptx
howesix147
 
PPTX
Ransomware attack and its effects on cyber crimes
ShilpaShreeD
 
PDF
ContextForge MCP Gateway - the missing proxy for AI Agents and Tools
Mihai Criveti
 
PDF
The Convergence of Threat Behaviors Across Intrusions
Joe Slowik
 
PDF
Empowering Local Language Email with IDN & EAI – Powered by XgenPlus
XgenPlus Technologies
 
PHIPA-Compliant Web Hosting in Toronto: What Healthcare Providers Must Know
steve198109
 
AI security AI security AI security AI security
elite44
 
Materi tentang From Digital Economy to Fintech.pdf
Abdul Hakim
 
The Hidden Benefits of Outsourcing IT Hardware Procurement for Small Businesses
Carley Cramer
 
google promotion services in Delhi, India
Digital Web Future
 
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 
Beginning-Laravel-Build-Websites-with-Laravel-5.8-by-Sanjib-Sinha-z-lib.org.pdf
TagumLibuganonRiverB
 
My Mother At 66! (2).pptx00000000000000000000000000000
vedapattisiddharth
 
FutureCon Seattle 2025 Presentation Slides - You Had One Job
Suzanne Aldrich
 
Learning Exemplar_Technology and Livelihood Education 7 Q1_W2.pdf
mjhiludo16
 
BRKSP-2551 - Introduction to Segment Routing.pdf
fcesargonca
 
Class_4_Limbgvchgchgchgchgchgcjhgchgcnked_Lists.pptx
test123n
 
Digital burnout toolkit for youth workers and teachers
asociatiastart123
 
Lesson 1.1 Career-Opportunities-in-Ict.pptx
lizelgumadlas1
 
原版一样(毕业证书)法国蒙彼利埃大学毕业证文凭复刻
Taqyea
 
Meloniusk_Communication_Template_best.pptx
howesix147
 
Ransomware attack and its effects on cyber crimes
ShilpaShreeD
 
ContextForge MCP Gateway - the missing proxy for AI Agents and Tools
Mihai Criveti
 
The Convergence of Threat Behaviors Across Intrusions
Joe Slowik
 
Empowering Local Language Email with IDN & EAI – Powered by XgenPlus
XgenPlus Technologies
 

Web Applications with Eclipse RT and Docker in the Cloud

  • 1. Web Applications with Eclipse RT and Docker in the Cloud Johannes Eickhold, Markus Knauer, Florian Waibel
  • 4. User Perspective ● register ● access ● upload ● manage ● experiment ● play
  • 5. Implementing our Vision ● one lightweight container per lab ● minimal / no manual preparation per lab
  • 7. Server Client Button button = new Button(parent, SWT.PUSH); button.setText("Push me!"); JSON HTTP {"head":{"requestCounter":1}, "operations": [... ["create","w3","rwt.widgets.Button",{"parent":"w2","style":["PUSH"],"bounds":[5,5,98,32]}], ["set","w3",{"text":"Push me!"}],... ]}
  • 9. Heavy to Lightweight Isolation Level Lightweight Heavyweight
  • 10. Docker DDoocckkeerr is iiss an aann open ooppeenn platform ppllaattffoorrmm for developers and sysadmins to build, ship, and run distributed applications.
  • 11. Intro to Docker Docker uses containers ● LXC (Linux Containers) ○ cgroups and namespaces for strong process isolation and resource control Docker uses a copy-on-write filesystem ● AUFS ○ stacking and layering of containers Docker uses simple configuration language
  • 12. Intro to Docker: Containers Docker Container A Docker Container B OSGi Application B Eclipse Virgo Docker Daemon Host OS (Linux) Server Hardware Web Application A Tomcat Base Image Debian Base Image Ubuntu Docker Container C OSGi Application C Eclipse Virgo Base Image Ubuntu API Console Client
  • 13. Intro to Docker: Commands $ docker version $ docker search ubuntu $ docker pull ubuntu $ docker run ubuntu cat /etc/os-release $ docker run -t -i ubuntu /bin/bash $ docker run ubuntu apt-get install -y iputils-ping $ docker ps -l $ docker commit --author="Markus Knauer <[email protected]>" -m="Install ping utility" ID123123123123 mknauer/ping $ docker run mknauer/ping ping eclipse.org $ docker run -i -t mknauer/ping /bin/bash
  • 14. Intro to Docker: Dockerfile FROM base:ubuntu-12.10 MAINTAINER EclipseSource <[email protected]> RUN apt-get update && apt-get upgrade -y RUN apt-get install -y gzip tar curl openjdk-7-jre-headless RUN useradd -m tomcat ... EXPOSE 8080 ADD setenv.sh /home/tomcat/bin/setenv.sh VOLUME ["/home/tomcat/webapps"]
  • 15. Docker Security Docker Daemon is running as root! Beware! Bad things may happen!
  • 16. Serving HTTP SSL for https? Dynamic Rewriting?
  • 17. The Backend Server :443 :80 User Portal Developer Trial Application User
  • 18. Container Container B Container C Dynamic Reverse Proxy++ REST Mapping Service :20002 :20003 A :20001 hhttttpp::////ttaabbrriissttrriiaall..eecclliippsseessoouurrccee..ccoomm//ffoooo//eexxaammpplleess user: foo http://localhost:20002/myapp myapp/examples http://tabristrial.eclipsesource.com/foo/examples
  • 20. Using the Lab 1. register at website 2. receive mail with registration key 3. access user portal with registration key (OAuth) 4. upload app (Web Application) 5. URL under which app is available 6. access app Lab Registration (some website) Lab
  • 21. Docker Container ● Based on Ubuntu image ● Contains OpenJDK 7 + Virgo Static and dynamic containers linked
  • 22. Inside Docker: Virgo Container A :20001 Java VM :8080 ● Deployment mechanism for uploaded app Application Upload ● Virgo Runtime ● RAP and dependencies pre-installed
  • 24. Conclusions ● Docker proved to be stable and flexible and scalable at the same time ● Inspiring cool technology ● Creating Docker images manually is time consuming and error prone
  • 25. Outlook ● Put everything into Docker containers ● Switch to Virgo RAP Server base-image ● Use Gradle to build Docker images ● Polish web user interfaces and add more management capabilities to user console ● Release as well documented open source template project