Applikationsmodernisierung: Der Weg von Legacy in die Cloud

Aarno Aukia
Aarno AukiaCTO & Partner at VSHN AG um VSHN AG
Puzzle Engineering
Deine Partner für innovative
Lösungen von A-Z
Willkommen
Andres Koch
CEO,
Object Engineering
Andreas Gurtner
Head of Software
Development Mobility and
Transportation, Puzzle ITC
Aarno Aukia
CTO,
VSHN - The DevOps
Company
Applikations modernisierung: Der Weg von Legacy in
die Cloud
Ist deine Applikation ready für die Zukunft?
Modularisierung, Modernisierung & Containerisierung einer Applikation
● Support & juristische Sicherheit: Tech-Stack und End-of-Life Drittbibliotheken aktualisieren
● Security
● Skalierbarkeit
● Entwicklungs- und Deployment-Prozesse vereinfachen
● Höhere Qualität & schnellere Entwicklungsgeschwindigkeit
○ Einfachere Handhabung beim Entwickeln & Testen (Umgebung lokal aufsetzbar,
Integrationstests während Build)
○ Einfacher zu Warten, da weniger Abhängigkeiten
● Schnellere Software-Lieferzyklen (Time to Market)
● Infrastruktur Unabhängigkeit
● Im eigenen RZ, in der Cloud, oder mit einer hybrid Lösung
Ziel: «Bestehende Applikation fit für die Zukunft machen, um diese weitere
Jahre sicher und geschützt betreiben zu können»
Wie entstehen
Legacy-Applikationen?
● Software „zerfällt“ nicht, sie wird praktisch unanpassbar
● Plattformen und Technologien sind laufend Veränderungen unterworfen
● Integration und Flexibilität für Digitalisierung wird behindert
● Schnelle Reaktion auf Marktanforderungen werden verunmöglicht
● Fluktuation/ Pensionierung Personal: Know-How “versickert”
● Betriebskosten steigen schleichend, aber stetig
● Grösstes Risiko oft bei Applikationen, die problemlos laufen
Refactoring / Re-Engineering?
SW-Paket
Entwicklung
Betrieb
Anpassungen
Betriebskosten
● Über die Jahre entsteht eine grosse und komplexe Code-Basis
● Wechselnde Entwicklerteams und -Kulturen
● Risiko von überraschendem Totalausfall steigt
● Kosten steigen ins Unermessliche ohne Marktvorteil
“Motto”: «Alles gut – keiner weiss Bescheid!»
Typischer Life-Cycle einer Software-Applikation
● Wissen, was man hat
● Wissen, was man will
wissen, was man nicht mehr will
● Wertvolles erhalten – Unbrauchbares ersetzen!
● Wissen, wie man es tun kann
Legacy-Engineering
Bereite Deine Applikation für die
Zukunft vor!
Teilautomatisiertes Vorgehen: Pfad - Finder
Datenquellen
finden
Parsen & Filtern
Metadaten
speichern
Exponenten befragen
Daten sichten,
ergänzen
Knowledge-Base für
Architektur/Design
des Neuen
verwenden,
Migrationsplan
erstellen
Neue Artefakte
automatisiert erstellen
und damit Zeit und
Geld sparen
System visualisieren
● Analyse des Bestehenden (Systemlandschaft oder Applikationen)
● Anforderungen an die modernisierte Umgebung
● Erfahrungen nutzen
● Ziel-Architektur definieren (Modularisierung, Deployment)
● Phasenplan aufstellen
● Effiziente Realisierung durch Automatisieren
Fazit: «Es gibt immer einen vernünftigen, gangbaren Weg
und gute Planung zahlt sich aus!»
… aber wie finde ich den Weg?
Modernisierung der Applikation
Methodik/ Vorgehen
● Iteratives-Vorgehen/ Agile Implementation nach Scrum
○ Aufteilung in Sprints & nach jedem Sprint eine lauffähige Version der
Applikation
● Inhalte der Sprints sind grundsätzlich pro Applikation individuell je nach
Ausgangslage, Anforderungen und gewählter Ziel-Architektur
● Neben den technischen Aspekten, gibt es diverse andere Faktoren, wie z. B.
Budget, Zeitdruck, Abhängigkeiten, Verpflichtungen, regulatorische Anforderungen
etc. zu berücksichtigen
Modernisierung der Applikation
Mögliche Schritte bei der Umsetzung einer Modernisierung
Mögliche Schritte:
● Tech-Stack erneuern
● Monolith ‹containerisieren›
● Applikation nach fachlichen Kriterien auftrennen
○ Modularisierte Komponenten ‹containerisieren›
○ Skalierbarkeit ermöglichen
○ Entwicklungs- und Deployment-Prozesse vereinfachen
● Support, Wartung & Weiterentwicklung der Lösung
Begleitung durch interdisziplinäre Teams (Architekten, SW-Engineers, Scrum Master,
UX, PL) während des gesamten Prozesses
Quelle: bls.ch
Beispiel
Modernisierung der Applikation
Mögliche Schritte bei der Umsetzung einer Modernisierung
>80% der fachlichen Anforderungen gleich, Code Qualität & Archtektur der
Applikation gut. Neubau wäre teurer und nicht nötig:
● Tech-Stack erneuern
● Monolith ‹containerisieren›
● Applikation nach fachlichen Kriterien auftrennen
○ Modularisierte Komponenten ‹containerisieren›
■ neues Frontend API & neue Single Page App
○ Skalierbarkeit ermöglichen
○ Entwicklungs- und Deployment-Prozesse vereinfachen
● Support, Wartung & Weiterentwicklung der Lösung
Begleitung durch interdisziplinäre Teams (Architekten, SW-Engineers, Scrum Master,
UX, PL) während des gesamten Prozesses
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Betrieb = Feuerwehr as a Service?
Wie kommen wir zum proaktiven Betrieb?
Stand des
Applikations-
Betriebs 2014
Wie kommen wir
auf diese Stufe?
DevOps = Kollaboration + Tools + Prozesse
VSHN - The DevOps Company
● “Full Stack Audit”
● Prüfung von Design & Applikation
● Analyse jeder manuellen Komponente
○ Physikalische Hardware
○ Handgefertigte Server
○ Manueller Applikationsbetrieb
● Überprüfung jeder Komponente
● Überprüfung jeder Komponente in jedem
Folgejahr...
Traditionelle IT governance
VSHN - The DevOps Company
● Standardisierte Komponenten
○ bereits auditiert, extern zertifiziert
○ wiederverwendet, Skaleneffekte,
CMMI Level 5
○ technische Kontrollmechanismen
(AAI, RBAC, logs/SIEM) einmal
implementiert
○ finanzielle Kontrollmechanismen
einmal implementiert
● Infrastruktur: private oder public cloud
● Ops: Container orchestration platform
● Periodische überprüfung der Applikation
& Plattform Konfiguration
Cloud-native IT governance
24x7 Betrieb
● Wartung
○ Stetige Weiterentwicklung, Verbesserung und Aktualisierung der
generischen Plattform und Infrastruktur
○ Tools zur Detektion und Aktualisierung der
Applikations-Komponenten
● Support
○ 24x7 Störfallmanagement für Applikation, Plattform und
Infrastruktur
● Betriebsprozesse (Cloud oder On Prem)
○ Überwachung, Sicherung, Datenbanken, Kapazitätsmanagement
Fazit
● Anforderungen schärfen & Machbarkeit überprüfen
● Mögliche Architektur unter Berücksichtigung der
funktionalen- und nicht-funktionalen Anforderungen
Entwerfen (iterativ)
● Umsetzung gemäss der gewählten Architektur
● Betrieb, Support & Weiterentwicklung sicherstellen
Puzzle Engineering
Wir begleiten dich gerne auf
Deiner Reise
1 von 22

