sdd service-based architecture · service-based architecture ... kiosk public ui receiving ui...

47
Service-Based Architecture Independent Consultant Hands-on So*ware Architect Published Author / Conference Speaker Mark Richards h<p://www.wmrichards.com h<ps://www.linkedin.com/in/markrichards3 @markrichardssa

Upload: lenhu

Post on 02-May-2018

219 views

Category:

Documents


2 download

TRANSCRIPT

Service-Based ArchitectureIndependentConsultantHands-onSo*wareArchitectPublishedAuthor/ConferenceSpeaker

MarkRichards

h<p://www.wmrichards.comh<ps://www.linkedin.com/in/markrichards3@markrichardssa

service-based architecture

agenda

case study

service-based vs. service-oriented architecture

modularity and microservices

service design considerations

Modularity and Microservices

agility deployment testability performance scalability simplicity reliability

moving to modularity

agility deployment testability performance scalability simplicity reliability

moving to modularity

agility deployment testability performance scalability simplicity reliability

moving to modularity

microservices architecture

microservices architecture

microservices architecturedistributed architecture

bounded context

application availability

testability

scalability

deployment

business applications?

microservices architecture

microservices architecture

agility deployment testability performance scalability simplicity reliability

moving to modularity

moving to modularity

agility deployment testability performance scalability simplicity reliability

service-based architecture

prag·mat·ic praɡˈmadik/ adjective adjective: pragmatic

1. dealing with things sensibly and realistically in a way that is based on practical rather than theoretical considerations.

service-based architecture

deployment pipeline

service-based architecture

service granularity

database scope

api layer

client requests client requests client requests

service granularityservice-based architecture

user interface layer

client requests client requests client requests

service granularityservice-based architecture

tradeoffs

service granularity

performance

service-based architecture

domain scope

service development

deployment pipelinerobustness service testing

database scope

api layer

client requests client requests client requests

service-based architecture

database scope

user interface layer

client requests client requests client requests

service-based architecture

database scope

user interface layer

client requests client requests client requests

service-based architecture

performance

database scope

feasibility

service-based architecture

tradeoffsservice couplingschema changes

deployment pipelineservice-based architecture

service-based architecturedeployment pipeline

no devops complexityno organizational change

service-based architecturedeployment pipeline

tradeoffs

lack of quick deploymentspoor continuous delivery model

Case Study

electronics recycling application

kiosk

quote accounting

reporting

item status assessment

receiving

recycling

public requests receiving department recycling and accounting

electronics recycling application

public uikiosk receiving ui recycling ui

electronics recycling application

public uikiosk receiving ui recycling ui

moving to microservices

adding microservices

user interface layer

client requests client requests client requests

service-based architecture

adding microservices

user interface layer

client requests client requests client requests

service-based architecture

adding microservices

user interface layer

client requests client requests client requests

service-based architecture

Service Design Considerations

service design considerations

user interface layer

client requests client requests client requests

?

service design considerations

direct access design api access design

module modulemodule module

module module

module module

module modulemodule module

module module

module module

service design considerations

user interface / api layer

direct access design

service design considerations

@Path("/customer/name")@Produces(MediaType.APPLICATION_JSON)public class CustomerNameResource @GET public String getName() { //logic to get name... }}

Request Modules

@Path("/customer/contact")@Produces(MediaType.APPLICATION_JSON)public class CustomerContactResource @GET public String getContactInfo() { //logic to get contact info... }}

module module

module module

module module

module modulemodule module

module module

module module

module module

service design considerations

api / access facade

user interface / api layer

api access design

module module

module module

module module

module module

service design considerations

api / access facade

user interface / api layer

api access design

mapi

msg api

mapimapimsg api

super

super

service design considerations

@Path("/customer")@Produces(MediaType.APPLICATION_JSON)public class CustomerServiceAPI {

CustomerServiceAPI.java

@Path("/contact_info") @GET public String getContactInfoRequest() { //invoke separate class to get contact info... }

...

@Path("/name") @GET public String getNameRequest() { //invoke separate class to get name... }

service design considerationsapi access design variants

service-based api domain-based api resource-based api

service design considerations

separation of concerns

api access design benefits

protocol-agnostic processingservice context / bindingservice catalog

Service-Based Architecture vs.

Service-Oriented Architecture

service-based vs. service-orientedservice-based architecture

service-oriented architecture

application scopeenterprise scopelimited integrationheterogeneous integrationno middlewaremiddleware capabilitiessingle databasemultiple databasesno service taxonomystrict service taxonomy

Software Design and Development 2017

Author of Software Architecture Fundamentals Video Series (O’Reilly)Author of Microservices Pitfalls and AntiPatterns (O’Reilly)Author of Microservices vs. Service-Oriented Architecture (O’Reilly)Author of Enterprise Messaging Video Series (O’Reilly)

IndependentConsultantHands-onSo*wareArchitectPublishedAuthor/ConferenceSpeakerwww.wmrichards.com

MarkRichards

Service-Based Architecture