Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best...

82
SWAR #13 Felix Hohlwegler – SS2019

Transcript of Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best...

Page 1: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

SWAR #13

Felix Hohlwegler – SS2019

Page 2: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Nachholtermine

Felix Hohlwegler – SS2019

Analyse

• Nachholtermin

• Vorlesung

• ??

• Übung:

Page 3: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Wiederholung

Felix Hohlwegler – SS2019

Page 4: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

AWS CodePipeline

• CI Build Server

• AWS CodePipeline ist ein vollständig verwalteter Continuous-Delivery-Service, mit dem Sie Ihre

Veröffentlichungs-Pipelines für schnelle und zuverlässige Updates von Anwendungen und Infrastruktur

automatisieren können.

Felix Hohlwegler – SS2019

https://aws.amazon.com/de/codepipeline/

Page 5: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Continuous Deployment

• Grundlagen

• Produktivsetzung der Software auf Knopfdruck

• jede Produktivsetzung verspricht bessere Qualität als die vorherige

• Aufhebung des Phasenmodells der Softwareentwicklung

• umfassende Tests vor Go-Live

• Geschwindigkeit

Felix Hohlwegler – SS2019

Page 6: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Continuous Deployment

• Was ist Continuous Delivery?

• Techniken, Prozesse und Werkzeuge, mit deren Hilfe kurze Entwicklungszyklen

und die schnelle Auslieferung von Software-Updates oder produktiven Endsystemen

ermöglicht werden

• Menge von Validierungen, die vor Go-Live „passed“ sein müssen

Felix Hohlwegler – SS2019

Page 7: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Schritte zum CD

Felix Hohlwegler – SS2019

Continuous Deployment

Continuous Pipeline

Deployment Automation

Continuous Integration

Configuration Management

Automated Testing

Agile Development

Page 8: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Build Management

• bisher wurde die Software über die IDE gebaut

• Jenkins ist unabhängig von der IDE - es wird ein Buildprozess gebraucht

• Was macht ein Buildprozess?

• Code kompilieren

• Ausführen automatischer Tests

Felix Hohlwegler – SS2019

Page 9: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Build Management

• Build Tools

• Shell Scripts

• Make

• Rake

• Grunt

• Gulp

• Composer

• SBT

• Ant

• Maven

• Gradle

• …. Felix Hohlwegler – SS2019

Page 10: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

ANT

Felix Hohlwegler – SS2019

Page 11: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

MAVEN

• MAVEN

• Software Management Tool

• Basiert auf einem Project Object Model (POM)

• XML Datei

• Beinhaltet alle Projekt und Konfigurationsdetails

• Verwaltet Project Build

• Stellt Reportings bereit

• Verwaltung der Dokumentation an einem zentralen Ort

Felix Hohlwegler – SS2019

Page 12: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

MAVEN

• MAVEN ist mehr als ein Build Tool

• Build Prozess

• Einheitliches Build System

• Abhängigkeit Management

• Dokumentationstool

• Qualitätsinformationen

• Richtlinien für die Best Practices Entwicklung

Felix Hohlwegler – SS2019

Page 13: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

MAVEN

• MAVEN in 5 Minutes

• Java muss installiert sein

• Maven Installieren https://maven.apache.org/download.cgi

• mvn –version

• mvn archetype:generate -DgroupId=com.mycompany.app

-DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart

-DarchetypeVersion=1.4 -DinteractiveMode=false

Felix Hohlwegler – SS2019

Page 14: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

MAVEN

Felix Hohlwegler – SS2019

Page 15: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Gradle

Felix Hohlwegler – SS2019

https://gradle.org/

Page 16: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Gradle

Felix Hohlwegler – SS2019

• Gradle vs. Maven

<project>

<modelVersion>4.0.0</modelVersion>

<groupId>de.htwg.examples</groupId>

<artifactId>example</artifactId>

<version>0.1-SNAPSHOT</version>

</project>

apply plugin: 'java'

Page 17: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Gradle

Felix Hohlwegler – SS2019

• Dependency Management

• Voll kompatibel mit Maven und Ivy und deren Repos

dependencies {

compile group: 'org.hibernate', name: 'hibernate-core',

version: '3.6.7.Final'

}

