Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
Login
 

openHPI: Concepts for Linux Container Virtualization for web development and deployment (Sommersemester 2015)

Dozent: Prof. Dr. Christoph Meinel (Internet-Technologien und -Systeme)
Tutoren: Dr. Jan Renz Thomas Staubitz Christian Willems

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 24.04.2015
  • Lehrform: Seminar
  • Belegungsart: Wahlpflichtmodul

Studiengänge, Modulgruppen & Module

IT-Systems Engineering BA
IT-Systems Engineering MA
  • IT-Systems Engineering A
  • IT-Systems Engineering B
  • IT-Systems Engineering C
  • IT-Systems Engineering D

Beschreibung

Within the last

month Docker made Linux Container Virtualization popular. Within a short

time,  a technology used by companies like Google to run their web based

applications became more accessible and easier to use.  Since then, a lot

of tools and concepts have been introduced by the open source community, trying

to ease the pain of either the development of applications (fig) or the

deployment (Google Kubernetes, Flynn)

 

However, these technologies are mostly used by large companies

with bigger IT departments, and are often used in conjunction with properiatery

self made tools.

 

In this seminar we want to investigate how container

virtualization can be used to provide a tool set to provide support for the

complete life cycle of (service orientated) web applications from development

until the deployment on custom servers, private or public clouds. 

 

Starting with the development in heterogenic development tools to

continuous integration and hosting existing concepts and supporting tools

should be evaluated.

 

Can these existing concepts be integrated into a tool set that

enables also smaller web developers and agencies to utilize these modern

technology concepts?

 

The outcome of this seminar should be both a  Guide (or a

MOOC?) as well as a (set of) tools providing an easy to us solution. This

should be published to both the academic community (paper) and the open source

community.  A ruby/rails based service orientated web based application

will be used to provide a test case for this.

 

Keywords and Technologies: Linux Container Virtualization, Docker,

SOA, Service Discovery, Continuous Integration, Continuous Deployment,

Kubernetes, fig, Flynn, openStack, …

 

Mögliche Vortragsthemen:

Tools:

  • CoreOS
  • Die Docker ToolChain (Docker, Compose, Swarm, Mashine)
  • Kubernetes
  • Mesos
  • panamax.io
  • Kitematic
  • ...

Weitere Themen:

  • Service Discovery
  • Docker vs LCX 
  • Grundlagen Security
  • Die Basistechnologien
  • PaaS (Deis, Flynn, Dokku) 
  • Real World UseCases
  • ... weitere Themen nach Absprache möglich

Mögliche Projektthemen

Linux Container für Deployment von SOA basierten Web-Anwendungen:

  • Welche Technologien eignen sich? Docker vs CoreOS vs PureContainer?
  • Zusammenspiel mit Containereinsatz im Development,  bspw.  standarisierte Imagebeschreibungen
  • Zusammenspiel mit CI Umgebungen
  • Prototypische Umsetzung für openHPI
  • Welche Vorteile/Nachteile ergeben sich für netzwerktechnisch schlecht erreichbare Ziele?

Container basierte Umgebungen für (LTI) Aufgaben

  • Ein Teil der Aufgaben wird in MOOCs direkt als eigenständige Anwendungen bereitgestellt und über den LTI 1.1 Standard eingebunden. Diese Anwendungen werden in verschiedenen Programmiersprachen erstellt und müssen gehostet werden. Hierfür soll ein Konzept und ein Prototyp erstellt werden, inkl. Evaluation verschiedene PaaS Lösungen. Außerdem kann über eine Integration in openHPI nachgedacht werden. 

Sicherheit von containerbasierter Virtualisierung

  • Wie sicher ist containerbasierte Virtualisierung? 
  • Was ist mit Updateworkflows? 
  • Wo stecken Fallstricke in den verwendeten Basistechnologien.
  • Gibt es Unterschiede in den verschiedenen Implementierungen (CoreOS vs. LCX vs. Docker.)?

Optimierung von Tools oder Workflows

  • Es gibt in der Docker World etliche OpenSource Tools, in vielen gibt es noch Bugs und fehlende Funktionalitäten. Bspw. Docker, inkl. Swarm, Mashine, und Compose, Mesos, Marathon, CoreOS, Kitematic.
  • Bspw. Erweitern von Kitematic 

Docker im Development

  • Wie kann ich Docker im Development einsetzen. Konzepte und Lösungen:
  • Im Zusammenhang mit Vagrant / Chef / Puppet etc.
  • auf Basis von Compose
  • Prototyp für das automatische Pausieren bzw. Lazy Loading von Services/Containern (evtl. im Zusammenhang mit Compose)
  • ScaleOut im Development: Nur wichtige Services an denen ich arbeite laufen lokal, andere laufen in der Cloud oder auf einem Teamserver.

Weitere Themen nach Absprache möglich. Hinweis: Gruppengrößen können flexibel gewählt werden.

Alle Themen und Vorträge sollten den Kontext „Web“ beachten.

Literatur

Vortragsfolien zum Download:

Leistungserfassung

20% Mitarbeit, 20% Fachliche Präsentation, 60% Abschlussdokumentation

Die Abschlussdokumentation wird in Gruppenarbeit erstellt und kann entweder in multimedialer Form als Workshop auf mooc.house oder in Paperform erfolgen.

Alle Teilleistungen müssen erfolgreich absolviert werden.

Zurück