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?
Ad

More Related Content

What's hot (20)

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

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

Kubernetes laravel and kubernetes
Kubernetes   laravel and kubernetesKubernetes   laravel and kubernetes
Kubernetes laravel and kubernetes
William Stewart
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
Patrick Mizer
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Partner S.A.
 
Using the Azure Container Service in your company
Using the Azure Container Service in your companyUsing the Azure Container Service in your company
Using the Azure Container Service in your company
Jan de Vries
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
Paul Czarkowski
 
How to create your own hack environment
How to create your own hack environmentHow to create your own hack environment
How to create your own hack environment
Sumedt Jitpukdebodin
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
Matt Ray
 
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz LachJDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
PROIDEA
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
Jérôme Petazzoni
 
Dockers zero to hero
Dockers zero to heroDockers zero to hero
Dockers zero to hero
Nicolas De Loof
 
Learning Docker with Thomas
Learning Docker with ThomasLearning Docker with Thomas
Learning Docker with Thomas
Thomas Tong, FRM, PMP
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
皓鈞 張
 
Amazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to productionAmazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to production
Paolo latella
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetes
Liran Cohen
 
Time Series Database and Tick Stack
Time Series Database and Tick StackTime Series Database and Tick Stack
Time Series Database and Tick Stack
Gianluca Arbezzano
 
Docker Security and Orchestration for DevSecOps wins
Docker Security and Orchestration for DevSecOps winsDocker Security and Orchestration for DevSecOps wins
Docker Security and Orchestration for DevSecOps wins
Sharath Kumar
 
Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'
Jen Andre
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructure
Sergiy Kukunin
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
Olve Hansen
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
Christophe Muller
 
Kubernetes laravel and kubernetes
Kubernetes   laravel and kubernetesKubernetes   laravel and kubernetes
Kubernetes laravel and kubernetes
William Stewart
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
Patrick Mizer
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Partner S.A.
 
Using the Azure Container Service in your company
Using the Azure Container Service in your companyUsing the Azure Container Service in your company
Using the Azure Container Service in your company
Jan de Vries
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
Paul Czarkowski
 
How to create your own hack environment
How to create your own hack environmentHow to create your own hack environment
How to create your own hack environment
Sumedt Jitpukdebodin
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
Matt Ray
 
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz LachJDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
PROIDEA
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
Jérôme Petazzoni
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
皓鈞 張
 
Amazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to productionAmazon Web Services and Docker: from developing to production
Amazon Web Services and Docker: from developing to production
Paolo latella
 
Scaling docker with kubernetes
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetes
Liran Cohen
 
Time Series Database and Tick Stack
Time Series Database and Tick StackTime Series Database and Tick Stack
Time Series Database and Tick Stack
Gianluca Arbezzano
 
Docker Security and Orchestration for DevSecOps wins
Docker Security and Orchestration for DevSecOps winsDocker Security and Orchestration for DevSecOps wins
Docker Security and Orchestration for DevSecOps wins
Sharath Kumar
 
Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'Codetainer: a Docker-based browser code 'sandbox'
Codetainer: a Docker-based browser code 'sandbox'
Jen Andre
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructure
Sergiy Kukunin
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
Olve Hansen
 
Ad

More from Markus Knauer (6)

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

Recently uploaded (19)

OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)
APNIC
 
OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
White and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptxWhite and Red Clean Car Business Pitch Presentation.pptx
White and Red Clean Car Business Pitch Presentation.pptx
canumatown
 
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...Mobile database for your company telemarketing or sms marketing campaigns. Fr...
Mobile database for your company telemarketing or sms marketing campaigns. Fr...
DataProvider1
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025
APNIC
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation TemplateSmart Mobile App Pitch Deck丨AI Travel App Presentation Template
Smart Mobile App Pitch Deck丨AI Travel App Presentation Template
yojeari421237
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx5-Proses-proses Akuisisi Citra Digital.pptx
5-Proses-proses Akuisisi Citra Digital.pptx
andani26
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC Update, presented at NZNOG 2025 by Terry Sweetser
APNIC
 
Understanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep WebUnderstanding the Tor Network and Exploring the Deep Web
Understanding the Tor Network and Exploring the Deep Web
nabilajabin35
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
Computers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers NetworksComputers Networks Computers Networks Computers Networks
Computers Networks Computers Networks Computers Networks
Tito208863
 
Perguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolhaPerguntas dos animais - Slides ilustrados de múltipla escolha
Perguntas dos animais - Slides ilustrados de múltipla escolha
socaslev
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
IT Services Workflow From Request to Resolution
IT Services Workflow From Request to ResolutionIT Services Workflow From Request to Resolution
IT Services Workflow From Request to Resolution
mzmziiskd
 
DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)DNS Resolvers and Nameservers (in New Zealand)
DNS Resolvers and Nameservers (in New Zealand)
APNIC
 

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