Problembeschreibung Machine Learning und Deep Learning haben sich in den letzten Jahren rasant entwickelt. Insbesondere im Bereich der natürlichen Sprachverarbeitung (Natural Language Processing, NLP) sind ChatBots konkrete Anwendungsbeispiele dieser Technologien. Sie bilden für den Menschen erlebbare Schnittstellen, um direkt mit „der Maschine“ zu kommunizieren. In der Zurich Gruppe Deutschland wird derzeit schon an einem ChatBot…
GP WS18_A03: Weiterentwicklung der Projektbörse Campus Gummersbach als Microservice-Architektur
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,…
Vortrag beim Viadee Roundtable zu den Lehr-/Forschungsprojekten mit Praxisbezug
Beim Viadee Roundtable am 7.6.2018 habe ich einen Vortrag zu den verschiedenen Lehr-/Forschungsprojekten mit Praxispartnern (häufig aus der Versicherungsbranche) gehalten. Titel: Rapunzel, lass dein Haar herunter, oder: Wie sehen Hochschulprojekte außerhalb des Elfenbeinturms aus?
Neue Terminstruktur für Statusgespräche / Projekttreffen
Für alle Abschlussarbeiten vereinbare ich mit den Studierenden ein 2-wöchentliches Statusgespräch. Dies gilt auch für die vorbereitenden Praxisprojekte für die Bachelorarbeit. Ab diesem Semester veranstalten meine Mitarbeiter und ich zusätzlich ein Projekttreffen (Mittwochs vormittags alle 4 Wochen), bei dem jeder Studierende, der ein Projekt oder eine Abschlussarbeit im thematischen Umfeld „ArchiLab / Microservices“ bearbeitet, seinen/ihren…
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.
BA: Kriterienbasierter Ansatz zur Technologiewahl bei der Entwicklung mobiler Web Clients
Bei der Implementierung von Clients ist ein Mobile Client heutzutage in der Regel gesetzt. Allerdings steht man immer vor der Entscheidung, ob es eine native App sein muss, oder ob auch ein Responsive Web Client genügt. Bestimmte Anwendungen funktionieren nur mit nativen Apps, beispielsweise gewisse Zugriffe auf Systemfunktionen. Allerdings handelt man sich unter Umständen einen signifikanten Entwicklungs- und Wartungsaufwand ein. Eine Responsive Web App ist einfacher zu realisieren, bietet aber nicht ganz den gleichen Standard in Punkto User Experience und Funktionsumfang. In dieser Arbeit sollen Technologien und Designpatterns für Mobile Clients verglichen werden, um zu einer möglichst allgemeinen Aussage bezüglich der obigen Problemstellung zu kommen. Idealerweise kann im Sinne einer Methodik ein Satz von „wenn – dann“ Regeln formuliert werden, gepaart mit Technologieempfehlungen.