Web Software Evolution and Change Management on ... - Moodle

71
Web Software Evolution and Change Management on the Cloud LOG 8430 Marios Fokaefs

Transcript of Web Software Evolution and Change Management on ... - Moodle

Page 1: Web Software Evolution and Change Management on ... - Moodle

Web Software Evolution and Change Management on the

CloudLOG 8430

Marios Fokaefs

Page 2: Web Software Evolution and Change Management on ... - Moodle

Software LifecycleDesign

Development

Delivery

Maintenance

22019-10-07 ©Marios Fokaefs - LOG8430

Page 3: Web Software Evolution and Change Management on ... - Moodle

Changes, changes, changes…

Internally MotivatedDesign

Development

Delivery

Maintenance

Improve Design

ImprovePerformance

Fix Bugs

Externally Stimulated

New Features

Increased Demand

Competition

32019-10-07 ©Marios Fokaefs - LOG8430

Page 4: Web Software Evolution and Change Management on ... - Moodle

Web Software EcosystemSoftware provider

Competitors

Clients

Resource providers

Migration/ Switching costsNew prices

Price/costs friction

Functionality/ quality friction

VM costsData transfer/ storageService costs Evolution costs

Development effortResource costs

Adaptation costsNew pricesBackwards incompatibility

New pricesNew clientsImproved performance

New featuresImproved performance

42019-10-07 ©Marios Fokaefs - LOG8430

Page 5: Web Software Evolution and Change Management on ... - Moodle

How do we make decisions on software change?• Software change is not simply a technical problem.• RQ1: How do we capture and take into account the different interests of

various stakeholders?• It’s a social problem.

• RQ2: How do we consider the independent motives of our business partners and competitors?• It’s a business problem.

• RQ3: How do we extract the financial transactions between business entities from their technical interactions during change?• It’s an economic problem.

• Thesis: Software change is a socio-technical problem with business and economic extensions.

52019-10-07 ©Marios Fokaefs - LOG8430

Page 6: Web Software Evolution and Change Management on ... - Moodle

Web Service EvolutionA Game-Theoretic and Economic Approach

62019-10-07 ©Marios Fokaefs - LOG8430

Page 7: Web Software Evolution and Change Management on ... - Moodle

Service-Oriented Architectures

7

provider(web service)

client(consuming application)

We need to change our service to offer more

features.

2019-10-07 ©Marios Fokaefs - LOG8430Fokaefs, M., Mikhaiel, R., Tsantalis, N., Stroulia, E., Lau, A., 2011. An Empirical Study on Web Service Evolution. In: IEEE International Conference on Web Services (ICWS 2011). ICWS '11. Washington, DC, USA, pp. 49-56.

Page 8: Web Software Evolution and Change Management on ... - Moodle

The Research Problem

• Technical (RP1)• Tools for supporting client adaptation to new service versions

• for the two prevalent service platforms, WS* (RP1a) and REST (RP1b)

• Economic Decision Making (RP2)• Tools to guide

• clients on whether to adapt or migrate

• providers on whether to change and whether to support their clients

82019-10-07 ©Marios Fokaefs - LOG8430

Page 9: Web Software Evolution and Change Management on ... - Moodle

Background

• Technical• Support for service evolution/migration and business process adaptation on the provider side

(Benatallah et al. 2005, Kaminski, Litoiu and Muller 2006, Andrikopoulos and Papazoglou 2008, Ponnekanti and Fox 2004, Ryu and Benatallah 2008, Elio and Stroulia 2009)

• Impact analysis (Wang and Capretz 2009)

• Lack of (tool) support for service clients (Chow and Notkin 1996, Xing and Stroulia 2005a)

• Economic Decision Making• Cost/Value driven decisions

(Boehm and Sullivan 2000, Ozkaya, Kazman and Klein 2007, Tansey 2008)

• Decisions constrained within a single system

• No consideration for externalities and indirect impact (Barros and Dumas 2006, Caswell and Nikolaou 2008, Choi 1991, Coase 1960, McGuire and Staelin 2008, Nagurney 2006)

