microservice a b evolution b b adalberto r sampaio jr
play

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


  1. 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 of Pernambuco British Columbia USA/Canada Brazil Canada UFPE

  2. From monoliths to microservices App Microservices-based App ( App) µ • Microservices ( ) µ Services • Fast and easy to deploy • Can be scaled independently • Multilingual and multi-technology • Loose dependencies (REST) … https://martinfowler.com/articles/microservices.html Supporting microservice evolution 2

  3. From monoliths to microservices App µ App • Microservices ( ) µ Services • Fast and easy to deploy Constant ⇒ evolution • Can be scaled independently • Multilingual and multi-technology • Loose dependencies (REST) Supporting microservice evolution 3

  4. Evolution-related challenges A B C • 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 Supporting microservice evolution 4

  5. Existing tool support • 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] Wanted: program analysis to support change [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/ Supporting microservice evolution 5

  6. Existing tool support • 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] µ App Idea: model over time Wanted: program analysis to support change [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/ Supporting microservice evolution 6

  7. µ App Model over time LOG LOG Continuous Model Log Analysis LOG LOG LOG µ App Model Changes Analysis Developer App 1. Construct a model of the and its configuration µ 2. Update model as or configuration change App µ 3. Analyze sequence of models (past, present, future) 4. Use the analysis to support developers Supporting microservice evolution 7

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

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

  10. Model analysis Retrospective Prospective Analysis Analysis Future … Curr. Prev Init Model 1 Model Model Model Future Now Model2 … Time • 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 Supporting microservice evolution 10

  11. Ongoing/future work • 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 Supporting microservice evolution 11

  12. Microservices require new approaches A B • Loose coupling B B C • Rapid deployment Constant ⇒ • Multi-lingual Change A ’ • Multiple teams B B B Vision: Generate an evolutionary model from dynamic observations (logs) for retrospective and prospective analyses Find us at tomorrow’s poster session! https://github.com/adalrsjr1/k8s-monitoring 12

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend