Microservices for Scalability

Similar documents
ExplorViz: Visual Runtime Behavior Analysis of Enterprise Application Landscapes

Tool-Supported Application Performance Problem Detection and Diagnosis. André van Hoorn.

Continuous Integration in Kieker

Performance Benchmarking of Application Monitoring Frameworks

Capturing provenance information with a workflow monitoring extension for the Kieker framework

Continuous Monitoring of Software Services: Design and Application of the Kieker Framework

18/09/2015. DevOps. Prof. Filippo Lanubile. Outline. Definitions Collaboration in DevOps Automation in DevOps. Prof.

Self Adaptive Software System Monitoring for Performance Anomaly Localization

Outlook. Corporate Research and Technologies, Munich, Germany. 20 th May 2010

Microservices on AWS

Building Hyper-Scale Platform-as-a-Service Microservices with Microsoft Azure. Patriek van Dorp and Alex Thissen

Tales of Empirically Understanding and Providing Process Support for Migrating to Clouds

Reference Model for Cloud Applications CONSIDERATIONS FOR SW VENDORS BUILDING A SAAS SOLUTION

Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group. Tuesday June 12 1:00-2:15

Georgiana Macariu, Dana Petcu, CiprianCraciun, Silviu Panica, Marian Neagul eaustria Research Institute Timisoara, Romania

Open-Source-Software als Katalysator im Technologietransfer am Beispiel des Monitoring-Frameworks

Building Platform as a Service for Scientific Applications

DevOps with Containers. for Microservices

Towards a Performance Model Management Repository for Component-based Enterprise Applications

SPEC Research Group. Sam Kounev. SPEC 2015 Annual Meeting. Austin, TX, February 5, 2015

Using Dynatrace Monitoring Data for Generating Performance Models of Java EE Applications

APPLICATION NOTE. Elastic Scalability. for HetNet Deployment, Management & Optimization

Performance Monitoring of Database Operations

Cloud Computing and SOA from Enterprise Perspective. Yan Zhao, PhD ArchiTech Consulting LLC Oct.

Low-cost Open Data As-a-Service in the Cloud

Scalable Architecture on Amazon AWS Cloud

FCM: an Architecture for Integrating IaaS Cloud Systems

Guiding SOA Evolution through Governance From SOA 101 to Virtualization to Cloud Computing

Distributed Systems LEEC (2005/06 2º Sem.)

TRANSFORMING TO NEXT-GEN APP DELIVERY FOR COMPETITIVE DIFFERENTIATION

System Models for Distributed and Cloud Computing

From the Monolith to Microservices: Evolving Your Architecture to Scale. Randy linkedin.com/in/randyshoup

Multi-agent System based Service Oriented Architecture for Supply Chain Management System (MAS-SOA-SCM)

RED HAT CONTAINER STRATEGY

Best Practices for Deploying Managed Self-Service Analytics and Why Tableau and QlikView Fall Short

Automatic Extraction of Probabilistic Workload Specifications for Load Testing Session-Based Application Systems

What SOA can do for Software Dependability. Karl M. Göschka Vienna University of Technology

Distributed Objects and Components

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

Considerations for Adopting PaaS (Platform as a Service)

Service-Centric Integration Architecture for Enterprise Software Systems

Scalable Architectures for Platform-as-a-Service Clouds: Performance and Cost Analysis

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

The Virtualization Practice

Service-Oriented Architecture and Software Engineering

GECO: Automatic Generator-Composition for (Aspect-oriented) DSLs

Oracle SOA Infrastructure Deployment Models/Patterns

Deploying Governed Data Discovery to Centralized and Decentralized Teams. Why Tableau and QlikView fall short

GECO: Automatic Generator-Composition for (Aspect-oriented) DSLs

REAL TERRACOTTA. Real-world scalability patterns with Terracotta. SERGIO BOSSA Pro-Netics / Sourcesense

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