Más contenido relacionado

Similar a Applikationsmodernisierung: Der Weg von Legacy in die Cloud(20)

Continuous Delivery as a Way of LifeContinuous Delivery as a Way of Life
Continuous Delivery as a Way of Life
Kremer Consulting135 views
Xidra 2016 DevOpsXidra 2016 DevOps
Xidra 2016 DevOps
Eduard van den Bongard233 views
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht's
camunda services GmbH998 views
Enterprise APEXEnterprise APEX
Enterprise APEX
Oliver Lemm622 views
Lean development 04Lean development 04
Lean development 04
SuperB2541 views
Zinit.leistungen.webentwicklung.v1.0.deZinit.leistungen.webentwicklung.v1.0.de
Zinit.leistungen.webentwicklung.v1.0.de
Zinit Solutions468 views
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der Praxis
Michael Mirold74 views

Más de Aarno Aukia(20)

DevSecOps - Security in DevOpsDevSecOps - Security in DevOps
DevSecOps - Security in DevOps
Aarno Aukia146 views
Kubecon 2019 RecapKubecon 2019 Recap
Kubecon 2019 Recap
Aarno Aukia260 views
Moving Applications to the cloudMoving Applications to the cloud
Moving Applications to the cloud
Aarno Aukia724 views
IPv6 on Container PlattformsIPv6 on Container Plattforms
IPv6 on Container Plattforms
Aarno Aukia141 views

