


{"id":755,"date":"2016-09-02T10:41:54","date_gmt":"2016-09-02T08:41:54","guid":{"rendered":"http:\/\/lwibs01.gm.fh-koeln.de\/blogs\/bente\/?p=755"},"modified":"2018-10-03T17:23:29","modified_gmt":"2018-10-03T15:23:29","slug":"gp-a-agile-entwicklung-einer-microservice-architektur-ws16","status":"publish","type":"post","link":"http:\/\/blogs.gm.fh-koeln.de\/bente\/2016\/09\/02\/gp-a-agile-entwicklung-einer-microservice-architektur-ws16\/","title":{"rendered":"GP WS16_A02 &#8222;Agile Entwicklung einer Microservice-Architektur&#8220; &#8211; Projektbeschreibung"},"content":{"rendered":"<h4>Problembeschreibung<\/h4>\n<p class=\"lead\">Eine Microservice-Architektur verfolgt den Ansatz, ein IT-System (in der Regel eine webbasierte Anwendung) als Suite von weitgehend unabh\u00e4ngigen vertikalen Modulen aufzubauen. Diese k\u00f6nnen (weitgehend) unabh\u00e4ngig voneinander deployed und betrieben werden und ben\u00f6tigen nur ein Minimum an zentraler Kommunikationsinfrastruktur. Kommunikation zwischen Front- und Backend erfolgt \u00fcber leichtgewichtige Protokolle wie etwa REST.<\/p>\n<p>Dieser Architekturstil erlaubt es, Anwendungen nach Gesch\u00e4ftsf\u00e4higkeiten zu segmentieren, die jeweils mit einem H\u00f6chstma\u00df an Unabh\u00e4ngigkeit entwickelt und gewartet werden k\u00f6nnen. 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\u00e4ngige Microservices realisiert sein, so dass eine explorative Weiterentwicklung des Produktkatalogs den operativen Zahlungsverkehr nur minimal gef\u00e4hrden kann.<\/p>\n<h4>Projektbeschreibung<\/h4>\n<p>Ziel des Projekts ist es, f\u00fcr eine Beispielanwendung (Buchauskunft mit Bewertungsm\u00f6glichkeit und Suche) eine Microservice-Architektur zu konzipieren und umzusetzen bzw. weiterzuentwickeln. Dabei sollen die St\u00e4rken, Schw\u00e4chen, Risiken und Grenzen dieses Ansatzes im Projektreport evaluiert werden.<\/p>\n<p>Die genaue Aufgabenstellung ist <a href=\"http:\/\/lwibs01.gm.fh-koeln.de\/blogs\/bente\/files\/2016\/09\/Aufgabenstellung-und-Rahmenbedingungen-GP-MS.pdf\" target=\"_blank\" rel=\"noopener\">hier<\/a>\u00a0dokumentiert.<\/p>\n<p>Die Entwicklung erfolgt mittels jeweils geeigneter Technologie-Stacks (gem\u00e4\u00df des Microservice-Ansatzes hat das verantwortliche Team weitgehende Freiheiten in der Technologiewahl). Diese Technologien werden wir gemeinsam in einem Kickoff-Workshop festlegen.<\/p>\n<ul>\n<li>Kandidat 1 f\u00fcr serverseitige Technologie ist das von dem Projektpartner Capgemini vorangetriebene Open-Source-Projekt <em>Open Application Standard Platform<\/em> (OASP, <a href=\"https:\/\/oasp.github.io\/\">https:\/\/oasp.github.io\/<\/a>). OASP hat es sich zur Aufgabe gemacht, bew\u00e4hrte Open-Source-Frameworks zu einem \u201eBest-of-Breed\u201c-Anwendungspaket zu b\u00fcndeln. Mit Hilfe von OASP k\u00f6nnen Softwareprojekte f\u00fcr kostensensitive Kunden (z.B. \u00f6ffentliche Auftraggeber) ohne Zeitverlust durch die sonst \u00fcbliche \u201eTechnologie-Findungsphase\u201c realisiert werden. Au\u00dferdem vermeidet man technologischen Wildwuchs, da OASP eine in sich konsistente Basisarchitektur darstellt. Zufallsarchitektur (Accidental Architecture) wird so zumindest bei der Technologieplattform vermieden.<\/li>\n<li>Kandidat 2 f\u00fcr serverseitige Technologie ist Java EE 7. Ein gew\u00fcnschtes Ergebnis des Projekts ist in diesem Fall ein Vergleich dieser Technologien in Form eines \u201eWettstreit\u201c zwischen den Teams bei der Umsetzung von Mikroservices mit OASP respektive Java EE. Java EE ist bei Individualentwicklungen weiterhin verbreitet und durch die Vereinfachungen aus Java EE 6 \/ 7 effizient einsetzbar.<\/li>\n<\/ul>\n<p>Clientseitig werden wir in diesem Projekt das Google-Framework AngularJS verwenden.<\/p>\n<h4>Projektmethodik<\/h4>\n<p>Die Umsetzung des Projekts sowie die Erstellung des Evaluationsberichts wird nach agiler Methodik (Scrum mit Elementen aus XP) erfolgen. Die agilen Teamprozesse werden gem\u00e4\u00df Typ-A-Definition von Prof. Stumpf und seinem Team methodisch begleitet. Die agilen Teams w\u00e4hlen jeweils einen Scrum Master und einen Product Owner. Das Projekt wird in (vermutlich vierw\u00f6chige) Sprints gegliedert. Ein Vertreter von Capgemini wird bei den Entwicklungs-Demos am jeden Sprints als Kunde zugegen sein.<\/p>\n<p>Nach jetziger Planung wird es eine Unterst\u00fctzung von Seiten Capgeminis in Form eines 1-t\u00e4gigen \u201eScrum Kickstart\u201c-Seminars geben, mit der Option zur Zertifizierung zum Professional Scrum Master. Zus\u00e4tzlich wird Prof. Bente w\u00e4hrend des Projekts als Ansprechpartner in Fragen der agilen Methodik verf\u00fcgbar sein.<\/p>\n<p>Technologisch werden wir den Entwicklungsprozess durch eine professionelle Umsetzung von Continuous Integration mittels Jenkins, Maven und Docker begleiten. Die Qualit\u00e4tssicherung erfolgt durch automatische Tests.<\/p>\n<h4>Learning Outcomes<\/h4>\n<ul>\n<li>Praxiserfahrung mit Microservice-Architekturen und deren Umsetzung in webbasierter Software-Entwicklung<\/li>\n<li>Methodik zur systematischen Evaluierung eines Architekturstils<\/li>\n<li>Erfahrungen mit Erstellung von AngularJS-basierten Webanwendungen<\/li>\n<li>Erfahrung mit agiler Entwicklungsmethodik in einem realistischen Softwareprojekt<\/li>\n<li>Expertise in Kommunikation und Dokumentation<\/li>\n<li>Teamwork- und Projektmanagement-Erfahrung<\/li>\n<\/ul>\n<h4>Voraussetzungen<\/h4>\n<ul>\n<li>Programmierkenntnisse<\/li>\n<li>Interesse an professioneller Software-Entwicklung mit Java und\/oder JavaScript<\/li>\n<li>Interesse an der Softwarearchitektur sowie Gestaltung von Nutzeroberfl\u00e4chen<\/li>\n<li>Interesse an komplexen Aufgabenstellungen und methodischem Vorgehen<\/li>\n<li>Bereitschaft, Teamarbeit tats\u00e4chlich physisch gemeinsam (im gleichen Raum, \u201ecollocated\u201c) durchzuf\u00fchren, um zu einem agilen Team zu reifen<\/li>\n<li>Bereitschaft, gem\u00e4\u00df agiler Vorgehensweise durch geeignete Tools Transparenz \u00fcber den eigenen Beitrag zur Gruppenleistung zuzulassen<\/li>\n<\/ul>\n<h4>Externe Projektpartner<\/h4>\n<p>Capgemini, Niederlassung K\u00f6ln<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ziel des Projekts ist es, f\u00fcr eine existierende Showcase-Webanwendung (B\u00fccherbestellung) eine Microservice-Architektur zu konzipieren und umzusetzen bzw. weiterzuentwickeln. Dabei sollen die St\u00e4rken, Schw\u00e4chen, Risiken und Grenzen dieses Ansatzes im Projektreport evaluiert werden.<\/p>\n","protected":false},"author":39,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[50732],"tags":[9885,6831,25772,21843,21838,21839],"class_list":["post-755","post","type-post","status-publish","format-standard","hentry","category-eigene-gps","tag-architektur","tag-capgemini","tag-jee","tag-micro-service","tag-oasp","tag-proof-of-concept"],"acf":[],"_links":{"self":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/comments?post=755"}],"version-history":[{"count":6,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/755\/revisions"}],"predecessor-version":[{"id":1556,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/755\/revisions\/1556"}],"wp:attachment":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/media?parent=755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/categories?post=755"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/tags?post=755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}