PaaS Cloud Migration Migration Process, Architecture Problems and Solutions. Claus Pahl and Huanhuan Xiong

What Questions Developers Ask During Software Evolution? An Academic Perspective

The Service, The Cloud & The Method: The Connection Points

Software Life-Cycle Management

SPECjEnterprise2010 & Java Enterprise Edition (EE) PCM Model Generation DevOps Performance WG Meeting

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Cloud computing: the state of the art and challenges. Jānis Kampars Riga Technical University

Making Sense ofnosql A GUIDE FOR MANAGERS AND THE REST OF US DAN MCCREARY MANNING ANN KELLY. Shelter Island

Continual Verification of Non-Functional Properties in Cloud-Based Systems

Present a New Middleware to Control and Management Database Distributed Environment

ebay : How is it a hit

BUNGEE An Elasticity Benchmark for Self-Adaptive IaaS Cloud Environments

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich

Distributed Operating Systems

Service-oriented architecture in e-commerce applications

Supporting Service Design Decisions

perspective Microservices A New Application Paradigm Abstract

AN EFFICIENT LOAD BALANCING ALGORITHM FOR A DISTRIBUTED COMPUTER SYSTEM. Dr. T.Ravichandran, B.E (ECE), M.E(CSE), Ph.D., MISTE.,

MS 20487A Developing Windows Azure and Web Services

Application Containers

Elasticity in Multitenant Databases Through Virtual Tenants

Infrastructure as a Service (IaaS)

Transcription:

Microservices for Scalability Keynote at ICPE 2016, Delft, NL Prof. Dr. Wilhelm (Willi) Hasselbring Software Engineering Group, Kiel University, Germany http://se.informatik.uni-kiel.de/ Competence Cluster Software Systems Engineering http://kosse-sh.de/ 15.03.2016 W. Hasselbring 1

Agenda 1. Integrated Information Systems Including its Limits to Scalability 2. Information Systems Integration Including its Anti-Patterns to Scalability 3. Microservice Architectures for Scalability Performance and Elasticity Software Development Scalability 4. Takeaways 15.03.2016 W. Hasselbring 2

Integrated Information Systems? Why not employing an integrated information system? Example: ARIS Architecture of Integrated Information Systems Source: [Scheer 1994] 15.03.2016 W. Hasselbring 3

Web Information Systems Cache Architecture Source: [Abbott & Fisher 2015] Approaches to Scalability on the database layer: Big enterprise server Database replication Database sharding However, you have to scale everything to scale anything! 15.03.2016 W. Hasselbring 4

Agenda 1. Integrated Information Systems Including its Limits to Scalability 2. Information Systems Integration Including its Anti-Patterns to Scalability 3. Microservice Architectures for Scalability Performance and Elasticity Software Development Scalability 4. Takeaways 15.03.2016 W. Hasselbring 5

Information Systems Integration? Source: [Conrad et al. 2005] 15.03.2016 W. Hasselbring 6

Architecture and Integration Layers for Business Information Systems Business Architecture Business Architecture Inter-Organizational Processes Application Architecture Application Architecture Enterprise Application Integration Technology Architecture Technology Architecture Middleware Integration OrganizationalUnit Organizational Unit Source: [Hasselbring 2000] 15.03.2016 W. Hasselbring 7

Integration Dimensions proxy services distribution schema integration, standards; wrappers heterogeneity Addressed by federated database systems Source: [Hasselbring 2000] 15.03.2016 W. Hasselbring 8

General System Architecture of Federated Database Systems global application... global application federation layer kernel local application database wrapper schema architecture (metadata) database wrapper local application component database management system federation layer... component database management system Source: [Hasselbring 2015] 15.03.2016 W. Hasselbring 9