dependencies {

compile 'org.hibernate:hibernate-core:3.6.7.Final'

}

build.gradle

short way

Page 18: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Themenblock 12

Felix Hohlwegler – SS2019

Page 19: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Ziele

• Sie wissen, was Microservices sind

• Sie wissen, wie man eine Microservice Architektur entwirft

• Sie wissen, wie man Microservices Deployed

• Sie wissen, was Docker ist

Felix Hohlwegler – SS2019

Page 20: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Was sind Microservices?

• Es existiert keine formelle Definition

• Es gibt kein Standardmodell (Architektur)

• Was sind Microservices?

• Wesentliche Eigenschaft: unabhängiges Deployment

• Keine Monolithen

• Modularisierung

• Deployment einer „Einheit“ ohne alle deployen zu müssen

Felix Hohlwegler – SS2019

Page 21: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Was sind Microservices?

• Am Ende entsteht ein verteiltes System

• Mit einem nicht zu unterschätzendem Komplexitätsgrad

Felix Hohlwegler – SS2019

Page 22: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservice Vs.

Monolithic Application

Felix Hohlwegler – SS2019

Page 23: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Monolith vs. Microservice

Felix Hohlwegler – SS2019https://www.redhat.com/de/topics/microservices/what-are-microservices

Page 24: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

Microservices Monolithic Architecture

Jede Einheit der gesamten Anwendung sollte die kleinste sein und in der Lage, ein bestimmtes Geschäftsziel zu erreichen.

Eine einzige Codebasis für alle Unternehmensziele

Die Inbetriebnahme des Dienstes ist relativ schnell. Die Inbetriebnahme des Dienstes erfordert mehr Zeit.

Die Fehlerisolierung ist einfach. Selbst wenn ein Dienst ausfällt, kann ein anderer weiterhin funktionieren.

Die Fehlerisolierung ist schwierig. Wenn eine bestimmte Funktion nicht funktioniert, geht das gesamte System aus. Um dieses Problem zu lösen, muss die Anwendung neu erstellt, erneut getestet und auch neu bereitgestellt werden.

Sollten lose gekoppelt sein, damit Änderungen, die in dem einen Bereich vorgenommen werden, den anderen nicht beeinflussen.

Die monolithische Architektur ist eng miteinander verbunden. Änderungen in einem Modul des Codes wirken sich auf das andere aus.

Page 25: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

Microservices Monolithic Architecture

Unternehmen können mehr Ressourcen für Services bereitstellen, die einen höheren ROI generieren.

Da Dienste nicht isoliert sind, ist eine individuelle Ressourcenzuweisung nicht möglich.

Microservices bleiben immer konsistent und kontinuierlich verfügbar.

Entwicklungswerkzeuge werden überlastet, da der Prozess von Grund auf neu beginnen muss.

Die Daten werden zusammengeführt. Dies ermöglicht es dem einzelnen Microservice ein für seine Bedürfnisse am besten geeignetes Datenmodell zu übernehmen.

Die Daten sind zentralisiert.

Kleine, fokussierte Teams. Parallele und schnellere Entwicklung

Großes Team und erheblicher Aufwand für das Teammanagement sind erforderlich.

Eine Änderung des Datenmodells eines Microservice hat keinen Einfluss auf andere Microservices.

Änderung des Datenmodells betrifft die gesamte Datenbank

Page 26: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

Microservices Monolithic Architecture

Interaktion mit anderen Mikroservices über klar definierte Schnittstellen

Nicht anwendbar

Microservices arbeiten nach dem Prinzip, das sich auf Produkte und nicht auf Projekte konzentriert.

Legen Sie Wert auf das gesamte Projekt.

Keine Querabhängigkeiten zwischen den Codebasen. Sie können verschiedene Technologien für verschiedene Microservices verwenden.

Eine Funktion oder ein Programm hängt von anderen ab.

Page 27: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservice Vs. SOA

Felix Hohlwegler – SS2019

Page 28: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Von der SOA zum Microservice

• Unterschiede

• Microservices können Stateless miteinander kommunizieren

• Microservices sind fehlertoleranter, da sie weniger von einander

