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.

Das Seminar für Architekten und Entscheider zur Microservices Architektur mit Grundlagen und viel Praxis.

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?
  • Minimum viable Product MVP

Microservices Architektur und Design

  • Nachteile einer monolithischen Architektur
  • Granularität: Wie komplex sollte ein Mircoservice sein?
  • 12 Factor App
  • Conway's Law
  • Funktionale Dekomposition
  • Der Einfluss von Domain Driven Design (DDD)

Kommunikation

  • Synchrone und asynchrone Kommunikation
  • Messaging
  • REST

Entwicklung

  • Shared Code und Microservices
  • Datenhaltung mit SQL und/oder NoSQL
  • Source Code Management

Test & Continuous Integration

  • Unit-, Service- und End-to-End Tests
  • Build- und Test-Automation
  • Continuous Integration

Patterns

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

Deployment

  • DevOps Culture
  • Management von Abhängigkeiten
  • Umgebungen für Entwicklung, Test und Produktion
  • Blue/Green Deployment
  • Phoenix Servers
  • Automatisiertes Deployment
  • Continuous Delivery
  • Virtualisierung
  • Verteilung von Services auf Hosts
  • Überblick über die Laufzeitumgebungen: Docker, Spring Boot
  • Werkzeuge: Packer, Puppet, Chef, Vagrant

Cloud

  • Deployment in der Cloud
  • PaaS

Betrieb

  • Infrastructure as Code
  • Verfügbarkeit & Skalierbarkeit
  • Loadbalancing und Failover
  • Wie Mircoservices einen stabilen Betrieb ermöglichen
  • Wer übernimmt den Betrieb?
  • 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?

Weitere Themen

  • Reactive Microservices
  • 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