Five-level schema architecture for federated database systems External Schema Native Data Model External Schema Native Data Model... External Schema Native Data Model Source: [Sheth & Larson 1990, Hasselbring 2015] Federated Schema Canonical Data Model... Federated Schema Canonical Data Model Export Schema Export Schema Canonical Data Model Canonical Data Model Component Schema Canonical Data Model...... Export Schema Canonical Data Model Component Schema Canonical Data Model Result: Tight coupling between integrated databases! Local Schema Native Data Model... Local Schema Native Data Model 15.03.2016 W. Hasselbring 10

Some Anti-Patterns to Scalability of Information Systems 1. One central database 2. Distributed transactions 3. Schema-based integration 4. Limited capacity 5. Shared code Not meant to be exhaustive, but discussed in this talk. 15.03.2016 W. Hasselbring 11

Agenda 1. Integrated Information Systems Including its Limits to Scalability 2. Information Systems Integration Including its Anti-Patterns to Scalability 3. Microservice Architectures for Scalability Performance and Elasticity Software Development Scalability 4. Takeaways 15.03.2016 W. Hasselbring 12

The Scale Cube Microservices Replication 15.03.2016 W. Hasselbring Based on [Abbott & Fisher 2015] 13

Y-Axis Scaling via Independently Deployable Microservices User Interface Service Microservice Microservice Microservice Microservice Database Database Database Database Microservice Database Microservice Database Microservice Database Microservice Microservice Microservice Database Database Database Based on [Bas et al. 2015]. 15.03.2016 W. Hasselbring 14

Polyglot Persistence Page Assembly Product Search Recommendation Order Tracking Backend Integration Wide Column Database Full-Text Database Graph Database Relational Database Time Series Database 15.03.2016 W. Hasselbring 15

Verticals for Business Functions Example: otto.de Page Assembly Proxy Backoffice Shoppages Search & Navigation Product Promotion Insights Order User AfterSales Auth Link Handler Tracking Backend Integration Proxy Based on [Kraus et al. 2013 Steinacker 2014] 15.03.2016 W. Hasselbring 16

Verticals and Microservices Page Assembly Proxy... Backend Integration Proxy Based on [Steinacker 2014] 15.03.2016 W. Hasselbring 17

Microservice Architecture Variations Page Assembly Proxy Backoffice Shoppages Search & Navigation Product Promotion Insights Order User AfterSales Auth Link Handler Tracking Backend Integration Proxy [Bas et al. 2015] [Steinacker 2014] [Kraus et al. 2013] 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] 15.03.2016 W. Hasselbring 18

Vertical and Horizontal Scalability There are two primary approaches to scaling: Vertical scaling is also known as scaling up, which means to increase the overall application capacity of individual nodes through hardware improvements, e.g., change to other nodes with higher memory, or increase the number of CPU cores. Horizontal scaling is also called scaling out, which means to increase the overall application capacity by adding more nodes, each additional node typically has the equivalent capacity, such as the same amount of memory and the same CPU. Elasticity required 15.03.2016 W. Hasselbring 19

Manage a cluster of containers for horizontal scalability 15.03.2016 W. Hasselbring http://kubernetes.io/ 20

SLAstic: Online Capacity Management [van Hoorn et al. 2009, van Hoorn 2014] 15.03.2016 W. Hasselbring 21

Essential in this Context: Continuous Monitoring [van Hoorn et al. 2012] 15.03.2016 W. Hasselbring [Fittkau et al. 2013, 2015a] 22

Monitoring for Online Capacity Management But also Scalable Monitoring Trace Processing Processing Capabilities: Cost efficient Scalable to millions of monitored methods per second [Fittkau et al. 2015b] 15.03.2016 W. Hasselbring 23

Adaptive Monitoring: Adjust Instrumentation Coverage at Runtime Adaptation based on anomaly detection [Marwede et al. 2009, Ehlers et al. 2011] 15.03.2016 W. Hasselbring 24

Integration of Adaptation and Evolution Models @ Runtime [Heinrich et al. 2014, 2015] 15.03.2016 W. Hasselbring 25

