Java Entwickler & Architekt seit 2002 Weitere Schwerpunkte: - Softwareentwicklungsprozesse - BizDevSecOps - OpenSource - Speaker & Autor @kitenco1 07.05.2019
ca. 600 Mitarbeiter ca. 60 Fachanwendungen (Produkte) für interne Fachbereiche & Landesprüfdienste 10 Entwickler und 2 Product Owner 2 parallele Sprints noch einige Legacy VB/.NET Apps
maintainable and testable - Independently deployable - Enables the continuous delivery/deployment of large, complex applications - Enables an organization to evolve its technology stack - Organized around business capabilities Why Microservices?
Lösung für ein konkretes Problem festlegen. Diese muss sich lediglich im Rahmen der Makro- Architektur bewegen Vorteile: Vorteile: Vorteile: • Neue Trends lassen sich schneller aufgreifen • Fehlentscheidungen haben geringere Relevanz • Geringere Abhängigkeit von einzelnen Lieferanten ... Mikro-Architektur Makro-Architektur • Architektur "im Großen" • Einheitlichkeit und Standards Vorteile: Vorteile: Vorteile: • Entwickler wechseln leicht zwischen Teams und Projekten • Konzentration auf Applikationsspezifika (z.B. Fachlichkeit) leichter möglich • Wiederverwendung von techn. Lösungen • Vermeidung von Fehlern in kritischen Bereichen durch erprobte Konzepte • Geringere Kosten durch weniger Produkte (Lizenzen, Ausbildung von Spezialisten)
Lösung für ein konkretes Problem festlegen. Diese muss sich lediglich im Rahmen der Makro- Architektur bewegen Vorteile: Vorteile: Vorteile: • Neue Trends lassen sich schneller aufgreifen • Fehlentscheidungen haben geringere Relevanz • Geringere Abhängigkeit von einzelnen Lieferanten • ... Mikro-Architektur Makro-Architektur • Architektur "im Großen" • Einheitlichkeit und Standards Vorteile: Vorteile: Vorteile: • Entwickler wechseln leicht zwischen Teams und Projekten • Konzentration auf Applikationsspezifika (z.B. Fachlichkeit) leichter möglich • Wiederverwendung von techn. Lösungen • Vermeidung von Fehlern in kritischen Bereichen durch erprobte Konzepte • Geringere Kosten durch weniger Produkte (Lizenzen, Ausbildung von Spezialisten)
anderen SCSs, wenn nötig, asynchron über APIs • Teilen keine Geschäftslogik mit anderen SCSs • Teilen keine Infrastruktur mit anderen SCSs • Gemeinsame (technische) Bibliotheken können genutzt werden, z.B. oAuth Client • Ein SCS ist „klein genug“, dass es von einem Team betreut werden kann • Möglichst viele Faktoren des 12factor- manifests: https://12factor.net/de/ Self-Contained Systems
Number of µ-Services - Use of Service Discovery - Technology Decisions - Moving Boundaries - Maybe µ-Service will be Services - Communication Styles - ...
alles in Containern - hin zu Self-Contained-Systems - Einsatz von Vault ausweiten - Continuous Deployment - Service Mesh - Quarkus.io & MicroProfile - UI-Tests - Docker Swarm