a prototypical tool to discover architecture changes based ...€¦ · a prototypical tool to...

Post on 09-Jun-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Chair of Software Engineering for Business Information Systems (sebis)

Faculty of Informatics

Technische Universität München

wwwmatthes.in.tum.de

A prototypical tool to discover architecture

changes based on multiple monitoring data

sources for a distributed systemPatrick Schäfer, 08.11.2017, Munich

Advisor: Martin Kleehaus

Motivation

▪ Modeled & Runtime Architecture

▪ Problem Statement

Research Questions

Prototypical Implementation

▪ Operating Environment

▪ Discovery Concept

▪ Implementation

Live Demonstration

Limitations

Outline

© sebis171108 Schäfer, Patrick - Master's Thesis final presentation 2

Motivation

Modeled Enterprise Architecture

© sebis171108 Schäfer, Patrick - Master's Thesis final presentation 3

VM VM VM VM

Motivation

Runtime architecture

© sebis171108 Schäfer, Patrick - Master's Thesis final presentation 4

Necessity of knowledge about runtime architecture

▪ Detecting deviations from modeled architecture

▪ Compliance violations / SLA violations

▪ Semi-automated root cause analysis

▪ Semi-automated Impact analysis

State of the art solutions

Application Runtime Architecture Discovery

Architecture

discovery

VM VM VM VM

Motivation

Problem statement

© sebis171108 Schäfer, Patrick - Master's Thesis final presentation 5

Problem:

Current discovery solutions don‘t own knowledge about the entire architecture including

dependencies between and within the architectual layers

Consequences

▪ comparison of modeled and runtime architecture

not possible across all layers

▪ root cause analysis is challenging and time consuming

▪ Incomplete impact analysis

Objective

▪ a system, that owns knowledge about all

realtime architecture components as well as

their inter- and intralayer dependencies

?

How to discover the Microservice Architecture by applying

distributed tracing?

What are component relationship types and how to discover them

automatically?

How to discover concurrency and synchronization?

How to recognize changes in the Microservice Architecture?

How to provide a smart user interface for adding business

semantic on top of business services?

Research questions

© sebis 6171108 Schäfer, Patrick - Master's Thesis final presentation

1

2

3

4

5

Prototypical Implementation

Operating Environment

© sebis 7171108 Schäfer, Patrick - Master's Thesis final presentation

Service

Service

Service

ServiceClient

Required Component

Optional Component

Legend:

Instrumented Distributed System

API

Gateway

EurekaRepository

Zipkin

Server

Service

Instrumented Service

Service

Distributed Tracing Spans

Required components of the prototypes operating environment:

▪ Instrumented Services

▪ Service Repository Eureka

▪ Zipkin Server

Prototypical Implementation

Discovery Concept: Architecture Model

© sebis 8171108 Schäfer, Patrick - Master's Thesis final presentation

Hardware 1

Process

Activity 1 Activity 2

Service 1

Instance 1.1 Instance 1.2

Service 2

Processes

Bu

sin

ess L

aye

r

Activities

Services

Ap

plic

ation

Laye

r

Service-Instances Instance 2

Hardware 2Hardware

Te

ch

nolo

gy L

aye

r

Prototypical Implementation

Discovery Concept: Architecture Model - Relations

© sebis 9171108 Schäfer, Patrick - Master's Thesis final presentation

Hardware 1

Process

Activity 1 Activity 2

Service 1

Instance 1.1 Instance 1.2

Service 2

Processes

Bu

sin

ess L

aye

r

Activities

Services

Ap

plic

ation

Laye

r

Service-Instances Instance 2

Hardware 2Hardware

Te

ch

nolo

gy L

aye

r

is followed by

uses

is executed by is executed by

is composed of is composed of is composed of

runs on runs on

Implicit meaning of relations

Prototypical Implementation

Discovery Concept: Architecture Model - Relations

© sebis 10171108 Schäfer, Patrick - Master's Thesis final presentation

Hardware 1

Process

Activity 1 Activity 2

Service 1

Instance 1.1 Instance 1.2

Service 2

Processes

Bu

sin

ess L

aye

r

Activities

Services

Ap

plic

ation

Laye

r

Service-Instances Instance 2

Hardware 2Hardware

Te

ch

nolo

gy L

aye

r

Hierarchical Interlayer-Relation Non-Hirarchical Intralayer-Relation

Relation classification: Interlayer- and Intralayer-Relations

Prototypical Implementation

Discovery Concept: Architecture Model - Relations

© sebis 11171108 Schäfer, Patrick - Master's Thesis final presentation

Hardware 1

Process

Activity 1 Activity 2

Service 1

Instance 1.1 Instance 1.2

Service 2

Processes

Bu

sin

ess L

aye

r

Activities

Services

Ap

plic

ation

Laye

r

Service-Instances Instance 2

