Schulungsübersicht
Einführung
- System- und Servicearchitektur, PaaS und Cloud-natives Design
Überblick über die monolithische Systemarchitektur
- Ausführung der gesamten Funktionalität einer monolithischen Anwendung in einem einzigen Prozess
- Scala Flexibilität durch Replikation über mehrere Server
- In monolithischen Systemen verwendete Protokolle: EAI, CORBA, usw.
Überblick über Webservices
- Service-orientierte Architektur (SOA) und Microservices Architektur
Service-Oriented Architecture (SOA)
- Nutzen und Kosten von SOA
- Erfolge und Misserfolge bei der Implementierung einer SOA
- Nachrichtenübermittlung und ESB
- Infrastruktur und Tools zur Unterstützung von SOA
Wie Microservices Web-Service-Konzepte implementieren
- Eine Sache tun und sie gut machen
- DevOps
- Kontinuierliche Bereitstellung und Auslieferung (kontinuierliche Integration, kontinuierlicher Build-Prozess, etc.)
- Leichtgewichtige Protokolle
Microservice-Protokolle und Standards
- HTTP, JMS, AMQP, Websockets, JSON, usw.
Entwicklungs-Frameworks für den Aufbau Microservices
- Java-basierte Frameworks (Spring Cloud)
- Javaskriptbasierte Frameworks (Seneca)
Dekomposition einer monolithischen Anwendung
- Entwicklung von unabhängig voneinander einsetzbaren Anwendungen
- Organisieren von Microservice-Anwendungen um Geschäftsfunktionen herum
- Fallstudie: Migrieren einer monolithischen Anwendung zu drei zentralen Microservices
Einrichten einer Spring Cloud-Entwicklungsumgebung
- Einrichten von Docker und Docker Compose
- Einrichten von Umgebungsvariablen
Überblick über Spring Cloud und Spring Boot
- Spring Cloud Unterprojekte: Config Server & Bus, Eureka, Ribbon, Feign, und Hystrix
- Spring Boot
Erstellen einer Spring Boot-Anwendung
Zentrales, versioniertes Konfigurationsmanagement mit Spring Cloud Config
Dynamische Konfigurationsaktualisierungen mit Spring Cloud Bus
Dienstsuche mit Eureka
Lastausgleich mit Ribbon
Anwendung von Circuit Breakers mit Hystrix
Deklarative REST-Clients mit Feign
Arbeiten mit API Gateway
Absicherung einer Microservice-Anwendung
Tracing von Microservices zur Aufdeckung von Latenzen
Bereitstellen Microservices
- Containern (Docker, K8N, LXC, etc...)
- Configuration Management (Ansible, usw...)
- Erkennung von Diensten
- Überwachung und Verwaltung Microservices
- Infrastruktur für Microservices
Cloud und Auto Scalability von Microservices
- Microservice-Redundanz und Failover
- Leistungsskalierbarkeit für Microservices
- Automatische Skalierbarkeit
- Implementierung von Microservices auf OpenStack, AWS und anderen Cloud-Plattformen
Fehlerbehebung bei gemeinsamen Problemen für verteilte Anwendungen
- Komplexität des Ökosystems
- Netzwerkleistung
- Sicherheit
- Bereitstellung
- Prüfung
- Nano-Dienste
Abschließende Überlegungen zum Aufbau produktionsfähiger Systeme
- Das System für Anfänger einfach machen
- Vervollständigung des Systems, damit es als Grundlage für Unternehmensanwendungen dienen kann
Zusammenfassung und Schlussfolgerung
Voraussetzungen
- Verständnis von Software- und Systemtechnik
- Java Entwicklungserfahrung
- Erfahrung mit Spring Framework
Publikum
- Java Entwickler, die Microservices schnell erstellen und einsetzen möchten
- Systemarchitekten, die eine Microservice-Architektur implementieren möchten