92019-10-07 ©Marios Fokaefs - LOG8430

Page 10: Web Software Evolution and Change Management on ... - Moodle

Thesis

• Service system evolution can and should be, not only technically, but also economically conscious through support from CASE tools.

• WSDarwin attempts to support and prove this statement.

102019-10-07 ©Marios Fokaefs - LOG8430

Page 11: Web Software Evolution and Change Management on ... - Moodle

the contribution

The WSDarwin Framework

WS-*

• Compare WSDL service interfaces

• Adapt Java clients

• Test Java clients

REST

• Generate WADL service interfaces

• Compare (cross-vendor) service-interface versions

Economics

• Economic model

• Game-theoretic model

• Decision-support system

11

RP1a

RP1b

RP2

2019-10-07 ©Marios Fokaefs - LOG8430

Page 12: Web Software Evolution and Change Management on ... - Moodle

WSDarwin for WS-* services

• Structured and machine-readable service interface specifications (WSDL)→We can compare the specifications to infer additional information about evolution or similarity between services/version of services.→We can auto-generate client proxies from the specification on any language.

• WSDL is verbose.→We need a more abstract specification for more efficient tools.

12

RP1a

2019-10-07 ©Marios Fokaefs - LOG8430

Page 13: Web Software Evolution and Change Management on ... - Moodle

WSDarwin for WS-* services

13

Compare Interfaces

Service Interface Delta

IdentifyRefactorings

Translate into

WSMeta

Service Interface v1Service Interface v2

Test

Undo

Adapt Client Proxy

Service client proxy v1Service client proxy v2

RP1a

2019-10-07 ©Marios Fokaefs - LOG8430

Page 14: Web Software Evolution and Change Management on ... - Moodle

Service Interface Comparison

<O>Add

<CT>Input

<CT>Output

<PT>operand2:int

<PT>operand1:int

<PT>result:int

<O>Add

<CT>Input

<CT>Sum

<PT>operand2:int

<PT>operand1:int

<PT>result:int

<PT>writeToDB:boolean

AddDelta

MatchDelta

MatchDelta

MatchDelta

ChangeDelta

ChangeDeltaChangeDelta

14

Fokaefs, M., Stroulia, E., 2014b. WSDarwin: Studying the Evolution of Web Service Systems.Advanced Web Services. Springer, Ch. 9, pp. 199-223.

RP1a

2019-10-07 ©Marios Fokaefs - LOG8430

Page 15: Web Software Evolution and Change Management on ... - Moodle

WSDarwin for WS-* services

15

Compare Interfaces

Service Interface Delta

IdentifyRefactorings

Translate into

WSMeta

Service Interface v1Service Interface v2

Test

Undo

Adapt Client Proxy

Service client proxy v1Service client proxy v2

RP1a

2019-10-07 ©Marios Fokaefs - LOG8430

Page 16: Web Software Evolution and Change Management on ... - Moodle

Service Client Adaptation

16

WSDarwin

ClientClient Stub

V1

Client StubV2

ServiceV1

ServiceV2

The client invokes the old stub

The old stub is transformed to invoke the new stub

The changeis transparentto the client.

Fokaefs, M., Stroulia, E., 2012. WSDarwin: automatic web service client adaptation. In:Conference of Center for Advanced Studies (CASCON 2012). pp. 176-191.

RP1a

2019-10-07 ©Marios Fokaefs - LOG8430

Page 17: Web Software Evolution and Change Management on ... - Moodle

WSDarwin for WS-* services

17

Compare Interfaces

Service Interface Delta

IdentifyRefactorings

Translate into

WSMeta

Service Interface v1Service Interface v2

Test

Undo

Adapt Client Proxy

Service client proxy v1Service client proxy v2

comparison

adaptation

RP1a

2019-10-07 ©Marios Fokaefs - LOG8430

Page 18: Web Software Evolution and Change Management on ... - Moodle