Applikationsmodernisierung: Der Weg von Legacy in die Cloud

  • 1. Puzzle Engineering Deine Partner für innovative Lösungen von A-Z
  • 2. Willkommen Andres Koch CEO, Object Engineering Andreas Gurtner Head of Software Development Mobility and Transportation, Puzzle ITC Aarno Aukia CTO, VSHN - The DevOps Company
  • 3. Applikations modernisierung: Der Weg von Legacy in die Cloud
  • 4. Ist deine Applikation ready für die Zukunft? Modularisierung, Modernisierung & Containerisierung einer Applikation ● Support & juristische Sicherheit: Tech-Stack und End-of-Life Drittbibliotheken aktualisieren ● Security ● Skalierbarkeit ● Entwicklungs- und Deployment-Prozesse vereinfachen ● Höhere Qualität & schnellere Entwicklungsgeschwindigkeit ○ Einfachere Handhabung beim Entwickeln & Testen (Umgebung lokal aufsetzbar, Integrationstests während Build) ○ Einfacher zu Warten, da weniger Abhängigkeiten ● Schnellere Software-Lieferzyklen (Time to Market) ● Infrastruktur Unabhängigkeit ● Im eigenen RZ, in der Cloud, oder mit einer hybrid Lösung Ziel: «Bestehende Applikation fit für die Zukunft machen, um diese weitere Jahre sicher und geschützt betreiben zu können»
  • 5. Wie entstehen Legacy-Applikationen? ● Software „zerfällt“ nicht, sie wird praktisch unanpassbar ● Plattformen und Technologien sind laufend Veränderungen unterworfen ● Integration und Flexibilität für Digitalisierung wird behindert ● Schnelle Reaktion auf Marktanforderungen werden verunmöglicht ● Fluktuation/ Pensionierung Personal: Know-How “versickert” ● Betriebskosten steigen schleichend, aber stetig ● Grösstes Risiko oft bei Applikationen, die problemlos laufen
  • 6. Refactoring / Re-Engineering? SW-Paket Entwicklung Betrieb Anpassungen Betriebskosten ● Über die Jahre entsteht eine grosse und komplexe Code-Basis ● Wechselnde Entwicklerteams und -Kulturen ● Risiko von überraschendem Totalausfall steigt ● Kosten steigen ins Unermessliche ohne Marktvorteil “Motto”: «Alles gut – keiner weiss Bescheid!» Typischer Life-Cycle einer Software-Applikation
  • 7. ● Wissen, was man hat ● Wissen, was man will wissen, was man nicht mehr will ● Wertvolles erhalten – Unbrauchbares ersetzen! ● Wissen, wie man es tun kann Legacy-Engineering Bereite Deine Applikation für die Zukunft vor!
  • 8. Teilautomatisiertes Vorgehen: Pfad - Finder Datenquellen finden Parsen & Filtern Metadaten speichern Exponenten befragen Daten sichten, ergänzen Knowledge-Base für Architektur/Design des Neuen verwenden, Migrationsplan erstellen Neue Artefakte automatisiert erstellen und damit Zeit und Geld sparen System visualisieren
  • 9. ● Analyse des Bestehenden (Systemlandschaft oder Applikationen) ● Anforderungen an die modernisierte Umgebung ● Erfahrungen nutzen ● Ziel-Architektur definieren (Modularisierung, Deployment) ● Phasenplan aufstellen ● Effiziente Realisierung durch Automatisieren Fazit: «Es gibt immer einen vernünftigen, gangbaren Weg und gute Planung zahlt sich aus!» … aber wie finde ich den Weg?
  • 10. Modernisierung der Applikation Methodik/ Vorgehen ● Iteratives-Vorgehen/ Agile Implementation nach Scrum ○ Aufteilung in Sprints & nach jedem Sprint eine lauffähige Version der Applikation ● Inhalte der Sprints sind grundsätzlich pro Applikation individuell je nach Ausgangslage, Anforderungen und gewählter Ziel-Architektur ● Neben den technischen Aspekten, gibt es diverse andere Faktoren, wie z. B. Budget, Zeitdruck, Abhängigkeiten, Verpflichtungen, regulatorische Anforderungen etc. zu berücksichtigen
  • 11. Modernisierung der Applikation Mögliche Schritte bei der Umsetzung einer Modernisierung Mögliche Schritte: ● Tech-Stack erneuern ● Monolith ‹containerisieren› ● Applikation nach fachlichen Kriterien auftrennen ○ Modularisierte Komponenten ‹containerisieren› ○ Skalierbarkeit ermöglichen ○ Entwicklungs- und Deployment-Prozesse vereinfachen ● Support, Wartung & Weiterentwicklung der Lösung Begleitung durch interdisziplinäre Teams (Architekten, SW-Engineers, Scrum Master, UX, PL) während des gesamten Prozesses
  • 13. Modernisierung der Applikation Mögliche Schritte bei der Umsetzung einer Modernisierung >80% der fachlichen Anforderungen gleich, Code Qualität & Archtektur der Applikation gut. Neubau wäre teurer und nicht nötig: ● Tech-Stack erneuern ● Monolith ‹containerisieren› ● Applikation nach fachlichen Kriterien auftrennen ○ Modularisierte Komponenten ‹containerisieren› ■ neues Frontend API & neue Single Page App ○ Skalierbarkeit ermöglichen ○ Entwicklungs- und Deployment-Prozesse vereinfachen ● Support, Wartung & Weiterentwicklung der Lösung Begleitung durch interdisziplinäre Teams (Architekten, SW-Engineers, Scrum Master, UX, PL) während des gesamten Prozesses
  • 15. Betrieb = Feuerwehr as a Service?
  • 16. Wie kommen wir zum proaktiven Betrieb? Stand des Applikations- Betriebs 2014 Wie kommen wir auf diese Stufe?
  • 17. DevOps = Kollaboration + Tools + Prozesse
  • 18. VSHN - The DevOps Company ● “Full Stack Audit” ● Prüfung von Design & Applikation ● Analyse jeder manuellen Komponente ○ Physikalische Hardware ○ Handgefertigte Server ○ Manueller Applikationsbetrieb ● Überprüfung jeder Komponente ● Überprüfung jeder Komponente in jedem Folgejahr... Traditionelle IT governance
  • 19. VSHN - The DevOps Company ● Standardisierte Komponenten ○ bereits auditiert, extern zertifiziert ○ wiederverwendet, Skaleneffekte, CMMI Level 5 ○ technische Kontrollmechanismen (AAI, RBAC, logs/SIEM) einmal implementiert ○ finanzielle Kontrollmechanismen einmal implementiert ● Infrastruktur: private oder public cloud ● Ops: Container orchestration platform ● Periodische überprüfung der Applikation & Plattform Konfiguration Cloud-native IT governance
  • 20. 24x7 Betrieb ● Wartung ○ Stetige Weiterentwicklung, Verbesserung und Aktualisierung der generischen Plattform und Infrastruktur ○ Tools zur Detektion und Aktualisierung der Applikations-Komponenten ● Support ○ 24x7 Störfallmanagement für Applikation, Plattform und Infrastruktur ● Betriebsprozesse (Cloud oder On Prem) ○ Überwachung, Sicherung, Datenbanken, Kapazitätsmanagement
  • 21. Fazit ● Anforderungen schärfen & Machbarkeit überprüfen ● Mögliche Architektur unter Berücksichtigung der funktionalen- und nicht-funktionalen Anforderungen Entwerfen (iterativ) ● Umsetzung gemäss der gewählten Architektur ● Betrieb, Support & Weiterentwicklung sicherstellen
  • 22. Puzzle Engineering Wir begleiten dich gerne auf Deiner Reise