Microservices Beyond the Hype. SATURN San Diego May 3, 2016 Paulo Merson

Similar documents
BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture

High Availability Distributed (Micro-)services. Clemens Vasters Microsoft

Service Mesh and Microservices Networking

Hi! NET Developer Group Braunschweig!

SUMMARY LAYERED ARCHITECTURE

Connecting your Microservices and Cloud Services with Oracle Integration CON7348

Service-Oriented Architecture

Merging Enterprise Applications with Docker* Container Technology

Sentinet for BizTalk Server SENTINET

Microservices with Red Hat. JBoss Fuse

Software Design COSC 4353/6353 DR. RAJ SINGH

App Servers NG: Characteristics of The Next Generation Application Servers. Guy Nirpaz, VP R&D and Chief Architect GigaSpaces Technologies

Domain Driven Design Kevin van der Vlist

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

Sentinet for BizTalk Server VERSION 2.2

Open Cloud Engine - An Open Source Cloud Native Transformer

CLUSTERING HIVEMQ. Building highly available, horizontally scalable MQTT Broker Clusters

Architectural Code Analysis. Using it in building Microservices NYC Cloud Expo 2017 (June 6-8)

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies.

There is no such thing as a microservice!

AGILE DEVELOPMENT AND PAAS USING THE MESOSPHERE DCOS

SOA with Web Services in Practice. SOA with Web Services

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup

Overview SENTINET 3.1

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

Reactive Systems. Dave Farley.

Introduction to Grid Technology

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Network Programmability with Cisco Application Centric Infrastructure

Grid Computing with Voyager

Cloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved.

The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne

Introduction to software architecture Revision : 732

Open Cloud Engine - An Open Source Cloud Native Platform

Applying Microservices in Webservices, with An Implementation Idea

Oracle WebLogic Server 12c: Administration I

Microservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan

Software Architecture Patterns

Enabling Low-friction Continuous Deployment via Workflows and Containers

RELIABILITY & AVAILABILITY IN THE CLOUD

Service Lifecycle and Versioning SOA 2/2559

SOA Architect. Certification

DELIVERING WITH MICROSERVICES HOW TO ITERATE TOWARDS SOPHISTICATION

1 Software Architecture

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Services Oriented Architecture and the Enterprise Services Bus

Sentinet for Windows Azure VERSION 2.2

YOUR APPLICATION S JOURNEY TO THE CLOUD. What s the best way to get cloud native capabilities for your existing applications?

CAS 703 Software Design

How to Leverage Containers to Bolster Security and Performance While Moving to Google Cloud

Modular Java Applications with Spring, dm Server and OSGi

Scalable Microservice Based Architecture For Enabling DMTF Profiles

Chapter 13: Architecture Patterns

Reiterating the SOA Vision

Clean Architecture Patterns, Practices, and #DevSum17

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli

API, DEVOPS & MICROSERVICES

AdvOSS AAA: Architecture, Call flows and implementing emerging business use cases

Containerized Microservices architecture M.V.L.N.Venugopal

Microservices and Container Development

Container in Production : Openshift 구축사례로 이해하는 PaaS. Jongjin Lim Specialist Solution Architect, AppDev

Think Small: API Architecture For The Enterprise

Reference Architecture for Agility, Version-0.9

A Reliability-Aware Framework for Service-Based Software Development

Are Microservices SOA Done Right?

Top five Docker performance tips

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation.

Chapter 2 Distributed Information Systems Architecture

9 Reasons To Use a Binary Repository for Front-End Development with Bower

Microservice Powered Orchestration

Enabling Cloud Adoption. Addressing the challenges of multi-cloud

Application Architectures, Design Patterns

Serverless and APIs: Rethinking Curriculum in Higher Education. Munir Mandviwalla and Jeremy Shafer Temple University

Architecting for Scale

Reactive Microservices Architecture on AWS

Deploying and Operating Cloud Native.NET apps

AN EVENTFUL TOUR FROM ENTERPRISE INTEGRATION TO SERVERLESS. Marius Bogoevici Christian Posta 9 May, 2018