Hardware 2Hardware

Te

ch

nolo

gy L

aye

r

Direct Relation

Relation classification: Direct and Indirect Relations

Indirect Relation

Prototypical Implementation

Discovery Concept: Architecture Model - Relations

© sebis 12171108 Schäfer, Patrick - Master's Thesis final presentation

Hardware 1

Process

Activity 1 Activity 2

Service 1

Instance 1.1 Instance 1.2

Service 2

Processes

Bu

sin

ess L

aye

r

Activities

Services

Ap

plic

ation

Laye

r

Service-Instances Instance 2

Hardware 2Hardware

Te

ch

nolo

gy L

aye

r

Direct RelationPath of Indirect Relation

Relation classification: Direct and Indirect Relations

Indirect Relation

Prototypical Implementation

Discovery Concept: Architecture Model - Relations

© sebis 13171108 Schäfer, Patrick - Master's Thesis final presentation

Activity 1 Activity 2

API Gateway Service

Indirect Relations are necessary

Service 1 Service 2

Service 3

Prototypical Implementation

Discovery Concept: Architecture Model - Relations

© sebis 14171108 Schäfer, Patrick - Master's Thesis final presentation

Activity 1 Activity 2

API Gateway Service

Indirect Relations are necessary

Service 1 Service 2

Service 3

Prototypical Implementation

Discovery Concept: Business Layer

© sebis 15171108 Schäfer, Patrick - Master's Thesis final presentation

Processes

Activities

Services

Instances

Hardware

Modelling via Web UI:

▪ Process and Activity entities

▪ Process-flow

Added to the architecture model via REST API

Prototypical Implementation

Discovery Concept: Application / Technology Layer

© sebis 16171108 Schäfer, Patrick - Master's Thesis final presentation

Processes

Activities

Services

Instances

Hardware

Detection of

▪ Services, Instances, Hardware

▪ Interlayer-Relations of these types

In Realtime by analysing Distributed Tracing

▪ Detects new entities only

Cyclic by processing Eureka API

▪ Detects new, updated or removed entitites

Prototypical Implementation

Discovery Concept: Service intralayer Relations

© sebis 17171108 Schäfer, Patrick - Master's Thesis final presentation

Processes

Activities

Services

Instances

Hardware

Detection of relations between Services

in Realtime by analysing Distributed Tracing Spans

*Source: http://opentracing.io/documentation/pages/instrumentation/instrumenting-large-systems.html

Distributed Tracing Span production*

Prototypical Implementation

Discovery Concept: Business / Application Relations

© sebis 18171108 Schäfer, Patrick - Master's Thesis final presentation

Processes

Activities

Services

Instances

Hardware

Detection of Interlayer-Relations between

Activities and Services in Realtime

▪ Set of regular expressions mapping to activities

▪ Set defined via Web UI and REST API

▪ Distributed Tracing Spans applied to ruleset

Prototypical Implementation

Implementation: System Components

© sebis 19171108 Schäfer, Patrick - Master's Thesis final presentation

Prototype

Kafka Stream Websocket Bridge

Webapplication

Business Layer Modelling

Relation Ruleset

Architecture Visualization

Microservice

Architecture

Eureka Repository

Distributed Tracing

Architecture-

discovery service

RE

ST

AP

I

Prototypical Implementation

Implementation: Environment

© sebis 20171108 Schäfer, Patrick - Master's Thesis final presentation

Service

Service

Service

ServiceClient

Instrumented Distributed System

API

Gateway

EurekaRepository

Zipkin

Server

Service

Service

▪ Zipkin Server replaced by Prototype

▪ Prototype extends Zipkin implementation

▪ Zipkin Server Features stay complete and unmodified

▪ Zipkin Server replaced by Prototype

▪ Prototype extends Zipkin implementation

▪ Zipkin Server Features stay complete and unmodified

Prototypical Implementation

Implementation: Environment

© sebis 21171108 Schäfer, Patrick - Master's Thesis final presentation

Service

Service

Service

ServiceClient

Instrumented Distributed System

API

Gateway

EurekaRepository

Prototype and

Zipkin Server

Service

Service

© sebis 22171108 Schäfer, Patrick - Master's Thesis final presentation

Live Demonstration

Scenario: Business Process

Login

Ende

Start

Select Provider

Search Route

Book Route

Logout

© sebis 23171108 Schäfer, Patrick - Master's Thesis final presentation

Business Core

Service

Accounting Core

Service

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Zuul

API Proxy

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture

Login

Ende

Start

Select Provider

Search Route

Book Route

Logout

© sebis 24171108 Schäfer, Patrick - Master's Thesis final presentation

Business Core

Service

Accounting Core

Service

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Zuul

API Proxy

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture

Login

Ende

Start

Select Provider

Search Route

Book Route

Logout