WSMeta: A Service Interface meta-model

18

WSDL

SchemaTypes

Messages

OperationsInputOutput

WADL

SchemaTypes

Resources

MethodsRequestResponse

WSMeta

OperationsInput

Output

Type

Type

• WSDL/WSMeta→Operation-centric services

• WADL→ Data-centric services

Replacing references with containment results in larger files but faster reference resolution.

WSMeta mimics the structure of the Java client proxies produced by Apache Axis2, which facilitates the adaptation process.

Fokaefs, M., Stroulia, E., 2013b. WSMeta: a meta-model for web services to compareservice interfaces. In: Panhellenic Conference on Informatics (PCI 2013). ACM, pp. 1-8.

RP1a

2019-10-07 ©Marios Fokaefs - LOG8430

Page 19: Web Software Evolution and Change Management on ... - Moodle

WSDarwin for WS-* services -Overview• WS-* services always come with a WSDL interface specification,

representing the information necessary for service invocation.

• Auto-generated native source code follows the structure of the interface.

• WSDarwin uses the WSDL specification and generated proxy to infer more information about the evolution of a service and adapt clients to the new version.

• Comparison: 10x faster than generic methods for large interfaces (2.5K elements) (AWS handbook)

• Parsing+Comparison+Adaptation in under 10 minutes. (ICWS2014)

19

RP1a

Fokaefs, M., Stroulia, E., June 2014a. The WSDarwin Toolkit for Service-Client Evolution.In: IEEE International Conference on Web Services, Work In Progress (ICWS 2014 WIP).IEEE, Anchorage, Alaska, USA, pp. 716-719.

Pro

ble

mSo

luti

on

Eval

uat

ion

2019-10-07 ©Marios Fokaefs - LOG8430

Page 20: Web Software Evolution and Change Management on ... - Moodle

WSDarwin for REST services

20

1. Service Interface v1

2. Service Interface v2

REST Services do not come with structured

machine-readable interface specifications.

RP1b

2019-10-07 ©Marios Fokaefs - LOG8430

Page 21: Web Software Evolution and Change Management on ... - Moodle

WSDarwin for REST services

• REST services are not published through a structured, machine-readable specification.→The specification and the evolution may be under-documented.

• A machine-readable specification can help us automate tasks like→Client generation→Service comparison and mapping

• For service mapping (and migration), we cannot trust structure or semantics.→But we can trust data!

21

RP1b

2019-10-07 ©Marios Fokaefs - LOG8430

Page 22: Web Software Evolution and Change Management on ... - Moodle

Service-interface & Client-proxy Generation

22

Web service source code

Merge service

elements

Infer Schema

Test service

Service Interface

Identify 1. Enums2. Variable resource IDs

Generate service

interface

Generate client proxy

provider

client

Request URL

Request URL

Request URL

RP1b

2019-10-07 ©Marios Fokaefs - LOG8430

Page 23: Web Software Evolution and Change Management on ... - Moodle

URL Analysis and Resources w. Variable IDs

23

resources base

resource paths

parameters

Resource with variable ID• Path component in the same position but with

different ID in different URLs.• Common prefix.• Minimum common suffix.• Last components are not considered variable IDs

RP1b

2019-10-07 ©Marios Fokaefs - LOG8430

Page 24: Web Software Evolution and Change Management on ... - Moodle

Schema Inference• Type Resolution (using regular expressions)

• string, long, int, short, byte, double, float, anyURI, email, dateTime, date

• Batch processing gives confidence (e.g. type is string in 7 out of 10 URLs→70% confidence)

• Enumerations• If values appear more than once → indication

• AND if string values are in capital → recommendation

• User eventually applies the refactoring to simple type with enumerations.

• E.g. gender = {MALE, FEMALE}

24

RP1b

2019-10-07 ©Marios Fokaefs - LOG8430

Page 25: Web Software Evolution and Change Management on ... - Moodle

Cross-vendor Service Mapping

25

API 1

API 2

Invoke service

Invoke service