abhängen

• Sprachunabhängige APIs

• Vergleich

• Microservices erscheinen im Vergleich zu einer SOA

gar nicht so neu

Felix Hohlwegler – SS2019

Page 29: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Von der SOA zum Microservice

• Vergleich

• Umsetzung aufgrund des Fortschritts der Containerisierung

deutlich einfacher

Felix Hohlwegler – SS2019

Page 30: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

Parameter SOA Microservice

Ausführungsart In der SOA werden Softwarekomponenten der Außenwelt zur Nutzung in Form von Services ausgesetzt.

Micro Service ist ein Teil von SOA. Es handelt sich um eine Implementierung von SOA.

Abhängigkeit Die Geschäftseinheiten sind abhängig. Sie sind unabhängig voneinander.

Größe der Software

Die Software ist größer als jede herkömmliche Software.

Die Größe der Software ist bei Microservices immer klein.

Technology Stack

Der Technologie-Stack ist im Vergleich zu Microservice kleiner.

Microservice Technologie-Stack könnte sehr groß sein.

Art der Anwendung

Monolithisch in der Natur Full stack in nature

Unabhängig und fokussiert

SOA-Anwendungen sind für die Ausführung mehrerer Geschäftsaufgaben konzipiert.

Sie sind so konzipiert, dass sie eine einzige Geschäftsaufgabe erfüllen.

Page 31: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

Parameter SOA Microservice

Deployment Der Bereitstellungsprozess ist zeitaufwändig.

Die Bereitstellung ist unkompliziert und weniger zeitaufwändig.

Kosten -Effektivität

Kostengünstiger Weniger wirtschaftlich.

Skalierbarkeit Geringer im Vergleich zu Microservices. Highly scalable.

Business logic Geschäftslogik-Komponenten werden innerhalb einer einzigen Servicedomäne gespeichert Einfache Protokolle (HTTP mit XML JSON)Die API wird mit SDKs/Clients gesteuert

Geschäftslogik kann domänenübergreifend leben Enterprise Service Bus wie Schichten zwischen Diensten Middleware

Page 32: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservice Vorteile

Felix Hohlwegler – SS2019

Page 33: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Vorteile

• Schnellere Markteinführung

• Kleinere Entwicklungszyklen in einer Microservice-Architektur

• Schnellere Implementierung

• Schnellere Updates

• Agiler

• Deployment von Updates einzelner Komponenten

nicht der gesamten Applikation

Felix Hohlwegler – SS2019

Page 34: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Vorteile

• Hochgradig skalierbar

• Applikation kann über viele Services verteilt werden

• Applikation kann über mehrere Server verteilt werden

• Applikation kann über mehrere Infrastrukturen verteilt werden

Felix Hohlwegler – SS2019

Page 35: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Vorteile

• Robustheit

• Services haben keinerlei Auswirkung aufeinander

• Wenn ein Service ausfällt, kollabiert nicht die gesamte

Applikation, dies wäre bei Monolithischen Applikationen der Fall.

Felix Hohlwegler – SS2019

Page 36: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Vorteile

• Einfache Implementierung

• Erhöhte Modularität

• Kleinere Einheiten

Felix Hohlwegler – SS2019

Page 37: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Vorteile

• Besserer Zugriff

• Einzelne Einheiten der Applikation können besser verstanden

werden

• Einfache Aktualisierung

• Ideal in Kombination mit agilen Methoden

Felix Hohlwegler – SS2019

Page 38: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Vorteile

Felix Hohlwegler – SS2019

Typ Beschreibung

Simpler to Deploy Es werden nur Teile einer Applikation deployed

Simpler to Understand Einzelpersonen müssen nur Teile einer Applikation kennen.Den Code zu verstehen ist deutlich einfacher, Funktionen sind isolierter und haben weniger Abhängigkeiten.

Reusability Across Business Kleine Services wie Bezahlsystem oder Login System können von allen Applikationen einer Firma verwendet werden.

Faster Defect Isolation Wenn ein Test schief geht, ist dies schneller auf einen Service zurückzuführen

Minimized Risk of Change Technologie oder Sprach Lock verhindern, change on the fly without risk