© sebis 25171108 Schäfer, Patrick - Master's Thesis final presentation

Accounting Core

Service

Business Core

Service

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Zuul

API Proxy

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture

Login

Ende

Start

Select Provider

Search Route

Book Route

Logout

© sebis 26171108 Schäfer, Patrick - Master's Thesis final presentation

Accounting Core

Service

Business Core

Service

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Zuul

API Proxy

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture

Login

Ende

Start

Select Provider

Search Route

Book Route

Logout

© sebis 27171108 Schäfer, Patrick - Master's Thesis final presentation

Accounting Core

Service

Business Core

Service

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Zuul

API Proxy

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture

Login

Ende

Start

Select Provider

Search Route

Book Route

Logout

© sebis 28171108 Schäfer, Patrick - Master's Thesis final presentation

Accounting Core

Service

Business Core

Service

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Zuul

API Proxy

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture

Login

Ende

Start

Select Provider

Search Route

Book Route

Logout

© sebis 29171108 Schäfer, Patrick - Master's Thesis final presentation

Accounting Core

Service

Business Core

Service

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Zuul

API Proxy

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture

Login

Ende

Start

Select Provider

Search Route

Book Route

Logout

© sebis 30171108 Schäfer, Patrick - Master's Thesis final presentation

Accounting Core

Service

Business Core

Service

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Zuul

API Proxy

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture

Login

Ende

Start

Select Provider

Search Route

Book Route

Logout

© sebis 31171108 Schäfer, Patrick - Master's Thesis final presentation

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture - Deployment

Host 0 (10.0.2.100)

Eureka

Config Service

Prototype

Host 1 (10.0.2.110)

Zuul

API Proxy

Business Core

Service

Accounting Core

Service

Host 2.1 (10.0.2.121)

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Travel-

companion

Service

Maps Helper

Service

Host 2.2 (10.0.2.121)

© sebis 32171108 Schäfer, Patrick - Master's Thesis final presentation

Live Demonstration

© sebis 33171108 Schäfer, Patrick - Master's Thesis final presentation

Limitations

▪ Requires Zipkin-compatible instrumentation as well as Eureka

▪ Amount of metainformation depends on instrumentation

▪ Raw communications like Database-Access is not detected

▪ Virtual Hosts are not detected

▪ Business layer is modelled

Technische Universität München

Faculty of Informatics

Chair of Software Engineering for

Business Information Systems

Boltzmannstraße 3

85748 Garching bei München

Tel +49.89.289.

Fax +49.89.289.17136

wwwmatthes.in.tum.de

Patrick Schäfer

B.Sc.

patrick.schaefer@tum.de

Backup

© sebis171108 Schäfer, Patrick - Master's Thesis final presentation 35

© sebis 36171108 Schäfer, Patrick - Master's Thesis final presentation

Business Core

Service

Accounting Core

Service

DeutscheBahn

Mobility Service

DriveNow

Mobility Service

Zuul

API Proxy

Travel-

companion

Service

Maps Helper

Service

Live Demonstration

Scenario: Microservice Architecture

Asynchronous communication

Synchronous communication

Prototypical Implementation

Discovery Concept: Architecture Model - Relations

© sebis 37171108 Schäfer, Patrick - Master's Thesis final presentation

Hardware 1

Process

Activity 1 Activity 2

Service 1

Instance 1.1 Instanz 1.2

Service 2

Processes

Bu

sin

ess L

aye

r

Activities

Services

Ap

plic

ation

Laye

r

Service-Instances Instanz 2

Hardware 2Hardware

Te

ch

nolo

gy L

aye

r

Direct RelationPath of Indirect Relation

Relation classification: Direct and Indirect Relations

Indirect Relation

Prototypical Implementation

Implementation: Zipkin Server Extension

© sebis 38171108 Schäfer, Patrick - Master's Thesis final presentation

Collektor

REST Collektor Kafka Collektor …

MySQL DB

REST API

Zipkin UI

Span Span Span

Architecturediscoveryservice

Span

MySQL Storage

Prototypical Implementation

Implementation: Zipkin Server Extension

© sebis 39171108 Schäfer, Patrick - Master's Thesis final presentation

Collektor

REST Collektor Kafka Collektor …

MySQL DB

REST API

Architecture Discovery Storage (Storage-Proxy)

MySQL Storage

Zipkin UI

Span Span Span

Architecturediscoveryservice

REST API StreamMySQL DB

Webapplication

Datamodel

Architecturediscoveryalgorithm

Span

© sebis171108 Schäfer, Patrick - Master's Thesis final presentation 40

© sebis171108 Schäfer, Patrick - Master's Thesis final presentation 41

© sebis171108 Schäfer, Patrick - Master's Thesis final presentation 42

© sebis171108 Schäfer, Patrick - Master's Thesis final presentation 43

top related