38
Continuous Software Engineering Keynote at Software Engineering 2016, Wien Prof. Dr. Wilhelm (Willi) Hasselbring http://se.informatik.uni-kiel.de/ http://kosse-sh.de/ 24.02.2016 W. Hasselbring 1

Continuous Software Engineering - Uni Kieleprints.uni-kiel.de/31415/1/2016-02-24SE-Keynote.pdf · [Heinrich et al. 2014] Robert Heinrich, Eric Schmieders , Reiner Jung, Kiana Rostami

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

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

Continuous Software Engineering ist schon lange ein Thema

[Weber 1999]

24.02.2016 W. Hasselbring 3

Continuous Software Engineering:The Driving Forces

[Weber 1999]

24.02.2016 W. Hasselbring 4

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

Continuous Software Engineering:Life Cycle

[Weber 2002]

24.02.2016 W. Hasselbring 7

Von der dynamischen Analyse zum Modell-basierten Testen

[van Hoorn et al. 2011, 2014]

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

Continuous Software Engineering:Objects of Interest

[Weber 2002]

24.02.2016 W. Hasselbring 17

24.02.2016 W. Hasselbring 18

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.

24.02.2016 W. Hasselbring 20

Deployment Pipelines fürContinuous Deployment

24.02.2016 W. Hasselbring 21

Beispiel: Deployment Pipeline @ Otto.de. Quelle: [Breetzmann et al. 2014]

Kontinuierliches Monitoring

24.02.2016 W. Hasselbring 22

[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 Komponenten

Quelle: [Weber 2002]

24.02.2016 W. Hasselbring 32

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.