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
- Internet & Security Technology
- Operating Systems & Information Systems Technology
- 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