Clean Architecture Patterns, Practices, and #sddconf

OSGi on the Server. Martin Lippert (it-agile GmbH)

(9A05803) WEB SERVICES (ELECTIVE - III)

ONAP Micro-service Design Improvement. Manoj Nair, NetCracker Technologies

Flip the Switch to Container-based Clouds

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

Rapid Large-Scale SOA - Connected Products at Leapfrog Enterprises

SDN controller: Intent-based Northbound Interface realization for extended applications

LOG8430: Architecture logicielle et conception avancée

Architectural patterns and models for implementing CSPA

End-to-End Cloudification of Mobile Telecoms. The MCN Consortium Presenter: Andy Edmonds ZHAW

Chapter 1: Distributed Information Systems

<Insert Picture Here> Click to edit Master title style

Chapter 4. Fundamental Concepts and Models

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners:

monolith to micro-services? event sourcing can help Doug

Sentinet for Microsoft Azure SENTINET

Securing Modern API and Microservice Based Applications by Design A closer look at security concerns for modern applications Farshad Abasi / Forward

How EDA extends SOA and why it is important

Maximum Availability Architecture

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

Transcription:

Microservices Beyond the Hype SATURN San Diego May 3, 2016 Paulo Merson

Our goal Try to define microservice Discuss what you gain and what you lose with microservices 2

Defining Microservice Unfortunately there s no consensual definition But here s a widely referenced attempt to define it: The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. [Lewis 2014] 3

But from what I ve seen out there, microservices are more than that 4

Microservices: the hype and the bloated features Based on a web search, one might think microservices should: Have few lines of code (some say 10-100 LOC) Be developed by a team that can be fed by 1 or 2 pizzas Offer coarse-grained operations (though microservices are fine-grained services) Not participate in complex service compositions Be monitored by sophisticated logging and monitoring infrastructure Be developed by teams split around business capabilities per Conway's law Be run by the team who built them Manage their own databases Match DDD bounded contexts Be dynamically discovered Be small enough to be rewritten in two weeks 5

If it s not microservices, it is To understand the new we need to look back to the old: The monolithic model 6

The monolith All services within the application (or some equivalent boundary) are packaged together into one deployment artifact This deployment artifact or deployment bundle is the monolith Any small change to the application requires building and redeploying the entire monolith This approach has been the norm since the beginning of multi-tier Web applications and SOA 7

The microservice The microservices style dictates that the deployment unit should contain only one service or just a few cohesive services This deployment constraint is the distinguishing factor [Merson 2015a] microservices 8

Monolithic and microservices - variations Services deployed separately but still monolithic Containerized microservices 9

Microservice design Though the style doesn t mandate specific technologies, microservices typically communicate via: HTTP (following the REST style) Asynchronous messages/events Microservices should be designed according to SOA design guidelines Defining the functional context of a microservice is critical Microservice is not a good alternative in all cases As always the architect should weigh the tradeoffs against the requirements 10

Microservices benefits* (1) Deployability More agility to roll out new versions of a service due to shorter build + test + deploy cycles Flexibility to employ service-specific security, replication, persistence, and monitoring configurations Scalability Each microservice can be scaled independently using pools, clusters, and grids The deployment characteristics make microservices a great match for the elasticity of the cloud * Source: Microservices Beyond the Hype: What You Gain and What You Lose [Merson 2015b] 11

Microservices benefits (2) Modifiability More flexibility to use new frameworks, libraries, data sources, and other resources Microservices are loosely coupled, modular components accessible only via their contracts Dynamic discovery and binding via a registry is sometimes used for location transparency Availability Rolling out a new version of a microservice requires little downtime, whereas in the monolith it requires a slower restart of the entire monolith 12

Microservices benefits (3) Management Application development effort is divided across teams that are smaller and work more independently Design autonomy The team has freedom to employ different languages, frameworks, and patterns to design and implement each microservice The team can redesign and redeploy each microservice independently Reliability A fault affects that microservice alone and its consumers, whereas in the monolithic model a service fault may bring down the entire monolith 13

