Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
© 2014 FNT GmbH
FNT SOFTWARE
Vom Monolith zur Microservice-Architektur –
Ein Praxisbericht von FNT
Michael Vögeli, Ulrich Vigenschow
6. Juli 2017
© 2014 FNT GmbH
Über uns
Michael Vögeli
B. Sc. Computer Science
Über zehn Jahre Erfahrung in der Softwareentwicklung
Seit fast zehn Jahren bei FNT in Ellwangen
Ulrich Vigenschow
Diplom-Informatiker (FH)
13 Jahre in der Softwareentwicklung tätig
Seit 11 Jahren bei FNT
06.07.2017 2
© 2014 FNT GmbH
FNT Software
17-07-06 3
FNT ist ein führender Anbieter eigener integrierter Softwareprodukte für die Dokumentation und
das Management von IT- und Telekommunikationslösungen sowie Rechenzentren weltweit.
© 2014 FNT GmbH
Motivation
06.07.2017 4
Erste Versuche bereits anno 1378
Zerlegung eines Monolithen – aber richtig!
© 2014 FNT GmbH
Ausgangssituation
Vorstellung des Systems FNT Command
06.07.2017 5
Data Center
Infrastructure
Management
Asset &
Configuration
Management
IT Infra-
structure
Management
Cable
Management
Telecom-
munication
Resource
Inventory
Automobilindustrie
Banken
Versicherungen
Kliniken
Produzierendes Gewerbe
Öffentliche Einrichtungen
Universitäten & Forschung
Flughäfen
Chemie & Pharma
Energieversorger
Telekommunikationsanbieter
Medien & Broadcasting
© 2014 FNT GmbH
06.07.2017Über FNT Software
6
Location Munich Site MoscowData Center New YorkFacility
Managed
Application
Managed
ServerManaged
StorageVoiceVideo Data
Services
ERP CRMLinux
Soft SwitchVideo ServerWindows WebApplications
Virtual Switch
Virtualized
Server Virtualized
Storage
Virtualized
ServerVirtualization
LANStorage
Network MPLSSDHLogical
RackRouter
AntennaCell towerUPS
Humidity Sensor
Fire Detector CableServerPhysical
Business Services
Data Center
Services
Telecommunication
ProductsBusiness
Applications
Ausgangssituation
Vorstellung des Systems FNT Command
© 2014 FNT GmbH
Ausgangssituation
Vorstellung des Systems – Die Historie
06.07.2017 7
NFM C6000 FNT Command 9
Restrukturierung
HTML 5 /
Microservices
1996 2012 201620062003
FNT Command 12
© 2014 FNT GmbH
Ausgangssituation
Die Architektur
Frontend wie Backend sind Modular aufgebaut
Module werden zur Compile-Zeit eingebunden
Modulabhängigkeiten im Backend durch
Modulübergreifende Fachlichkeit
Monolithische Oracle – Datenbank
Umfangreiche Implementierungen auf allen Ebenen
ActionScript: 350.000 LOC
Java: 1.500.000 LOC
PL/SQL: ~ 200.000 LOC
Kundenanpassungen
06.07.2017 8
Mod
n…
ActionScript – Common Components
Java – Common Components
Oracle
JDBC
Mod
3
Mod
2
Mod
1
Mod
n…Mod
3
Mod
2
Mod
1
SOAP
© 2014 FNT GmbH
Ausgangssituation
Problemstellung
06.07.2017 9
Eingeschränkte Plattformunabhängigkeit
Aufwendige Qualitätssicherung
Harte technische Kopplungen
zwischen den einzelnen Schichten
Verwobene Strukturen auf allen Ebenen
© 2014 FNT GmbH
Zielsetzung
Webapplikation mit Server Backend/Persistenz
HTML5 Client
Plattformunabhängiger Betrieb
Datenbankunabhängigkeit
Cloud / On-Premise Betrieb
Skalierbarkeit
Austauschbarkeit
Einfache fachliche Erweiterbarkeit
Kurze Entwicklungszyklen in kleinen Teams
06.07.2017 10
© 2014 FNT GmbH
Neue Architektur
Analyse des Bestandssystems
Design Structure Matrix (DSM)
Fachliche Abhängigkeiten
Ermittlung technischer Abhängigkeiten
06.07.2017 11
Strategien zur Auflösung von Abhängigkeiten
Lose Kopplung
Richten der Abhängigkeit
Visualisierung mittels Abhängigkeitsgraph
© 2014 FNT GmbH
Neue Architektur
Modularisierung Layered
Modularisierungsvarianten
Migrationsstrategien
06.07.2017 12
Persistence
Business Logic
Common Service Adapter
API UI Service
Persistence
Business Logic
API UI Service
Persistence
Business Logic
API
UI Ext. Tools
…
Big Bang
Layerweise
Modulweise
Bottom Up
Top Down
© 2014 FNT GmbH
Neue Architektur
06.07.2017 13
Geht das
noch besser?
© 2014 FNT GmbH
Neue Architektur
Microservices
Abhängigkeitsgraph Context Map
Einzelne Fachlichkeiten (Domains) als „eigenständige Systeme“
Migrationsstrategie
Herauslösen von Domains
Bestandssystem als Legacy System
Schrittweise Ablösung des Bestandssystems durch neue Microservices
06.07.2017 14
© 2014 FNT GmbH
Neue Architektur
Zusammenfassung
DDD und Microservices
Passt perfekt zusammen
Domains sind fachlich motiviert
fachliche Trennung wird durch die Architektur gestützt
Microservice Architektur - Vorteile für FNT
Betrieb einzelner Domains möglich
Kurze Entwicklungszyklen und kleine Teams möglich
Durch Virtualisierung unabhängig betreibbar
Cloud Betrieb möglich
06.07.2017 15
© 2014 FNT GmbH
Architekturentwurf
Überblick – Backend
Microservices
Spring vs. Java EE
JMS Kommunikation
REST Schnittstelle
06.07.2017 16
© 2014 FNT GmbH
Architekturentwurf
Überblick – Frontend
HTML 5 Frontend
Single-Page-Application
Angular 2 und Type Script
Modular aufgebaut
Shared Code
06.07.2017 17
© 2014 FNT GmbH
Architekturentwurf
Überblick – Betrieb und Kommunikation
Tools für den Cloud-Betrieb
Service Discovery
Load Balancing
Circuit Breaker
API Gateway
Orchestrierung von
Domain Services
06.07.2017 18
© 2014 FNT GmbH
Architekturentwurf
Im Inneren des Microservice
06.07.2017 19
HT
TP
REST API
Domain
Model
© 2014 FNT GmbH
Architekturansatz
Abgleich der NFR – eingesetzte Techniken
Plattformunabhängigkeit
Datenbankabstraktion
Saubere Schnittstelle GUI Backend
Loose Kopplung, Erweiterbarkeit
Skalierbarkeit
06.07.2017 20
© 2014 FNT GmbH
Migrationsstrategie
Splitten der Datenbank
Bounded Context
Replikationen
Eventual Consistency
06.07.2017 21
© 2014 FNT GmbH
Migrationsstrategie
Splitten der Datenbank
Bounded Context
Replikationen
Eventual Consistency
06.07.2017 22
© 2014 FNT GmbH
Migrationsstrategie
Splitten der Datenbank
Bounded Context
Replikationen
Eventual Consistency
06.07.2017 23
123
123
TopicIdentische UUID
© 2014 FNT GmbH
Migrationsstrategie
Ablösung PL / SQL Code
Abzulösende Objekte
Packages
Trigger
Views
Vorarbeit: Prüfen und bewerten
Sind die Objekte noch erforderlich?
Gibt es Alternativen?
Entwerfen der Ablösungsstrategien
Integration spezialisierter Datenbanken
Anbindung zusätzlicher Systeme
06.07.2017 24
© 2014 FNT GmbH
Architekturentwurf
Proof-of-Concept
06.07.2017 25
• Abdeckung
Fachlichkeit
• NFRs
• Wertvoller Input
• Solide Basis
• Erprobung des
Architekturansatzes
• externer Input
• Green Field Approach
• Solution Patterns
• How-Tos
• Guidelines
• Wissenstransfer
© 2014 FNT GmbH
Herausforderungen
06.07.2017 26
Gemeinsamer Code Anderes Testkonzept
Context Map /
GovernanceDDD Experten
Aufbau der Developer
Workbench
Fokussierung auf die
Migration
© 2014 FNT GmbH
Testkonzept
Wesentlich höhere Anforderungen an Continuous Integration
Neue Abhängigkeiten zwischen den Microservices
06.07.2017 27
Push
JobUP DOWN UP DOWN
Component E2E
UPDATE
Save Infrastructure
© 2014 FNT GmbH
Herausforderungen
06.07.2017 28
Gemeinsamer Code Anderes Testing-Konzept
Context Map /
GovernanceDDD Experten
Aufbau der Developer
Workbench
Fokussierung auf die
Migration
© 2014 FNT GmbH
Ausblick
Offene Punkte
06.07.2017 29
BetriebsumgebungenMassendaten-
verarbeitung
Fachliche
Transaktionen
© 2014 FNT GmbH
Fazit
06.07.2017 30
Erfahrungen
Große organisatorische
Herausforderung
Viele kleine
Startschwierigkeiten
Externes Know-how wichtig,
aber mit Maß und Ziel
PoC Fachlichkeit
Komplexität der Build-Pipeline
Schwierigkeiten
Gewinn
Fachliche Trennung
Domain-Teams
Cloud-Ready-Ansatz
Gute Integrationsmöglichkeit
für weitere FNT Produkte
© 2014 FNT GmbH
06.07.2017 31
Noch Fragen?j
Wir stehen euch gerne Rede und Antwort!
Kommt an unserem Stand Nr. 18 vorbei,
erfahrt mehr über unser Projekt und FNT!