Manually mapped input and requests

JSON/XML response

JSON/XML response

Compare parameters

by value

Many-to-manyparameter mapping

manual steps automated steps

Bazelli, B., Fokaefs, M., Stroulia, E., 2013. Mapping the responses of restful services based on their values. In: IEEE International Symposium on Web Systems Evolution (WSE 2013). IEEE, pp. 15-24.

RP1b

2019-10-07 ©Marios Fokaefs - LOG8430

Page 26: Web Software Evolution and Change Management on ... - Moodle

WSDarwin for REST services -Overview• REST services do not come with a WADL interface specification,

which limits the automatic support REST clients.• Auto-generating native source code tools also exist for WADL and

REST.

• A method for auto-generating WADL interfaces increases automation and reduces the provider-consumer integration overhead.

• Mapping data and structure from different services can help migration.

• WADL Generation: 1 request/resouce, plus 1 additional request for every variable ID; more than 90% parameters correctly generated. (ongoing evaluation)

• Mapping: 63% precision (85%), 78% recall (83%), 6-7x faster than human. (WSE2013)

26

Pro

ble

mSo

luti

on

Eval

uat

ion

RP1b

2019-10-07 ©Marios Fokaefs - LOG8430

Page 27: Web Software Evolution and Change Management on ... - Moodle

Service Evolution EconomicsDecisions, decisions, decisions…

When?stimulus

• Changes from the environment.

Why?motivation

• Mainly business and financial motives.

What?plan

• Decide on a particular change.

How?execution

• Design the implementation of the change.

27

RP2

2019-10-07 ©Marios Fokaefs - LOG8430

Page 28: Web Software Evolution and Change Management on ... - Moodle

ClientProxy

ServiceInterface

Provider1ClientX ServiceClient App

Adapter o-n

Provider2

Service EcosystemsTechnical and Business transactions

28

price

price

adaptationcost

Value

evolution cost

adaptation cost

adaptation cost

Value

2019-10-07 ©Marios Fokaefs - LOG8430

Page 29: Web Software Evolution and Change Management on ... - Moodle

Service Evolution Economic Model

Value_of_service

= f (expected_return, development_effort, client_requirements)

Evolution/Adaptation_cost

= f (wage, development_effort)

• Price as an optimization over the best and most probable market share.

• Market_share as an optimization over the highest and most probable price.

292019-10-07 ©Marios Fokaefs - LOG8430

Page 30: Web Software Evolution and Change Management on ... - Moodle

Game Theory 101

Normal Form (Simultaneous)

P2P1

Not Confess Confess

Not Confess -1,-1 -3,0

Confess 0,-3 -2,-2

Extensive Form(Sequential)

30

-2,-2 0,-3 -3,0 -1,-12019-10-07 ©Marios Fokaefs - LOG8430

NCNC

NC

CC

C

Page 31: Web Software Evolution and Change Management on ... - Moodle

Service Evolution GameThe setting• Competitive market: Many providers – Many Clients• Perfect Information game: Every player knows what the other player has done• Rational players• 2-stage game: Providers play first and then the clients react

The providers can:1.Retain the status quo of the service (SQ)2.Evolve the service (E)3.Evolve the service and support the client(S)

The clients can:1.Adapt to the new version of their current provider’s service (A)2.Leave the provider and switch to another service (L)

312019-10-07 ©Marios Fokaefs - LOG8430

Page 32: Web Software Evolution and Change Management on ... - Moodle

UtilitiesWhat do providers and clients get (or lose) from evolution?

32

Client

Provider

Value for the client from a specific provider

Adaptation costs

Adaptation Costs forsupporting current clients

Utility Value price Cost

Utility Clients price CostEvolution Costs

2019-10-07 ©Marios Fokaefs - LOG8430

Page 33: Web Software Evolution and Change Management on ... - Moodle

2-stage game

First stage: Providers Second stage: Clients

33

Provider2

SQ E S

Provider1

SQ U1,U2 U1,U2 U1,U2