Microservices challenges (1) Deployability Deployment becomes more complex with many jobs, scripts, transfer areas, and configuration files for deployment Performance Services more likely need to communicate over the network, whereas services within the monolith may benefit from local (in-process) calls If the microservice uses dynamic discovery, the registry lookup is a performance overhead Memory use Several classes and libraries are often replicated in each microservice bundle, and the overall memory footprint increases 14

Microservices challenges (2) Modifiability Mechanisms to improve autonomy, such as eventual consistency and asynchronous calls, add design complexity to microservices Changes to the contract more likely impact consumers deployed elsewhere Testability In the monolithic model, consumers are more likely to be within the monolith and will be rolled out in lockstep with the service Automated tests are harder to set up and run because they may span different microservices on different runtime environments Management The application operation effort increases because there are more deployed components, log files, and connections to oversee 15

Microservices challenges (3) Availability If you use a registry for dynamic discovery, unavailability of the registry may compromise the consumer-service interaction Runtime autonomy In the monolith, the overall business logic is collocated, whereas with microservices the logic is spread across microservices All else being equal, a microservice is more likely to interact with other microservices over the network that interaction decreases autonomy If the interaction between microservices involves changing data, the need for a transactional boundary further compromises autonomy 16

How to avoid autonomy issues? There are different techniques to avoid runtime autonomy issues with microservices: Data replication plus eventual consistency Event-driven architecture (EDA) Command query responsibility segregation (CQRS) Aligning microservices with DDD bounded contexts These techniques are not inherent to microservices They can prevent autonomy issues that could arise from splitting services in a monolith into microservices 17

For more information [Fowler] [Lewis 2014] [Merson 2015a] [Merson 2015b] Fowler, M. Microservice Trade-Offs. 2015. Available at http://martinfowler.com/articles/microservice-trade-offs.html Lewis, J.; & Fowler, M. Microservices. 2014. Available at http://martinfowler.com/articles/microservices.html Merson, P. Defining Microservices. SATURN blog, 2015. Available at https://insights.sei.cmu.edu/saturn/2015/11/defining-microservices.html Merson, P. Microservices Beyond the Hype: What You Gain and What You Lose. SATURN blog, 2015. Available at https://insights.sei.cmu.edu/saturn/2015/11/microservices-beyond-thehype-what-you-gain-and-what-you-lose.html [Merson 2016] P. Merson. Microservice design pattern. SOAPatterns.org, April 2016. Available at: http://soapatterns.org/design_patterns/microservices [Newman 2015] Newman, S. Building Microservices. O Reilly Media, 2015. [Richardson 2015] Richardson, C. Pattern: Microservices Architecture. Available at: http://microservices.io/patterns/microservices.html 18

Questions now or later Paulo Merson pmerson@acm.org 19

BACKUP SLIDES 20

Microservice FAQ (1) 1. Is microservice an architecture style/pattern? Yes, and it has been described as such [Richardson 2015, Merson 2016]. 2. What is MSA? It s microservices architecture, but the acronym didn t stick. 3. Can I use SOAP in microservices? In general, tools, frameworks, and literature around microservices consider http (REST) and event-driven messaging as the options, not SOAP. 4. Can I use platform specific component technologies in microservices? Same as previous answer. 21

Microservice FAQ (2) 5. Are microservices SOA done right? No. First off, microservice is not the right solution in all cases. Second, many people were not successful with SOA but now we know how to do it right ask me how. 6. Do I need an API gateway to use microservices? No, the API gateway is optional. 7. Can I use an API gateway if I am not doing microservices? Yes, it s useful if you have public REST-based APIs regardless of whether they follow the microservice style. 8. What s an API gateway? See next slide. 22

API gateway (1) API gateway has recently been added to the SOA landscape This kind of product emerged from the increasing prominence of APIs as a means of doing business with an organization API gateway is an example of API management software An API gateway is middleware that intercepts all calls to your publicly visible services Thus it centralizes access to your APIs These APIs are basically REST services API gateways also offer several features, many of them found in ESBs, such as Message transformation and protocol bridging Message routing Traffic monitoring 23

API gateway (2) The API gateway proxies all calls from diverse client apps to your public APIs 24