Veröffentlicht: von

Das nachfolgende Guided Project wird im SS16 stattfinden.

Problembeschreibung

Eine Microservice-Architektur verfolgt den Ansatz, ein IT-System (in der Regel eine webbasierte Anwendung) als Suite von weitgehend unabhängigen vertikalen Modulen aufzubauen. Diese können (weitgehend) unabhängig voneinander deployed und betrieben werden und benötigen nur ein Minimum an zentraler Kommunikationsinfrastruktur. Kommunikation zwischen Front- und Backend erfolgt über leichtgewichtige Protokolle wie etwa REST.

Dieser Architekturstil erlaubt es, Anwendungen nach Geschäftsfähigkeiten zu segmentieren, die jeweils mit einem Höchstmaß an Unabhängigkeit entwickelt und gewartet werden können. Das ist insbesondere bei Webportalen mit seinen schnellen Update-Zyklen ein deutlicher Vorteil. Beispielsweise kann so der Produktkatalog eines Webshops und die Zahlungsabwicklung durch unabhängige Microservices realisiert sein, so dass eine explorative Weiterentwicklung des Produktkatalogs den operativen Zahlungsverkehr nur minimal gefährden kann.

Projektbeschreibung

Ziel des Projekts ist es, für eine existierende Showcase-Webanwendung (Restaurantmanagement-System) eine Microservice-Architektur zu konzipieren und umzusetzen. Dabei sollen die Stärken, Schwächen, Risiken und Grenzen dieses Ansatzes im Projektreport evaluiert werden.

Die Entwicklung erfolgt mittels des Open-Source-Projekts Open Application Standard Platform (OASP). OASP hat es sich zur Aufgabe gemacht, bewährte Open-Source-Frameworks zu einem „Best-of-Breed“-Anwendungspaket zu bündeln. Mit Hilfe von OASP können Softwareprojekte für kostensensitive Kunden (z.B. öffentliche Auftraggeber) ohne Zeitverlust durch die sonst übliche „Technologie-Findungsphase“ realisiert werden. Außerdem vermeidet man technologischen Wildwuchs, da OASP eine in sich konsistente Basisarchitektur darstellt. Zufallsarchitektur (Accidental Architecture) wird so zumindest bei der Technologieplattform vermieden.

Zusätzlich zum Basis-Stack in OASP (http://oasp.github.io/) existiert auch eine JavaScript-Variante OASP for JavaScript (OASP4JS, http://oasp.github.io/oasp4js/), die auf dem Google-Framework AngularJS basiert. OASP4JS ist als Plattform für Open-Source-basierte Webanwendungen konzipiert. Die existierende Showcase-Anwendung wurde mit OASP in einem früheren Guided Project erstellt und kann jetzt entsprechend weiterentwickelt werden.

Die Umsetzung des Projekts sowie die Erstellung des Evaluationsberichts wird nach agiler Methodik erfolgen. Die agilen Teams wählen jeweils einen Scrum Master und einen Product Owner. Das Projekt wird in (vermutlich dreiwöchige) Sprints gegliedert. Ein Vertreter des Projektpartners (Capgemini) wird bei den Entwicklungs-Demos am jeden Sprints als Kunde zugegen sein.

Learning Outcomes

  • Praxiserfahrung mit Microservice-Architekturen und deren Umsetzung in webbasierter Software-Entwicklung
  • Methodik zur systematischen Evaluierung eines Architekturstils
  • Erfahrungen mit Erstellung von AngularJS-basierten Webanwendungen
  • Erfahrung mit agiler Entwicklungsmethodik in einem realistischen Softwareprojekt
  • Expertise in Kommunikation und Dokumentation
  • Teamwork- und Projektmanagement-Erfahrung

Voraussetzungen

  • Programmierkenntnisse
  • Interesse an der Softwarearchitektur sowie Gestaltung von Nutzeroberflächen
  • Interesse an komplexen Aufgabenstellungen und methodischem Vorgehen
  • Bereitschaft, Teamarbeit tatsächlich physisch gemeinsam (im gleichen Raum, „collocated“) durchzuführen, um zu einem agilen Team zu reifen

Externe Projektpartner

Capgemini