E U1,U2 U1,U2 U1,U2

S U1,U2 U1,U2 U1,U2

Nash Equilibrium-Backwards inductionCalculate utilities for all game states, solve the client game first, upload the market division to the provider game, and find the Nash equilibrium for the N-player general-sum simultaneous game.

2019-10-07 ©Marios Fokaefs - LOG8430

Page 34: Web Software Evolution and Change Management on ... - Moodle

Service Evolution Economics Evaluation:The Cloud Ecosystem• 3 Providers

• Amazon• Google• Microsoft

• 5 (randomly generated) clients• Initial Market Division

Amazon = {A,B,C}Microsoft = {D}Google = {E}

• Real data• Wages, Current and Future Prices, Initial Market Division

• Generated data• Efforts, Expected Returns for Clients

34

The scenarios discussed here are fantastic and

there is very little connection to reality.

2019-10-07 ©Marios Fokaefs - LOG8430

Page 35: Web Software Evolution and Change Management on ... - Moodle

Service Evolution Economics Evaluation:Final decisionNash Equilibrium #1 (Provider Welfare)

Nash Equilibrium #2 (Ecosystem Welfare)

35

Amazon(SQ)

A B C

Microsoft(SQ)

Google(E)

ED

Amazon(SQ)

A B C

Microsoft(SQ)

Google(S)

ED

2019-10-07 ©Marios Fokaefs - LOG8430

Page 36: Web Software Evolution and Change Management on ... - Moodle

Economics-aware Cloud Resource ScalabilityExtending cloud elasticity services for performance and economic optimization.

362019-10-07 ©Marios Fokaefs - LOG8430

Page 37: Web Software Evolution and Change Management on ... - Moodle

What is scaling (elasticity)?

Web Cluster

DB Server

Load Balancer

1,200req/h

1,201req/h

37

• capacity = 600 req / VM / hour

2019-10-07 ©Marios Fokaefs - LOG8430

Page 38: Web Software Evolution and Change Management on ... - Moodle

Is scaling up/out always profitable? (CLOUD2016)

Web Cluster

DB Server

Load Balancer

1,200req/h

1,201req/h

1.2$/h 1.44$/h1.8$/h 1.4412$/h

38

• price = 0.12 ₵ / request• cost = 0.6 $ / VM / hour• capacity = 600 req / VM / hour

0.24$/h-0.3588$/h2019-10-07 ©Marios Fokaefs - LOG8430

Let’s drop the extra request!

Page 39: Web Software Evolution and Change Management on ... - Moodle

Scaling through economic optimization

max Π = p×x – W×CW – x×cn

s.t. x ≥ λ×AW×du ≥ x ≥ W×dl

• Π = service profit• p = nominal revenue per request• x = service throughput per time

unit• W = number of servers• CW = server cost per time unit• cn = associated costs per request• λ = arrival rate per time unit• A = availability rate (SLA)• du, dl = upper/lower capacity of

server in requests per time unit

elasticity optimCPU 53.47% 64.22%Availability 100% 97%Response time 32.53ms 35.06msrevenue 922.20$ 890.81$cost 1.88$ 1.78$ServProf 920.33$ 889.03$

Still not good… What if we raise the price instead of

dropping requests? And wait before we scale?

2019-10-07 ©Marios Fokaefs - LOG8430 39

Page 40: Web Software Evolution and Change Management on ... - Moodle

Extended scaling economics (SEAMS 2016)

Web Cluster

DB Server

Load Balancer

1,200req/h

1,201req/h

1.2$/h 1.44$/h1.8$/h 1.4412$/h

40

• price = 0.12 ₵ / request• cost = 0.6 $ / VM / hour• capacity = 600 req / VM / hour

0.24$/h-0.3588$/h

• true value = price – cost / req

v = 0.02 ₵ / request

v = -0.03 ₵ / request

at 1,500 requestsv = 0 ₵ / request

at 1,700 requestsv = 0.02 ₵ / request