Page 39: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservice

Herausforderungen

Felix Hohlwegler – SS2019

Page 40: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Herausforderungen

• Entwicklung

• Abhängigkeiten zwischen Services müssen identifiziert werden

➔ Benötigt Zeit

• Ein Build genügt nicht mehr aus, ein Build kann weitere Builds

voraussetzen, um wieder eine lauffähige Applikation zu haben

• Auswirkung auf Daten muss berücksichtigt werden

Felix Hohlwegler – SS2019

Page 41: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Herausforderungen

• Tests

• Integrations-Tests werden komplexer

• End-To-End Tests werden aufwendiger und wichtiger

• Probleme in einem Service können Probleme in anderen

Services verursachen

Felix Hohlwegler – SS2019

Page 42: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Herausforderungen

• Versionierung

• Update auf neue Versionen kann Abwärtskompatibilität

beeinträchtigen

• Komplexe Business Logik kann Builds komplex gestalten

• Es können unterschiedliche Versionen für unterschiedliche

Kunden hochgefahren werden

• Wartungsaufwand steigt

Felix Hohlwegler – SS2019

Page 43: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Herausforderungen

• Implementierung

• Ersteinrichtung ist aufwendig

• Investition in Automatisierung

• Komplexität in welcher Reihenfolge das Rollout ablaufen muss

Felix Hohlwegler – SS2019

Page 44: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Herausforderungen

• Protokollierung

• Zentrale Stelle für Protokollierung

• Überwachung

• Es gilt viele Services zu überwachen, die auf unterschiedlichen

Technologien/Frameworks basieren.

• Debugging

• Remote Debugging keine Option (Dutzende oder Hunderte Services)

Felix Hohlwegler – SS2019

Page 45: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Vorteile

• Mehr Offenheit

• Sprachunabhängige APIs

• Jeder Entwickler kann in seiner bevorzugten Sprache entwickeln

Felix Hohlwegler – SS2019

Page 46: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Die sechs Merkmale von

Microservices

Felix Hohlwegler – SS2019

Page 47: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• 1.) Mehrere Komponenten

• Aufteilung der Applikation in mehrere einzeln entwickelte Komponenten-

Dienste

• Separates deployen jeder einzelnen Komponente

• Viele Remote-Aufrufe

• Erhöhte Komplexität

Felix Hohlwegler – SS2019

Page 48: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• 2.) Für die Geschäftswelt gedacht

• Früher Monlithisch: verschiedene Teams hatten Fokus auf einen spezifischen

Teil (z.B. UI, Datenbank, ..)

• Jetzt funktionsübegreifende Teams (Full-Stack developer)

• spezifische Produkte auf der Grundlage eines oder mehrerer individueller

Dienste herstellen

Felix Hohlwegler – SS2019

Page 49: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• 3.) Einfaches Routing

• empfangen Anfragen

• bearbeiten sie

• erzeugen eine entsprechende Antwort

• Kein Message Rounting, Choregraphie

• Microservices haben „intelligente“ Endpunkte, die Informationen

verarbeiten und Logik anwenden und „dumme“ Rohre durch welche

Informationen fließen

Felix Hohlwegler – SS2019

Page 50: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• 4.) Dezentralisierung

• Dezentrale Governance wird von der Mikroservice-Community favorisiert

• Bereitstellung von Tools und Services „weltweit“

Felix Hohlwegler – SS2019

Page 51: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• 5.) Failure Resistant

• Mikroservices sind auf die Bewältigung von Misserfolgen ausgelegt

• Da mehrere einzigartige und unterschiedliche Dienste miteinander kommunizieren,

ist es durchaus möglich, dass ein Dienst aus dem einen oder anderen

Grund ausfällt

• Client muss dies abfangen

• Gutes Monitoring wird vorausgesetzt

Felix Hohlwegler – SS2019

Page 52: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• 5.) Evolution

• evolutionäres Design

• ideal für evolutionäre Systeme, bei denen Sie die Art der Geräte, die eines

Tages auf Ihre Anwendung zugreifen könnten, nicht vollständig

voraussehen können

Felix Hohlwegler – SS2019

Page 53: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservice Beispiele

