SDD Service-Based Architecture · Service-Based Architecture ... kiosk public ui receiving ui...
Transcript of SDD Service-Based Architecture · Service-Based Architecture ... kiosk public ui receiving ui...
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
microservices architecturedistributed architecture
bounded context
application availability
testability
scalability
deployment
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
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
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
no devops complexityno organizational change
service-based architecturedeployment pipeline
tradeoffs
lack of quick deploymentspoor continuous delivery model
electronics recycling application
kiosk
quote accounting
reporting
item status assessment
receiving
recycling
public requests receiving department recycling and accounting
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
user interface layer
client requests client requests client requests
?
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 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