Agenda 1. Integrated Information Systems Including its Limits to Scalability 2. Information Systems Integration Including its Anti-Patterns to Scalability 3. Microservice Architectures for Scalability Performance and Elasticity Software Development Scalability 4. Takeaways 15.03.2016 W. Hasselbring 26

DevOps & Software Architecture The deployment pipeline is the place where the architectural aspects and the process aspects of DevOps intersect. [Bas et al. 2015] 15.03.2016 W. Hasselbring 27

Deployment Pipelines for Continuous Deployment Example Deployment Pipeline @ Otto.de Source: [Breetzmann et al. 2014] 15.03.2016 W. Hasselbring 28

Automated Quality Assurance Example: Regression Benchmarking 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/ 15.03.2016 W. Hasselbring 29

Conway s Law The basic thesis of this article is that organizations which design systems [ ] are constrained to produce designs which are copies of the communication structures of these organizations [Conway 1968] If the organizational structure is decomposed vertically and according to the microservices structure into cross-functional feature teams, scaling development capacities according to changing business requirements is enabled. The feature teams should be highly independent, having members of all roles and skills that are required to build and maintain their microservice. Decoupling teams as relevant as decoupling software modules 15.03.2016 W. Hasselbring 30

Component vs. Middleware Reuse Component A Component B Shared Component Component A Component B Open Source Middleware Example: https://github.com/otto-de/ 15.03.2016 W. Hasselbring 31

From Monoliths towards Microservices Yesterday, at the ICPE 2016 Doctoral Symposium Holger Knoche: Sustaining Runtime Performance while Incrementally Modernizing Transactional Monolithic Software towards Microservices 15.03.2016 W. Hasselbring 32

Anti-Patterns and Solutions to Scalability of Information Systems 1. One central database Polyglott persistence 2. Distributed transactions Eventual consistency 3. Schema-based integration Loose coupling via asynchronous messaging 4. Limited capacity Continuous monitoring for elastic capacity management 5. Shared code Open source frameworks 15.03.2016 W. Hasselbring Microservices offer such solutions. Scalability for both, runtime performance and development performance (DevOps). However, be aware of the imposed costs! 33

http://eprints.uni-kiel.de/31711 Advertisements, April 12-13, 2016 Microservice Architectures and Continuous Delivery http://www.softwareforen.de/goto/sar DevOpsDays Kiel, May 12-13, 2016 http://www.devopsdays.org/events/2016-kiel/ KoSSE Day on DevOps, June 1, 2016 http://kosse-sh.de/ Symposium on Software Performance November 08 09, 2016 in Kiel (Descartes/Kieker/Palladio Days 2016) http://www.performance-symposium.org/ 15.03.2016 W. Hasselbring 34

