Drei Studierende eines Informatikprojekts, das ich betreue, untersuchen im Moment die (subjektive) Eignung von Programmiersprachen. Sie würden diese Arbeit sehr unterstützen, wenn Sie folgende kurze Umfrage ausfüllen (auch wenn Sie noch nicht viel Programmiererfahrung haben sollten – die Umfrage bezieht ausdrücklich auch Studierende mit ein):
PP/BA: Wie dokumentiere ich Designentscheidungen für Microservices sinnvoll?
Dokumentation ist in der Regel ein ungeliebtes Thema. Die agile Community hat dieses Thema entformalisiert und pragmatischer gemacht, kämpft aber immer noch mit der richtigen Mischung aus „Der Code ist die Dokumentation“ und „Wir pflegen ein Extra-Architektur-Dokument“. ThoughtWorks hat LightWeight Architecture Decision Record in den Status „Adopt“ seines Technology Radars erhoben. Was heißt das konkret und in der gelebten Praxis? Ziel der Arbeit ist eine umfassende Literatur-, Technologie- und Empiriestudie (Expertenbefragungen). Am Ende sollte ein Vorschlag mit einem oder mehreren sinnvollen Varianten zur Dokumentation stehen. Ein praktischer Anwendungsfall, in dem die gewählte Lösung anhand eines Beispiels (als Prototyp) in einem Produktivsystem umgesetzt wird, sollte die Arbeit abrunden. Als Produktivsystem kann dabei die konsequent und kompromisslos als System von Microservices ausgelegte Lehr- und Lernplattform ArchiLab darstellen.
PP/BA: Algorithmic IT Operations
Aus Sicht eines effizienten System-Monitorings wäre es sehr attraktiv, Machine-Learning-Techniken zu nutzen, um Ausfälle/Störungen von bestimmen IT-Komponenten oder -Services frühzeitig vorhersagen zu können. ThoughtWorks klassifiziert diese Technik als „zu beobachten“ (Assess). Die Arbeit sollte zunächst eine umfassende Literatur- und Technologierecherche zu diesem Thema durchführen. Dann sollte ein Forschungsdesign für einen Prototypen konzipiert werden, um einen Proof-of-Concept umzusetzen und das Potential dieser Technik zu bewerten. Ein praktischer Anwendungsfall, in dem die gewählte Lösung anhand eines Beispiels (als Prototyp) in einem Produktivsystem umgesetzt wird, kann die Arbeit abrunden. Als Produktivsystem kann dabei die konsequent und kompromisslos als System von Microservices ausgelegte Lehr- und Lernplattform ArchiLab darstellen.
IP/PP/BA: API Gateway mit automatischer Service Discovery
Ein API-Gateway stellt APIs für Clients und/oder externe IT-Systeme zur Verfügung. Bei komplexen Microservice-Landschaften wird Service Discovery zu einer Notwendigkeit, um nicht zu viel manuellen Konfigurations- und Wartungsaufwand zu haben. Besonders interessant wäre daher eine Kombination von Service Discovery und einer API-Gateway-Implementierung. Die internen Services sollten dabei die Möglichkeit haben, APIs als Public oder Private zu kennzeichen. Die Services könnten dann entsprechend automatisch zur Verfügung gestellt werden. In dieser Arbeit sollten zunächst die Anforderungen an ein solches kombiniertes API Gateway definiert werden. Ein praktischer Anwendungsfall, in dem die gewählte Lösung anhand eines Beispiels (als Prototyp) in einem Produktivsystem umgesetzt wird, kann die Arbeit abrunden. Als Produktivsystem dient dabei die konsequent und kompromisslos als System von Microservices ausgelegte Lehr- und Lernplattform ArchiLab.
PP/BA: Orchestrierung vs. Choreographie von langlaufenden Geschäftsprozessen in Microservice-Landschaften
Die Arbeit sollte zunächst analysieren, ob man Geschäftsprozesse nach bestimmten Kriterien klassifizieren kann, anhand deren man eine Entscheidung für eins der beiden Paradigmen „Orchestrierung“ vs. „Choreographie“ treffen kann. Ein praktisches Prozessbeispiel sollte definiert werden, das eine gewisse realistische Komplexität simuliert, gern anhand eines Versicherungs-Beispiels. Dann sollte für die Bewertung ein Kriteriensystem definiert werden, anhand dessen sich die beiden Paradigmen bewerten lassen. Beide Paradigmen sollten prototypisch implementiert und anhand der Kriterien verglichen werden. Abschließend sollte eine Empfehlung ausgesprochen werden. Ein praktischer Anwendungsfall, in dem die gewählte Lösung anhand eines Beispiels (als Prototyp) in einem Produktivsystem umgesetzt wird, kann die Arbeit abrunden. Als Produktivsystem kann dabei die konsequent und kompromisslos als System von Microservices ausgelegte Lehr- und Lernplattform ArchiLab darstellen.
PP/BA: Programmiersprachen und Frameworks für Microservices
Microservices sind von ihrer Definition her Technologie-agnostisch. Das Umsetzungsteam hat – im Rahmen der strategischen Leitplanken der IT-Organisation – Freiheit in der Technologiewahl. Das schließt natürlich auch die Programmiersprache ein. Aber gibt es tatsächlich signifikante Unterschiede, wenn man auf diese Ebene heruntersteigt? Oder ist „Java doch für alles gut“? In dieser Arbeit soll eine Bewertungsmethodik für Microservice-Teams entstehen, mit der diese schnell entscheiden können, welche Sprache für die Problemstellung interessant ist. Dazu sollten Evaluierungskriterien vorab festgelegt werden. Weiterhin müssen sinnvolle „Klassen“ von Services definiert werden (nach Literaturrecherche und/oder empirischen Expertenbefragungen). Darauf aufbauend werden eine Anzahl von Proof-of-Concept-Implementationen umgesetzt und gemäß der Kriterien bewertet. Abschließend wird daraus die Methodik definiert, die z.B. aus einem Satz von „wenn – dann“ Regeln bestehen kann, gepaart mit Technologieempfehlungen.
PP/BA: Good Practices für Kommunikation bei Microservices
Microservices bauen im Wesentlichen auf die synchrone Kommunikation via REST sowie eine asynchrone Kommunikation auf. Bei genauerer Betrachtung gibt es allerdings noch eine Anzahl von offenen Fragen, auf die es noch keine allgemein anwendbaren, abgesicherten Antworten gibt. Diese sollten im Rahmen der Arbeit anhand von Literatur untersucht und die Fachmeinung dargestellt werden. Eine Implementierung von Dummy-Funktionalität kann sinnvoll sein, um Effekte bei Wartung und Weiterentwicklung zu beschreiben.
PP/BA: Vergleich und Bewertung von UI-Integrations-Konzepten bei Microservices
Die Arbeit soll die Frage klären, welche UI-Integrations-Stile bei Microservice-basierten Architekturen wann sinnvoll anwendbar sind, und was typische Stärken und Hindernisse sind.
Informatikprojekt ArchiLab SS17
Auch im Sommersemester 2017 werde ich wieder ein Informatikprojekt zur Weiterentwicklung von ArchiLab anbieten. Kontaktieren Sie mich für nähere Details oder melden Sie sich direkt in ILIAS an.
Informatik-Projekt „ArchiLab-Quiztool“
In einem großen Informatikprojekt (drei Teams, insgesamt 22 Teilnehmer und 3 Betreuer) wurde während dem WS 16/17 ein erster Prototyp des ArchiLab-Quiztools erstellt. Dieser dient jetzt als Basis für die weitere Entwicklung an ArchiLab.