Felix Hohlwegler – SS2019

Page 54: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• weit verteilte Architektur

• empfängt täglich mehr als eine Milliarde Anrufe von mehr als 800 verschiedenen

Gerätetypen bis hin zu seiner Streaming-Video-API

• Jeder API-Aufruf fordert dann etwa fünf weitere Aufrufe des Backend-Service an.

Felix Hohlwegler – SS2019

Page 55: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019https://medium.com/netflix-techblog/growth-engineering-at-netflix-accelerating-innovation-90eb8e70ce59

Page 56: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019https://medium.com/netflix-techblog/growth-engineering-at-netflix-accelerating-innovation-90eb8e70ce59

Page 57: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

• Core umfasst mehrere autonome Anwendungen

• die jeweils die Geschäftslogik für verschiedene Funktionsbereiche ausführen

Felix Hohlwegler – SS2019

Page 58: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019https://de.slideshare.net/kasun04/microservices-at-ebay

Page 59: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019https://de.slideshare.net/kasun04/microservices-at-ebay

Page 60: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019https://de.slideshare.net/kasun04/microservices-at-ebay

Page 61: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019https://de.slideshare.net/kasun04/microservices-at-ebay

Page 62: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 63: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 64: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 65: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 66: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 67: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 68: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 69: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 70: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

Page 71: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 72: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Microservices

Felix Hohlwegler – SS2019

https://de.slideshare.net/kevingoldsmith/microservices-at-spotify

Page 73: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Felix Hohlwegler – SS2019

Page 74: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Docker

• Open Source Software zur Bereitstellung von Applikationen

• Containerisiert

• Beinhalten alle Pakete

• Leicht zu transportieren (als Datei)

• Gewährleistung der Trennung

Felix Hohlwegler – SS2019

Page 75: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Docker

Felix Hohlwegler – SS2019

https://de.wikipedia.org/wiki/Docker_(Software)#/media/File:Docker-linux-interfaces.svg

Page 76: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Docker

• Image:

• Speicherabbild eines Containers

• Besteht aus Layern

• Ist Portabel

• Kann in Repositorys gespeichert werden

• Container

• Aktive Instanz eines Images

• Layer

• Teil eines Images

• Enthält Befehl / DateiFelix Hohlwegler – SS2019

Page 77: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Docker

• Dockerfile

• Textdatei, welche ein Image mit Befehlen bezeichnet

• Jeder Befehl erzeugt ein Layer

• Registry

• Verwaltung von Repositories, z.B. Docker Hub

• Docker Swarm

• Cluster von Conatinern

Felix Hohlwegler – SS2019

Page 78: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Docker

• Wichtige Docker Befehle

• docker ps –a => Zeigt alle laufenden Instanzen an

• docker Images => Zeigt alle Images auf dem Host an

• docker exec -it <<containerID>> /bin/bash => öffnet bash

Sitzung innerhalb eines laufenden containers

• Docker start <<containerID>> => Startet einen Container

• Docker stop <<containerID>> => Stopt einen Container

Felix Hohlwegler – SS2019

Page 79: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Docker

• Wichtige Docker Befehle

• docker run -d -it -p (port) 9000:9000

--name <<name>> <<image>> /bin/bash

==> erzeugt einen neuen unabhängigen Container

(nicht verwechseln mit start)

Felix Hohlwegler – SS2019

Page 80: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Docker

• Wichtige Docker Befehle

• docker commit <<containerID>> <<some_name>>

==> erzeugt Image aus laufendem Container

• docker pull <<imageName>> => lädt die BaseImage von dem

dockerHUB

Felix Hohlwegler – SS2019

Page 81: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Docker

• Datenhaltung

• Docker Container sind nicht persistent

• Wird ein Container gelöscht sind die Daten weg

• Idealerweise mounten eines externen Speichers vom Host System

Felix Hohlwegler – SS2019

Page 82: Konzeption eines Qualitätsmanagement-Werkzeuges für die ... · • Richtlinien für die Best Practices Entwicklung Felix Hohlwegler –SS2019. MAVEN •MAVEN in 5 Minutes ... example

Docker

• Docker File

Felix Hohlwegler – SS2019