References [Abbott& Fi sher 2015] M.L. Abbott, M.T. Fisher: The Art of Scalability. Addison-Wesley, 2nd Edition, 2015. [Bas et al. 2015] Len Bass, Ingo Weber, Liming Zhu: DevOps: A Software Architect s Perspective, Addison-Wesley 2015. [Breetzmannet al. 2014] R Bre etzmann, S. Kra us, C. Stamm: Null Toleranzfür Fehler: Wie wir auf otto.de die Qualität hoch halten, OBJEKTspektrum 4/2014, 18-23. [Conrad et al. 2005] S. Conrad, W. Hasselbring, A. Koschel, R. Tritsch: Enterprise Application Integration. SpektrumAkademischer Verlag, 2005. [Conwa y 1968] M.E. Conway: How do committees invent? Datamation, 14(4):28-31, April 1968. [Ehlers et al. 2011] J. Ehlers, A. va n Hoorn, J. Waller, W. Hasselbring: Self-Adaptive Software Sys tem Monitoring for Performance Anomaly Localization. In: 8th IEEE/ACM International Conference on Autonomic Computing (ICAC 2011). [Fittkau 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). [Fittkau 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). [Fittkau et al. 2015b] F. Fittkau, W. Hasselbring: Elastic Application-Level Monitoring for Large Software Landscapes in the Cloud. In: Proceedings of the 4th European Conference on Service-Oriented and Cloud Computing (ESOCC 2015). September 2015 [Hasselbring 2000] W. Hasselbring: Information Sys tem Integration. Communications of the ACM, 43(6): 32-36, June 2000. [Hasselbring2002] W. Hasselbring: Component-Based Software Engineering. In: Handbook of Software Engineering and Knowledge Engineering. World Scientific Publishing, Singapore, pp. 289-305, 2002. [Hasselbring 2006] W. Hasselbring: Software-Architektur - Das aktuelle Schlagwort. Informatik-Spektrum 29(1): 48-52, February 2006. [Hasselbring 2015] W. Hasselbring. Formalization of federated schema architectural style variability. Journal of Software Engineering and Applications, 8(2):72-92, Feb. 2015. [Heinrich et al. 2014] R. Heinrich, E. Schmieders, R. Jung, K. Rostami, A. Metzger, W. Hasselbring, R. Re ussner, K. Pohl: Integrating Run-Time Observations a nd Design Component Models for Cloud System Analysis, In: 9th Workshop on Models@run.time 2014. [Heinrich et al. 2015] R. Heinrich, R. Jung, E. Schmieders, A. Metzger, W. Hasselbring, R. Reussner, K. Pohl: Architectural Run-Time Models for Operator-in-the-Loop Adaptation of Cl oud Applications. In: 9th IEEE Symposium on the Ma intenance a nd Evol ution of Servi ce-oriented Systems and Cl oud-based Environments (MESOCA 2015), [Kraus et al. 2013] S. Kra us, G. Steinacker, O. Wegner: Teile und Herrsche Kl eine Systeme für große Architekturen, OBJEKTspektrum5/2013, 8-13. [Ma rwede et al. 2009] N. Ma rwede, M. Rohr, A. va n Hoorn, W. Hasselbring: Automatic Failure Diagnosis in Distributed Large-Scale Software Systems based on Timing Behavior Anomaly Correlation, In: 13th European Conference on Software Maintenance and Reengineering (CSMR 2009). [Reussner & Hasselbring 2008] R. Reussner, W. Hasselbriung: Handbuch der Software-Architektur. dpunkt.verlag, 2 nd edition, 2008. [Scheer 1994] A.-W. Scheer: Business Process Engineering, Springer-Verlag, 1994. [Sheth & Larson 1990] A. Sheth a nd J. Larson: Federated database systems for managing distributed, heterogeneous, and autonomous databases. ACM Computing Surveys, 22(3):183-236, 1990. [Stei nacker 2014] G. Steinacker: Scaling with Microservices and Vertical Decomposition. http://dev.otto.de/2014/07/29/scaling-with-microservices-and-vertical-decomposition/, 2014. [van Hoorn 2014] A. va n Hoorn: Model-Driven Online Capacity Management for Component-Based Software Systems., PhD Thesis, Faculty of Engineering, Kiel University, 2014. [van Hoorn et al. 2009] A. van Hoorn, M. Rohr, I.A. Gul, W. Hasselbring: An Adaptation Framework Enabling Resource-efficient Operation of Software Systems In: 2nd Warm Up Works hop for ACM/IEEE ICSE 2010 (WUP 2009). [van Hoorn et al. 2012] A. van Hoorn, J. Waller, W. Hasselbring: Kieker: A Framework for Application Performance Monitoring and Dynamic Software Analysis, In: 3rd joint ACM/SPEC International Conference on Performance Engineering (ICPE 2012). [Waller et al. 2015] Jan Waller, Nils Ehmke, Wilhelm Hasselbring: Including Performance Benchmarks into Continuous Integration to Enable DevOps, In: ACM SIGSOFT Software Engineering Notes, 40(2). 15.03.2016 W. Hasselbring 35