2019-10-07 ©Marios Fokaefs - LOG8430

Page 41: Web Software Evolution and Change Management on ... - Moodle

Adaptation process

Monitor AnalyzeCPU

U_Black

U_Gray

White

L_Gray

L_Black

#S++

#S--

v’≥0

v≥0

v≤0

#S++

#S--

p’=πc’

p’=c’

T

T

T

F

2019-10-07 ©Marios Fokaefs - LOG8430 41

Page 42: Web Software Evolution and Change Management on ... - Moodle

Results

High Thresholds/ High-Fixed Price

High Thresholds/ Low-Fixed Price

Low Thresholds/ Low-Fixed Price

Low Thresholds/ High-Fixed Price

Zones/ High-Fixed Price

Zones/ Adaptable Price

Servers 6 6 7 7 7 7

CPU 62.65 62.65 60.12 60.12 57.71 62.74

Response time 125.85 125.85 125.95 125.95 121.45 131.17

Cost/Request 0.0032 0.0032 0.0033 0.0033 0.0035 0.0032

Price/Request 0.0040 0.0028 0.0028 0.0040 0.0040 0.0034

Total Cost 78.56 78.56 82.65 82.65 86.27 79.10

Total Revenue 98.69 69.08 69.14 98.76 98.90 85.49

Total Profit 20.14 -9.46 -13.51 16.11 12.62 6.38

Avg True Value 7.69e-04 -4.31e-04 -5.65e-04 6.36e-04 5.00e-0.4 2.47e-04

1. Statically defining performance thresholds and prices is not a trivial task and can lead to inefficient decisions.

2. Price adaptation can lead to potentially lower prices while minimizing losses.

• This is not a profit-maximization strategy but loss-minimization.

• How can we bound price increases to minimize the risk of losing clients?

2019-10-07 ©Marios Fokaefs - LOG8430 42

Page 43: Web Software Evolution and Change Management on ... - Moodle

Web Software Ecosystem

𝛱𝑠 = 𝑝𝑠 × 𝜆 − 𝐶𝑊 × 𝑊 − 𝑐𝑛 × 𝜆

𝛱𝛢 = 𝛾 × 𝜆 − 𝑝𝑠 × 𝜆 − 𝑐𝑛 × 𝜆

𝑈 = 𝛼 ×𝛾𝑢 − 𝛾

𝛾𝑢 − 𝛾𝑙

+ 𝛽 ×𝑅𝑢 − 𝑅

𝑅𝑢 − 𝑅𝑙

2019-10-07 ©Marios Fokaefs - LOG8430 43

Page 44: Web Software Evolution and Change Management on ... - Moodle

Multi-objective optimization

• Find Pareto optimal results – more than one.

• Pick one that satisfies a goal.

• Set the goals as combination of weights (𝑤𝑆 + 𝑤𝐴 + 𝑤𝑈 = 1)

• Pick the result which maximizes the total profit over the given goal.

• Service and User goals “agree”

• App needs non-zero weight to “survive”

Service App User Ecosystem

response

app reven

price

service

app

user

2019-10-07 ©Marios Fokaefs - LOG8430 44

Page 45: Web Software Evolution and Change Management on ... - Moodle

DevOps: From philosophy to culture, from practice to vision

2019-10-07 ©Marios Fokaefs - LOG8430 45

Page 46: Web Software Evolution and Change Management on ... - Moodle

…that DevOps would have a single definition!

©Marios Fokaefs - LOG8430 462019-10-07

Page 47: Web Software Evolution and Change Management on ... - Moodle

DevOps according to…everybody!

• Wikipedia: “DevOps is a software development methodology…”

• Atlassian: “DevOps is a set of practices…”

• Amazon: “DevOps is the combination of cultural philosophies, practices, and tools…”

• Microsoft: “DevOps is the union of people, process, and products…”

• RedHat: “DevOps is an approach to culture, automation, and platform design…”

• IBM: “DevOps is an approach to lean and agile software delivery…”

