Continuous Software Engineering - Uni Kieleprints.uni-kiel.de/31415/1/2016-02-24SE-Keynote.pdf ·...
Transcript of Continuous Software Engineering - Uni Kieleprints.uni-kiel.de/31415/1/2016-02-24SE-Keynote.pdf ·...
Continuous Software Engineering
Keynote at Software Engineering 2016, Wien
Prof. Dr. Wilhelm (Willi) Hasselbringhttp://se.informatik.uni-kiel.de/
http://kosse-sh.de/
24.02.2016 W. Hasselbring 1
Agenda
1. Entwicklung des Gebietes Continuous Software Engineering
2. Kontinuierliche Modernisierung3. Kontinuierliche Qualitätssicherung4. Kontinuierliche Bereitstellung und Lieferung5. Welche Auswirkungen hat das auf die
Softwarearchitekturen?6. Was bedeutet das für das Software Engineering?
24.02.2016 W. Hasselbring 2
Kontinuierlich ein Thema
24.02.2016 W. Hasselbring 5
Springer-Verlag, 2014
“Software Center is an experiment to establish an effective, scalable, and long-term software engineering research collaboration between academia and industry.”
Jan Bosch, Preface
Siehe auch [Fitzgerald and Stol 2015]:“Continuous Software Engineering: A Roadmap and Agenda”
Agenda
1. Entwicklung des Gebietes Continuous Software Engineering
2. Kontinuierliche Modernisierung3. Kontinuierliche Qualitätssicherung4. Kontinuierliche Bereitstellung und Lieferung5. Welche Auswirkungen hat das auf die
Softwarearchitekturen?6. Was bedeutet das für das Software Engineering?
24.02.2016 W. Hasselbring 6
Agenda
1. Entwicklung des Gebietes Continuous Software Engineering
2. Kontinuierliche Modernisierung3. Kontinuierliche Qualitätssicherung4. Kontinuierliche Bereitstellung und Lieferung5. Welche Auswirkungen hat das auf die
Softwarearchitekturen?6. Was bedeutet das für das Software Engineering?
24.02.2016 W. Hasselbring 9
Continuous Improvement Process
Kontinuierliche Qualitätssteigerung und Kostensenkung
24.02.2016 W. Hasselbring 10
Bildquelle: Wikipedia
Continuous Integration
24.02.2016 W. Hasselbring 11
DevelopingSoftware
PerformingAutomated
Build
PerformingAutomated
Test
Publishing Reports
Kontinuierliche QualitätssicherungBeispiel: Regressions-Benchmarking
24.02.2016 W. Hasselbring 12
Integrated into Continuous Integration Setup[Waller et al. 2015]
Should include automated anomaly detection [Marwede et al. 2009, Ehlers et al. 2011]
https://build.se.informatik.uni-kiel.de/jenkins/job/kieker-nightly-release/plot/
Kontinuierliche Resilienz
24.02.2016 W. Hasselbring 13
Fehlerinjektion zur Prüfung der Fehlertoleranz:
Chaos Monkey - randomly shuts down virtual machines Latency Monkey - simulates a degradation of service Conformity Monkey - detects instances that aren’t coded to best-practices Security Monkey - searches out security weaknessesDoctor Monkey - performs health checks Janitor Monkey - searches for unused resources
Quelle: https://github.com/Netflix/SimianArmy
Kontinuierliche Softwarearchitektur Validation im Continuous Integration
24.02.2016 W. Hasselbring 14
Quelle: [Goldstein & Segall 2015]Siehe auch: [Frey et al. 2013, Fittkau et al. 2014b]
Präskriptive und deskriptive Modelle
• Für Continuous Integration ist es sinnvoll präskriptive und deskriptive (Architektur-) Modelle zu kombinieren– Präskriptive Modelle kommen aus der
Softwareentwicklung (Forward Engineering)– Deskriptive Modelle kommen aus der
Beobachtung der im Betrieb befindlichen Softwaredienste (Reverse Engineering)
24.02.2016 W. Hasselbring 15
Agenda
1. Entwicklung des Gebietes Continuous Software Engineering
2. Kontinuierliche Modernisierung3. Kontinuierliche Qualitätssicherung4. Kontinuierliche Bereitstellung und Lieferung5. Welche Auswirkungen hat das auf die
Softwarearchitekturen?6. Was bedeutet das für das Software Engineering?
24.02.2016 W. Hasselbring 16
Zusammenarbeit von Entwicklung und Betrieb
24.02.2016 W. Hasselbring 19
Maßnahmen:• Entwicklung einer Kultur der (agilen) Zusammenarbeit zwischen
Entwicklungsabteilung und Systembetrieb.• Qualitätssicherung und Effizienzsteigerung durch Automatisierung von
Entwicklungs- und Betriebsaufgaben.
Deployment Pipelines fürContinuous Deployment
24.02.2016 W. Hasselbring 21
Beispiel: Deployment Pipeline @ Otto.de. Quelle: [Breetzmann et al. 2014]
[Fittkau et al. 2013, 2015a]
Monitoring Frameworks
24.02.2016 W. Hasselbring
[van Hoorn et al. 2012]
23
Vortrag morgen 14:00 h, Sitzung“Empirical Software Engineering 3” zu [Fittkau et al. 2015d]
Software zum Anfassen und Erlebensolutions.hamburg, September 2015
24.02.2016 W. Hasselbring 24
Siehe auch [Fittkau et al. 2015b] Siehe auch [Fittkau et al. 2015c]
Agenda
1. Entwicklung des Gebietes Continuous Software Engineering
2. Kontinuierliche Modernisierung3. Kontinuierliche Qualitätssicherung4. Kontinuierliche Bereitstellung und Lieferung5. Welche Auswirkungen hat das auf die
Softwarearchitekturen?6. Was bedeutet das für das Software Engineering?
24.02.2016 W. Hasselbring 25
Neal Ford (ThoughtWorksInc.), 2010:
– “Architecture is the stuff that's hard to change later.
– And there should be as little of that stuff as possible.
– By deferring important architectural and design decisions until the last responsible moment, you can prevent unnecessary complexity from undermining your software projects.”
Agilität vs. Softwarearchitektur
24.02.2016 W. Hasselbring 26
vs.
[Reussner & Hasselbring 2008,Hasselbring 2005]
Renaissance & Innovation in Architecture
• “Organizations have accepted that "cloud" is the de-facto platform of the future, and the benefits and flexibility it brings have ushered in a renaissance in software architecture.
• The disposable infrastructure of cloud has enabled the first "cloud native" architecture, microservices.
• Continuous Delivery, a technique that is radically changing how tech-based businesses evolve, amplifies the impact of cloud as an architecture.
• We expect architectural innovation to continue, with trends such as containerization and software-defined networking providing even more technical options and capability.”
Quelle: http://www.thoughtworks.com/radar
24.02.2016 W. Hasselbring 27
DevOps & Softwarearchitektur
24.02.2016 W. Hasselbring 28
“The deployment pipeline is the place where the architecturalaspects and the process aspects of DevOps intersect.”
[Bas et al. 2015]
Microservice Architekturen als Enabler für DevOps
24.02.2016 W. Hasselbring 29
“Scalability is managed by each service individually and is included in its SLA in the form of a guaranteed response time given a particular load.”
[Bas et al. 2015, Chapter 4]
“The trade-off between many small components and a few large components must be considered in component and system design.”
[Hasselbring 2002]
[Steinacker 2014][Bas et al. 2015] [Kraus et al. 2013]
Back
offic
e
Shop
page
s
Sear
ch &
Nav
igat
ion
Prod
uct
Prom
otio
n
Ord
er
Use
r
Afte
rSal
es
Auth
Insi
ghts
Link
Han
dler
Trac
king
Page Assembly Proxy
Backend Integration Proxy
Dimensionen der Skalierung
24.02.2016 W. Hasselbring 30
z.B.
dur
ch M
icro
serv
ices
z.B. durch Datenbank-Replikation
Duplikation
Aufte
ilung
der
Fun
ktio
nen
Polyglot Persistence
24.02.2016 W. Hasselbring
Page Assembly
Backend Integration
Prod
uct
Trac
king
Reco
mm
en-
datio
n
Ord
er
Sear
ch
Wide Column
Database
Full-TextDatabase
GraphDatabase
RelationalDatabase
Time Series
Database
31
Wiederverwendung von Middleware
24.02.2016 W. Hasselbring 33
Beispiel:https://github.com/otto-de/
Component A
Component BOpen Source Middleware
Agenda
1. Entwicklung des Gebietes Continuous Software Engineering
2. Kontinuierliche Modernisierung3. Kontinuierliche Qualitätssicherung4. Kontinuierliche Bereitstellung und Lieferung5. Welche Auswirkungen hat das auf die
Softwarearchitekturen?6. Was bedeutet das für das Software Engineering?
24.02.2016 W. Hasselbring 34
Continuous Quality of Software Knowledge ?
• “The engineering of Software Infrastructure depends on the existence of knowledge.”
[Weber 2002]• DFG Schwerpunktprogramm 1593:
Design for Future - Managed Software Evolution– Knowledge Carrying Software
• Continuous Software Engineering Continuous Quality of Software Knowledge
24.02.2016 W. Hasselbring 35
Potentieller Themenbereich für einen neuen SPP?
24.02.2016 W. Hasselbring 36
• Möglichst viel automatisiert messen• Dies kontinuierlich überwachen
(Monitoring, Darstellung in Dashboards)
Predigt
• Instrumentierung zum Monitoring sollteschon initial in die Software integriert werden, statt dies erst nach Problemen im Betrieb zu tun:
• So können die Anforderungen des Betriebs hinsichtlich Application-Performance-Management und Fehlerdiagnose direkt berücksichtigt werden
• Performance-Abweichungen werden unmittelbar erkannt, bevor sie über die Deployment-Pipeline in den Betrieb propagiert werden
Veranstaltungshinweise• Keynote “Microservices for Scalability” at ICPE 2016,
Delft (NL), March 15, 2016• , April 12-13, 2016
Microservice Architectures and Continuous Deliveryhttp://www.softwareforen.de/goto/sar
• DevOpsDays Kiel, May 12-13, 2016 http://www.devopsdays.org/events/2016-kiel/
• KoSSE-Tag zu DevOps, June 1, 2016http://kosse-sh.de/
• Symposium on Software Performance November 08–09, 2016 in Kiel(Descartes/Kieker/Palladio Days 2016)http://www.performance-symposium.org/
24.02.2016 W. Hasselbring 37
http://eprints.uni-kiel.de/31415
References[Bas et al. 2015] Len Bass, Ingo Weber, Liming Zhu: “DevOps: A Software Architect’s Perspective”, Addison-Wesley 2015.[Breetzmann et al. 2014] Robert Breetzmann, Stephan Kraus, Christian Stamm: “Null Toleranz für Fehler: Wie wir auf otto.de die Qualität hoch halten“, OBJEKTspektrum 4/2014, 18-23.[Ehlers et al. 2011] Jens Ehlers, André van Hoorn, Jan Waller, Wilhelm Hasselbring: “Self-Adaptive Software System Monitoring for Performance Anomaly Localization“, In: 8th IEEE/ACM
International Conference on Autonomic Computing (ICAC 2011).[Fi ttkau et al. 2013] Florian Fittkau, Jan Waller, Christian Wulf, Wilhelm Hasselbring: “Live Trace Visualization for Comprehending Large Software Landscapes: The ExplorViz Approach“, In:
1st IEEE International Working Conference on Software Visualization (VISSOFT 2013).[Fi ttkau et al. 2014a] Florian Fittkau, André van Hoorn, Wilhelm Hasselbring: “Towards a Dependability Control Center for Large Software Landscapes“, In: 10th European Dependable
Computing Conference (EDCC 2014).[Fi ttkau et al. 2014b] Florian Fittkau, Phil Stelzer, Wilhelm Hasselbring: “Live Visualization of Large Software Landscapes for Ensuring Architecture Conformance“, In: 2nd International
Workshop on Software Engineering for Systems-of-Systems 2014 (SESoS 2014).[Fi ttkau et al. 2015a] Florian Fittkau, Sascha Roth, Wilhelm Hasselbring: “ExplorViz: Visual Runtime Behavior Analysis of Enterprise Application Landscapes“, In: 23rd European Conference
on Information Systems (ECIS 2015).[Fi ttkau et al. 2015b] Florian Fittkau, Erik Koppenhagen, Wilhelm Hasselbring: “Research Perspective on Supporting Software Engineering via Physical 3D Models”. In: 3rd IEEE Working
Conference on Software Visualization (VISSOFT 2015). [Fi ttkau et al. 2015c] Florian Fittkau, Alexander Krause, Wilhelm Hasselbring: “Exploring Software Ci ties in Vi rtual Reality”. In: 3rd IEEE Working Conference on Software Visualization
(VISSOFT 2015). [Fi ttkau et al. 2015d] Florian Fittkau, Alexander Krause, Wilhelm Hasselbring: “Hierarchical software landscape visualization for system comprehension: A controlled experiment”. In: 3rd
IEEE Working Conference on Software Visualization (VISSOFT 2015). [Fi tzgerald and Stol 2015] Brian Fitzgerald, Klaas-Jan Stol: “Continuous Software Engineering: A Roadmap and Agenda”, In: Journal of Systems and Software, July 2015.[Frey et a l . 2013] Sören Frey, Wi lhelm Hasselbring, Benjamin Schnoor: “Automatic Conformance Checking for Migrating Software Systems to Cloud Infrastructures and Platforms”, In:
Journal of Software: Evolution and Process, 25(10): 1089-1115.[Goldstein & Segall2015] Maayan Goldstein, Itai Segall: “Automatic and Continuous Software Architecture Validation”, In: 37th International Conference on Software Engineering (ICSE
2015) Software Engineering In Practice Track.[Hasselbring 2002] Wi lhelm Hasselbring: “Component-Based Software Engineering”, In: Handbook of Software Engineering and Knowledge Engineering. World Scientific Publishing,
Singapore, pp. 289-305, 2002. [Heinrich et al. 2014] Robert Heinrich, Eric Schmieders, Reiner Jung, Kiana Rostami, Andreas Metzger, Wilhelm Hasselbring, Ralf Reussner, Klaus Pohl: “Integrating Run-Time Observations
and Design Component Models for Cloud System Analysis“, In: 9th Workshop on [email protected] 2014.[Kraus et al. 2013] Stephan Kraus, Guido Steinacker, Oliver Wegner: “Teile und Herrsche – Kleine Systeme für große Architekturen“, OBJEKTspektrum 5/2013, 8-13.[Steinacker 2014] Guido Steinacker: “Scaling with Microservices and Vertical Decomposition”, http://dev.otto.de/2014/07/29/scaling-with-microservices-and-vertical-decomposition/, 2014.[van Hoorn et al. 2011] André van Hoorn, Sören Frey, Wolfgang Goerigk, Wilhelm Hasselbring, Holger Knoche, Sönke Köster, Harald Krause, Marcus Porembski, Thomas Stahl, Markus
Steinkamp, Norman Wittmüss: “DynaMod Project: Dynamic Analysis for Model-Driven Software Modernization”. In: 1s t International Workshop on Model-Driven Software Migration (MDSM 2011).
[van Hoorn et al. 2012] André van Hoorn, Jan Waller, Wilhelm Hasselbring: “Kieker: A Framework for Application Performance Monitoring and Dynamic Software Analysis”, In: 3rd joint ACM/SPEC International Conference on Performance Engineering (ICPE 2012).
[van Hoorn et al. 2014] André van Hoorn, Christian Vögele, Eike Schulz, Wilhelm Hasselbring, Helmut Krcmar: “Automatic Extraction of Probabilistic Workload Specifications for Load Testing Session-Based Application Systems” In: 8th International Conference on Performance Eva luation Methodologies and Tools (ValueTools 2014),
[Wal ler et a l. 2015] Jan Waller, Nils Ehmke, Wilhelm Hasselbring: “Including Performance Benchmarks into Continuous Integration to Enable DevOps“, In: ACM SIGSOFT Software Engineering Notes, 40(2).
[Weber 1999] Herbert Weber: “Continuous Engineering of Information and Communication Infrastructures”, Second International Conference on Fundamental Approaches to Software Engineering (FASE 1999).
[Weber 2002] Herbert Weber: “Continuous Software Engineering”, Fraunhofer ISST, 2002.