Web Applications with Eclipse RT and Docker in the Cloud
Upcoming SlideShare
Loading in...5
×
 

Web Applications with Eclipse RT and Docker in the Cloud

on

  • 522 views

Using Docker as a container for running web applications based on Eclipse RAP in an Eclipse Virgo application server.

Using Docker as a container for running web applications based on Eclipse RAP in an Eclipse Virgo application server.

Statistics

Views

Total Views
522
Views on SlideShare
500
Embed Views
22

Actions

Likes
1
Downloads
2
Comments
0

1 Embed 22

http://www.slideee.com 22

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Web Applications with Eclipse RT and Docker in the Cloud Web Applications with Eclipse RT and Docker in the Cloud Presentation Transcript

  • Web Applications with Eclipse RT and Docker in the Cloud Johannes Eickhold Markus Knauer @mknauer23
  • Sandboxing
  • User Perspective ● access ● upload ● manage ● experiment ● play ● register
  • Implementing our Vision ● one lightweight container per lab ● minimal / no manual preparation per lab
  • Button button = new Button(parent, SWT.PUSH); button.setText("Push me!"); {"head":{"requestCounter":1}, "operations": [... ["create","w3","rwt.widgets.Button",{"parent":"w2","style":["PUSH"],"bounds":[5,5,98,32]}], ["set","w3",{"text":"Push me!"}],... ]} Server Client JSON HTTP
  • Heavy to Lightweight Isolation Level LightweightHeavyweight
  • Docker is an open platformDocker is an open platform for developers and sysadmins Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications.
  • Intro to Docker
  • 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 Server Hardware Host OS (Linux) Docker Engine Docker Container A Docker Container B Base Image Debian Tomcat Web Application A Base Image Ubuntu Eclipse Virgo OSGi Application B Docker Container C Base Image Ubuntu Eclipse Virgo OSGi Application C API Console Client
  • Intro to Docker: Commands $ docker version $ docker search ubuntu $ docker pull ubuntu $ docker images $ docker run ubuntu cat /etc/os-release $ docker run -t -i ubuntu /bin/bash $ docker run ubuntu apt-get install -y traceroute $ docker ps -l $ docker commit --author="Markus Knauer <mknauer@eclipsesource.com" -m="Install traceroute" ID123123123123 mknauer/traceroute $ docker push $ docker run mknauer/traceroute traceroute eclipse.org $ docker run -d --name="rap.demo" --publish=10000:8080 -t eclipsesource/eclipse-rap-demo $ docker inspect ID123123123123 $ docker logs rap.demo $ docker pause rap.demo $ docker unpause rap.demo $ docker stop rap.demo $ docker rm -v rap.demo
  • Intro to Docker: Dockerfile FROM ubuntu:latest 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"] WORKDIR /home/tomcat CMD bin/startup.sh && tail -f logs/catalina.out
  • 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 Trial Application User User
  • Container C :20003 Dynamic Reverse Proxy++ REST Mapping Service Container B :20002 Container A :20001 http://tabristrial.eclipsesource.com/foo/exampleshttp://tabristrial.eclipsesource.com/foo/examples http://localhost:20002/myapp/examples user:foo http://localhost:20002/myapp 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 ● Upload of app via HTTP ● Static Docker instance (“user portal”) uses JMX bean of Virgo to deploy the app Application Upload
  • Docker Java admin console: docker build String build( String imageTag, String dockerFolder ); user portal: docker run String create( String imageTag, String containerName, int containerPort ); void start( String containerId, int hostPort,
  • Visit the Labs DEMO
  • Conclusions ● Docker proved to be stable and flexible and scalable at the same time ● Inspiring cool technology
  • Outlook ● Polish web user interfaces and add more management capabilities to user console ● Put everything into Docker containers ● Release as well documented open source template project
  • Questions?