©Marios Fokaefs - LOG8430 472019-10-07

Page 48: Web Software Evolution and Change Management on ... - Moodle

What is DevOps?

A process A culture

A philosophy A set of tools

©Marios Fokaefs - LOG8430 482019-10-07

Page 49: Web Software Evolution and Change Management on ... - Moodle

What is DevOps?

A process A culture

A philosophy A set of tools

©Marios Fokaefs - LOG8430 492019-10-07

Page 50: Web Software Evolution and Change Management on ... - Moodle

DevOps as a philosophy

Dev… …Ops

©Marios Fokaefs - LOG8430 502019-10-07

Page 51: Web Software Evolution and Change Management on ... - Moodle

As a philosophy, DevOps is a… (continuous) process!

©Marios Fokaefs - LOG8430 512019-10-07

Page 52: Web Software Evolution and Change Management on ... - Moodle

But what does it mean to be continuous? …and how can we be?

Automation

Integration

Without automation, manual tasks will slow down the process, may introduce

errors and will eventually break continuity.

Without integration, there will be gaps in communication, understanding, interoperability and

automation is almost impossible.

©Marios Fokaefs - LOG8430 522019-10-07

Page 53: Web Software Evolution and Change Management on ... - Moodle

Time for cooking!

• Automation needs integration!

• Abstractions are easier to integrate with each other.

• Abstractions can be easier to be communicated to stakeholders.

• It is easier for abstractions to understand each other.

• A workflow involving abstractions can be automated.

• Models can specify abstractions! (pretty well actually!)

©Marios Fokaefs - LOG8430 532019-10-07

Page 54: Web Software Evolution and Change Management on ... - Moodle

And into the oven!

• So, models are good for:• Integrating knowledge and expertise (functionality, performance, security,

business value)• Communicating this knowledge to the stakeholders in a language they

understand (unique for every class of stakeholders).

• But, models alone do not implement automation!

• We need tools!

• Tools can:• Seamlessly connect the abstractions and automate the workflow.• Hide the knowledge so as to minimize the learning curve and the need for

extended understanding.

©Marios Fokaefs - LOG8430 542019-10-07

Page 55: Web Software Evolution and Change Management on ... - Moodle

DevOps as a culture©Marios Fokaefs - LOG8430 552019-10-07

Page 56: Web Software Evolution and Change Management on ... - Moodle

To begin with a story…

©Marios Fokaefs - LOG8430 562019-10-07

Page 57: Web Software Evolution and Change Management on ... - Moodle

DevOps is the people

• We cannot consider DevOps without the people. (at least not now)

• The collusion of developers and IT staff/sys admins exists for a long time now.

• However, now it becomes more necessary and relevant due to the nature of software, its velocity, volume, and volatility.

• We need people who would understand the multiple facets of software and have the necessary skills to function in heterogeneous teams.

• $122,969-$133,378 avg US salary for DevOps Engineer ($92,172 for IT professionals), 74,834 LinkedIn job postings for DevOps Engineers worldwide.

©Marios Fokaefs - LOG8430 572019-10-07

Page 58: Web Software Evolution and Change Management on ... - Moodle

DevOps in practice©Marios Fokaefs - LOG8430 582019-10-07

Page 59: Web Software Evolution and Change Management on ... - Moodle

A plethora of tools!

©Marios Fokaefs - LOG8430 592019-10-07

Page 60: Web Software Evolution and Change Management on ... - Moodle

But without foundations?!

• The tools emerged before the concept of DevOps itself.

• Partly, because the tools tackled specific parts or phases of DevOps.

• For this reason, the landscape is fragmented rather than integrated.

• This also led to misconceptions and the disagreements wrt a universal definition:• “DevOps is Continuous Integration.”• “You don’t do DevOps, unless you use Docker.”

• We are in need of reengineering.• We need to redefine the existing tools in the new context of DevOps.• We need to reengineer the tools so that they fit in the overall paradigm of DevOps.• We need to develop new integrated tools properly tailored to DevOps.

