Schulung: Microservices

Microservices sind klein, einzeln installierbar und bilden zusammen eine größere Anwendung. Der Architekturstil der Microservices ist ein populärer Ansatz als Antwort auf ständige Veränderungen in den Unternehmen und IT Landschaften. Von früheren Ansätzen wie zum Beispiel der SOA hat man bei den Microservices gelernt und begegnet den Problemen der Entwicklung und des Betriebes mit zeitgemäßen Werkzeugen und Ansätzen wie z.B. dem Continuous Delivery.

Die Ansätze, Best Practices und Muster der Microservices finden sich in vielen erfolgreichen Software Projekten der letzten Jahre wieder. Dieser Kurs ist für Architekten und Entwickler, die selbst Microservices in ihren Unternehmen einführen und entwickeln möchten.

Einführung

  • Was ist ein Microservice?
  • Welche Eigenschaften zeichnen einen Microservice aus?
  • Wie unterscheidet sich die Mircoservices Architektur MSA von SOA, REST, ESB, ...
  • Was spricht für die Einführung einer Mircoservices Architektur?

Microservices Architektur und Design

  • Vergleich zwischen Monolith und Microservice
  • Granularität: Wie komplex sollte ein Mircoservice sein?
  • 12 Factor App
  • Conway's Law
  • Funktionale Dekomposition
  • Domain Driven Design (DDD) als Antwort?

Kommunikation

  • Synchrone und asynchrone Kommunikation
  • Messaging und/oder REST?
  • Reactive Microservices

Persistenz

  • Datenhaltung mit SQL und/oder NoSQL
  • NoSQL am Beispiel von Apache Cassandra
  • Eventsourcing

Entwicklung

  • Shared Code und Abhängigkeiten
  • Source Code Management

Continuous Integration, Delivery und Deployment

  • Unit-, Service- und End-to-End Tests
  • Build- und Test-Automation
  • Continuous Deployment am Beispiel einer Jenkins2 Pipeline

Patterns

  • Circuit Breaker
  • Immutable Servers
  • Control Bus
  • Service Discovery
  • Bulkhead
  • Failover, Retry, Escalation

Deployment

  • Umgebungen für Entwicklung, Test und Produktion
  • Blue/Green Deployment, Rolling Update
  • Phoenix Servers
  • Automatisiertes Deployment
  • Virtualisierung
  • Verteilung von Services auf Hosts
  • Überblick über die Laufzeitumgebungen: Docker, Spring Boot

Cloud

  • Deployment in der Cloud
  • IaaS oder PaaS?

Betrieb & DevOps

  • Infrastructure as Code
  • Verfügbarkeit & Skalierbarkeit
  • Loadbalancing und Failover
  • DevOps Culture
  • Wie Mircoservices einen stabilen Betrieb ermöglichen
  • Konfigurationsmanagement

Service Registries

  • Finden von Services
  • Loadblancing und Ausfallsicherheit
  • Produkte im Überblick: Apache Zookeeper, Consul, Etcd, Google Kubernetes, Netflix Eureka

Monitoring

  • Health? Sind meine Services gesund?
  • Performance Monitoring
  • Welche Metriken sollen überwacht werden?
  • Zentrales Logging
  • Visualisierung von Messwerten
  • Monitoring am Beispiel von Tomcat, ActiveMQ und Camel
  • Tracking von Business Vorgängen mit dem CorrelationId Muster
  • Werkzeuge: Nagios, Graphite, collectd, jmxTrans, hawt.io, logstash

Versionierung

  • Do not break! Das Tolerant Reader Muster
  • Früh erkennen, wann eine Schnittstelle bricht
  • Werkzeuge

Implementing Microservices

  • Wie kann eine bestehende Landschaft oder Architektur in eine Mircoservices Architektur umgewandelt werden?
  • Wie bricht man einen Monolith auf?

Sicherheit

  • Absicherung der Kommunikation zwischen Services
  • Single Sign On
  • SSL/TLS

Management

  • Wie bildet man ein Microservices Team?
  • Welche Fähigkeiten werden gebraucht?
  • Wer übernimmt das Release Management?
  • Minimum viable Product MVP

Weitere Themen

  • Praxisbeispiele und Case Studies
  • Einbindung von Fremdsystemen und Standardsoftware

Zielgruppe

Softwarearchitekten, Projektleiter, Entwickler

Vorkenntnisse

Grundlegende Kenntnisse in der Entwicklung und/oder im Betrieb von Anwendungen

Ziele

  • Du weisst, was Microservices sind und kennst ihre Ideen und Prinzipien
  • Du kennst die Vorteile, Nachteile und Besonderheiten der Microservices Architektur
  • Du kannst die Erkenntnisse aus dem Kurs auf dein Projekt und Team übertragen

Deine Vorteile

  • Erfahren, wo die Schwierigkeiten bei der Umsetzung von Microservices liegen und wie Du diese gezielt adressieren kannst
  • Erfahre wie Microservices zuverlässig betrieben werden können
  • Wie Du mit Microservices ständige Veränderung in den Griff bekommen kannst
  • Erfahre, wie man Software schneller ausliefert.
  • Du bekommst nützliche Tools vorgestellt, die die Entwickung und den Betrieb von Microservices erleichtern
  • Du erlebst in zwei Tagen zahlreiche Tools im Einsatz und bekommst so eine gute Vorstellung über Microservices.
  • Vermeide die üblichen Stolpersteine und profitiere von der Erfahrung des Trainers
  • Du Lernst nützliche Tools und Hilfsmittel kennen, die Entwicklung, Test und Betrieb von Microservices vereinfachen.

Dauer

2 Tage

Kursunterlage

Handouts aller in der Schulung präsentierten Folien.

* Gesamtpreis pro Teilnehmer inkl. Kursmaterial und Tagesverpflegung zzgl. Mehrwertsteuer

Überblick

Übungsanteil: 20 %
Schwierigkeitsgrad: mittel

23. - 24.11.17Bonn
19. - 20.2.18Bonn
15. - 16.5.18Mannheim

Teilnahme: 1.280,- €*