Microservice A B Evolution B B Adalberto R. Sampaio Jr, - - PowerPoint PPT Presentation

microservice a b evolution b b adalberto r sampaio jr
SMART_READER_LITE
LIVE PREVIEW

Microservice A B Evolution B B Adalberto R. Sampaio Jr, - - PowerPoint PPT Presentation

NIER A B B B C Supporting Microservice A B Evolution B B Adalberto R. Sampaio Jr, Harshavardhan Kadiyala, Bo Hu, John Steinbacher, Tony Erwin, Nelson Rosa, Ivan Beschastnikh, Julia Rubin Federal University University of IBM


slide-1
SLIDE 1

Supporting Microservice Evolution

University of British Columbia Canada IBM USA/Canada

UFPE

Federal University

  • f Pernambuco

Brazil

Adalberto R. Sampaio Jr, Harshavardhan Kadiyala, Bo Hu, John Steinbacher, Tony Erwin, Nelson Rosa, Ivan Beschastnikh, Julia Rubin B A B B C B B B

A’

NIER

slide-2
SLIDE 2

Supporting microservice evolution

From monoliths to microservices

2

µ

( App) App

  • Microservices ( )
  • Fast and easy to deploy
  • Can be scaled independently
  • Multilingual and multi-technology
  • Loose dependencies (REST)

µServices

https://martinfowler.com/articles/microservices.html

Microservices-based App

slide-3
SLIDE 3

Constant evolution

  • Microservices ( )
  • Fast and easy to deploy
  • Can be scaled independently
  • Multilingual and multi-technology
  • Loose dependencies (REST)

Supporting microservice evolution

From monoliths to microservices

3

µApp

App

µServices

slide-4
SLIDE 4

Supporting microservice evolution

Evolution-related challenges

4

  • Upgrades break inter-services compatibility
  • Different teams work on different services
  • Tracking down failure root causes complicated
  • Many moving parts that keep changing
  • Deployment configuration must also evolve
  • Changes to performance/dependencies impact config

B A C

slide-5
SLIDE 5

Existing tool support

Supporting microservice evolution

5

  • Academia: app-bisect [1], GRU [2], Gremlin [3], Formal methods [4]
  • OpenSource (Industry): Istio [5] (IBM/Google), Zipkin [6] (Twitter),

Kubernetes [7] (Google), ELK stack [8]

[1] Rajagopalan and Jamjoom, App–Bisect: Autonomous Healing for Microservice-Based Aps, HotCloud 2015 [2] Florio et al., Gru : an Approach to Introduce Decentralized Autonomic Behavior in Microservices Architectures, ICAC 2016 [3] Heorhiadi et al., Gremlin: Systematic Resilience Testing of Microservices, ICDCS 2016 [4] Panda et al., Verification in the Age of Microservices, HotOS 2017 [5] https://istio.io/ [6] http://zipkin.io/ [7] https://kubernetes.io/ [8] https://logz.io/learn/complete-guide-elk-stack/

Wanted: program analysis to support change

slide-6
SLIDE 6

Existing tool support

Supporting microservice evolution

6

  • Academia: app-bisect [1], GRU [2]
  • OpenSource (Industry): Istio [3] (IBM/Google), Zipkin [4] (Twitter),

Kubernetes [5] (Google), ELK stack [6], Zuul [7] (Netflix), InfluxDB [8]

[1] Rajagopalan and Jamjoom, App–Bisect: Autonomous Healing for Microservice-Based Aps, HotCloud 2015 [2] Florio et al., Gru : an Approach to Introduce Decentralized Autonomic Behavior in Microservices Architectures, ICAC 2016 [3] https://istio.io/ [4] http://zipkin.io/ [5] https://kubernetes.io/ [6] https://logz.io/learn/complete-guide-elk-stack/ [7] https://github.com/Netflix/zuul/ [8] https://www.influxdata.com/

Wanted: program analysis to support change

Idea: model over time

µApp

slide-7
SLIDE 7

Supporting microservice evolution

Model over time

7

  • 1. Construct a model of the and its configuration
  • 2. Update model as or configuration change
  • 3. Analyze sequence of models (past, present, future)
  • 4. Use the analysis to support developers

App

µ

App

µ µApp

LOG LOG LOG LOG LOG

Continuous Log Analysis

Model

µApp

Developer

Changes Model Analysis

slide-8
SLIDE 8

Supporting microservice evolution

Proposed evolutionary (meta) model

8

Provider Application Scenario Service +isExternal: boolean Message +correlationId: String +timestamp: long +totalTime: long +processingTime: long Operation ServiceVersion ServiceReplica Location Host +hosting: Environment * {ordered} * * * * * * * +source OperationVersion +target ApplicationVersion * * * * * +API * «enumeration» Environment CONTAINER VIRTUAL_MACHINE PHYSICAL_MACHINE Metric +cpu: float +memory: float * * Architectural Layer Instance Layer Infrastructure Layer * *

slide-9
SLIDE 9

Supporting microservice evolution

Example model instance

9 Location WestCoast Location EastCoast Host vm1 Host vm2 ServiceReplica Frontend.2.A ServiceReplica Frontend.1.A ServiceReplica Frontend.2.B Service Frontend Provider IBM Bluemix ServiceVersion frontend.2 ServiceVersion frontend.1 Application ToDo ApplicationVersion version 2 ApplicationVersion version 1 EastCoast WestCoast

slide-10
SLIDE 10

Supporting microservice evolution

Model analysis

10

  • Sequence of models over time allows for rich analyses
  • Retrospective: Study inter-services messages to

recommend service refactorings

  • Prospective: Explore and instantiate new deployment

configurations to optimize resources usage

Curr. Model Future Model 1

Prev Model Future Model2

Time Now

Retrospective Analysis Prospective Analysis

Init Model

slide-11
SLIDE 11

Supporting microservice evolution

Ongoing/future work

11

  • Assessing developer needs: which tasks are the most pressing?
  • Model representation: many modeling formalisms, which one is the

best for the task?

  • Defining analysis: Build on existing model analysis work
  • Extensibility: Can we allow the model to change?

(Cannot foresee future information we may need to integrate)

  • Social factors: interplay between technical and social dependencies

Image from: https://martinfowler.com/bliki/MicroservicePrerequisites.html

slide-12
SLIDE 12

12

  • Loose coupling
  • Rapid deployment
  • Multi-lingual
  • Multiple teams

https://github.com/adalrsjr1/k8s-monitoring

Microservices require new approaches

Vision: Generate an evolutionary model from dynamic observations (logs) for retrospective and prospective analyses

B A B B C B B B

A’

Constant Change

Find us at tomorrow’s poster session!