©Marios Fokaefs - LOG8430 602019-10-07

Page 61: Web Software Evolution and Change Management on ... - Moodle

DevOps future outlooks©Marios Fokaefs - LOG8430 612019-10-07

Page 62: Web Software Evolution and Change Management on ... - Moodle

Something is definitely missing

• Adaptivity and self-adaptive systems• Control Theory?!

• Quality• Trade-offs!

• Models

• Training

• Business• Ecosystem and stakeholders• Game theory?!

• “Proper” machine learning

©Marios Fokaefs - LOG8430 622019-10-07

Page 63: Web Software Evolution and Change Management on ... - Moodle

The two cycles of DevOps

©Marios Fokaefs - LOG8430 632019-10-07

Page 64: Web Software Evolution and Change Management on ... - Moodle

DevOps is Software Engineering 2.0

ContinuousIntegration

ContinuousProfitability

ContinuousDelivery

ContinuousDeployment Continuous

Utility

ContinuousSustainability

ContinuousSoftware

Engineering

Operations

Development Business©Marios Fokaefs - LOG8430 642019-10-07

Page 65: Web Software Evolution and Change Management on ... - Moodle

Future ideas and projectsI have some positions for summer interns and master students.

©Marios Fokaefs - LOG8430 652019-10-07

Page 66: Web Software Evolution and Change Management on ... - Moodle

CRSNG / BRPC - BOURSES DE RECHERCHE EN MILIEU UNIVERSITAIRE (1er cycle)• https://www.polymtl.ca/aide-financiere/bourses/crsng-brpc-bourses-

de-recherche-en-milieu-universitaire-1er-cycle

2019-10-07 ©Marios Fokaefs - LOG8430 66

Page 67: Web Software Evolution and Change Management on ... - Moodle

1. Management of data in IoT systems (Smart Buildings)• Use of Lambda architecture.

• Use of the Tomcat-Kafka-Spark-Cassandra topology

• Improve throughput, response time for analytics.

• Provide elasticity to manage performance and security, but maintain cost and energy consumption.

• What is the impact of location, motion, network connection, data schema and communication protocol in the quality and economics of the system?

2019-10-07 ©Marios Fokaefs - LOG8430 67

Page 68: Web Software Evolution and Change Management on ... - Moodle

2. Multi-objective autoscaler

• Create an autonomic management system for cloud and web software systems.

• Manage the resources of the system, its state and its architecture.

• Maintain performance, security and economics at the same time.

• Build a self-adaptive framework; a modular and pluggable architecture to support current and future analyses and self-adaptive actions.

• Use Docker, Kubernetes, OpenStack and build multi-objective optimizers.

2019-10-07 ©Marios Fokaefs - LOG8430 68

Page 69: Web Software Evolution and Change Management on ... - Moodle

3. SAM : A system administration minion

• Combine self-adaptive systems, autonomic management systems, cognitive computing and intelligent assistants (chatbots).

• Use IBM Watson and other cognitive platforms.

• Build a chatbot that would interact with a DevOps team to monitor, visualize, notify, and act upon the system.

2019-10-07 ©Marios Fokaefs - LOG8430 69

Page 70: Web Software Evolution and Change Management on ... - Moodle

4. BizDevOps and FinTech

• Build management and self-adaptation solutions for banking and financing applications.

• B2B and B2B2C solutions.

• Elasticity in banking applications.

• Decision-support systems for marketing and banking software solutions.

2019-10-07 ©Marios Fokaefs - LOG8430 70

Page 71: Web Software Evolution and Change Management on ... - Moodle

5. Root cause analysis for Technical Debt

• Technical Debt is now detected only by self-admission comments in the code and the documentation.

• Is it possible to detect Technical Debt instances if they are not admitted by the developers?

• Low quality is often an indicator for Technical Debt and Refactoring can be used to address TD.

• Can we use the history of metrics and refactorings to detect the first occurrence of a TD instance?

2019-10-07 ©Marios Fokaefs - LOG8430 71