In this slide deck, WSO2 Director of Integration Architecture discusses conventional centralized integration, the role of integration in microservices, microservice integration patterns and hybrid architecture with centralized vs. decentralized integration for brownfield enterprises.
View video: https://wso2.com/library/conference/2018/07/wso2con-usa-2018-adaptive-and-iterative-integration-for-microservices-and-cloud-native-architectures/
2. ● Integration and digital transformation
● Role of integration in cloud native architectures
● Microservice integration patterns
● Realizing cloud native and microservices architecture with
WSO2 Integration Platform
Overview
5. Cloud Native
Applications
● Cloud native apps are composed
of microservices or serverless
functions
● Packaged in containers
● Runs on a Continuous Delivery
model
● Adaptive governance
8. From ESB to Smart
Endpoints and
Dumb Pipes
Microservices architecture
fosters the elimination of a
central ESB and creates
smart endpoints connected
via dumb pipes
9. Virtual
Service 1
● Centralized ESB layer provides the integration and network
communication and governance capabilities
ESB as the Central Integration Bus
Service A
Virtual
Service 2
Virtual
Service 3
Service B Service C Service D
ESB
Consumers
10. ● Microservices code has to take care of all network
communication and governance of services
Smart Endpoints and Dumb Pipes
Microservice
X
Microservice
P
Microservice
Y
Microservice
z
Microservice
Q
Microservice
R
Microservice
S
Java
Consumers
Node.js Go
13. Active Composition/Orchestration Pattern
Synchronous/request-response communication
Consumer 1
API Service P API Service Q API Service R API Service S
Consumers
Consumer 2 Consumer 3
μ Service A
Proprietary
& Legacy
Systems
Web API /
SaaS
API Services/
Edge Services
Composite Service/
Integration Services
Core Services/
Atomic Services μ Service I
μ Service H
μ Service J
μ Service E
μ Service C
μ Service D
μ Service G
μ Service B
μ Service F
14. Reactive Composition/Choreography Pattern
μ Service A μ Service B μ Service C
Event Bus
Application
Asynchronous event-driven communication
Produce Consume
Produce Consume
Produce Consume
Produce Consume
15. Active
or
Reactive?
● Active Composition
○ Ideal for interactive services
○ Service are NOT autonomous
● Reactive Composition
○ Ideal for asynchronous
interactions
○ Composition logic is opaque
16. Hybrid of Active and Reactive Composition
Consumer 1
API Service P API Service Q API Service R API Service S
Consumers
Consumer 2 Consumer 3
μ Service A
Event Bus
Proprietary
& Legacy
Systems
Web API /
SaaS
API Services/
Edge Services
Composite Service/
Integration Services
Core Services/
Atomic Services μ Service I
μ Service H
μ Service J
μ Service E
μ Service C
μ Service D
μ Service G
μ Service B
18. Isolate the legacy and modern systems by placing an
anti-corruption layer between them
Anti-Corruption Layer Pattern
Data
Store
Data
Store
Data
Store
Data
Store
Microservice
Data
Store
Subsystem B
Anti-
Corruption
LayerMicroservice
Microservice
Subsystem A
19. ● Incrementally replace specific pieces of functionality with new
applications and services
● Create a façade that intercepts requests going to the backend
legacy system
Strangler Pattern
Legacy
Modern
Strangler Façade
Early Migration
Modern
Legacy
Strangler Façade
Later Migration
Modern
Migration Complete
20. Building Microservices Integration with WSO2
Consumer 1
API Service P API Service Q API Service R API Service S
Consumers
Consumer 2 Consumer 3
μ Service A
μ Service B
μ Service F
Event Bus
Proprietary
& Legacy
Systems
Web API /
SaaS
API Services/
Edge Services
Composite Service/
Integration Services
Core Services/
Atomic Services
μ Service I
μ Service H
μ Service J
μ Service E
μ Service C
μ Service D
MicroESB
21. Service Mesh
● Microservices code has to take care of all network
communication and governance of services
● Hence such capabilities can be offloaded to a separate layer
Microservice A
Network Stack
Service Mesh
Sidecar
Microservice B
Network Stack
Service Mesh
Sidecar
Control Plane
HTTP1.x.HTTP2.gRPC,TCP
Application Network
Functions
Business
Logic
Primitive
Network
Functions Data Plane
22. Service Mesh - Guidelines
● Service Mesh is only meant for commodity features
○ Interservice communication resiliency
○ Governance of services: observability, security, throttling
● Never implement business logic at the service mesh layer!
● Data plane more or less supports synchronous
communication
23. Conclusion
● Cloud native shift is inevitable
● Adaptive and iterative approach is required
● Use a hybrid set of microservices integration patterns