Integration of APIs, services, data, and systems have long been the most challenging yet most essential requirement in software application development. These disparate applications were integrated using point to point style, and later with the ESB (Enterprise Service Bus) style alongside the SOA.
The integration logic is being implemented as part of the service logic and most of the integration capabilities that you get as part of ESB are now need to be implemented as part of the service logic.
This deck covers, the importance of application integration in microservices and cloud-native architecture, how microservices and cloud-native applications are integrated, service Mesh vs Application Integration, key application integration requirements, and patterns, cloud native technologies for application integration and WSO2 offerings in cloud native integration space.
2. INTEGRATION SUMMIT 2019
Cloud Native?
● Cloud native apps are composed of microservices or serverless functions
● Packaged in containers.
● Runs on a Continuous Delivery model.
● Dynamically Managed in Cloud
3. INTEGRATION SUMMIT 2019
Application Integration
● Cloud native application
○ A set of interconnected microservices or serverless functions
Source : https://www.jitterbit.com/blog/integrating-the-modern-hybrid-cloud-architecture/
4. INTEGRATION SUMMIT 2019
Centralized/ESB-style Integration
● Using an ESB for integration.
● API Gateway to expose your APIs
Data
API Management
ESB
Applications and
Services
Systems
5. INTEGRATION SUMMIT 2019
Microservices - ‘Smart-endpoints and Dumb Pipes’
Integration is everywhere!
API Management
μ service-A μ service-B
Event Broker
μ service-C μ service-F
μ service-D
Proprietary &
Legacy System
Web
APIs/SaaS
μ service-E
7. INTEGRATION SUMMIT 2019
Integrating Microservices is hard!
● Inter-service communication is essential.
● Capabilities that ESB provided has to be implemented at each service
level.
● Integration complexity is not reduced but dispersed across services.
● Proliferation of services makes it even more harder.
8. INTEGRATION SUMMIT 2019
Service Mesh vs Integration
● Service Mesh : An application network infrastructure to build cloud native
apps.
Source : https://www.infoq.com/minibooks/service-mesh/
10. INTEGRATION SUMMIT 2019
Cloud Native Integration
Consumer 1
API Service P API ServiceQ API ServiceR API ServiceS
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
API
Management
API Gateway
12. INTEGRATION SUMMIT 2019
Abstractions for Inter-Service communication
● Supporting high-level abstractions for inter-service communication.
● Support for multiple protocols and standards.
○ HTTP, gRPC, GraphQL, Web Sockets, Web Hooks, SOAP
○ Kafka, NATS, AMQP
○ FTP, SFTP
○ TCP, Rsocket
● Integrating with SaaS, proprietary and legacy systems
○ e.g. Salesforce, SAP, Amazon S3, SQS
13. INTEGRATION SUMMIT 2019
Service Composition Patterns
● Service Orchestrations/Active Compositions
● Service Choreography/Reactive Compositions
● Event Sourcing
● CQRS
14. INTEGRATION SUMMIT 2019
Kubernetes Native
● Runs natively within Docker and K8s.
● Fast startup time and low resource consumption.
● Application specific abstraction for Kubernetes
○ Operator to manage the application on K8s.
○ Stateful apps.
15. INTEGRATION SUMMIT 2019
Enabling common Integration Patterns
● Forking, Joining, Splitting, Looping, and Aggregation of messages or
service calls.
● Some of the Enterprise Integration Patterns (EIPs) are now implemented
at each smart endpoint.
Source : https://www.enterpriseintegrationpatterns.com/patterns/messaging/ComposedMessagingWS.html
16. INTEGRATION SUMMIT 2019
Resiliency
● Network is unreliable.. Now and forever!
● Not all apps runs on top of a service mesh
● Resiliency may be coupled to the business logic of the service
● Patterns
○ Timeout, Retry, Circuit Breaker, Fail-fast, Bulkhead
Source : https://martinfowler.com/bliki/CircuitBreaker.html
17. INTEGRATION SUMMIT 2019
Message Delivery Semantics
● Store and forward.
● Persistent delivery.
● Idempotent messaging
Source : https://medium.com/@jaykreps/exactly-once-support-in-apache-kafka-55e1fdd0a35f
18. INTEGRATION SUMMIT 2019
Complex Type Conversions
● Message type mapping and transformations.
● Native support for message formats : JSON, XML, ProtoBuf, Avro
● Implemented graphically or programmatically.
19. INTEGRATION SUMMIT 2019
Event Oriented Architecture and Streams
● Consume a stream of events and produce a resulting event stream
● Event store backbone - Kafka, NATS
● Streaming SQL
Source : https://kafka.apache.org/
20. INTEGRATION SUMMIT 2019
Workflows and SAGA
● Long running processes stateful processes.
● Compensation and distributed transactions - SAGA
Source :Microservices for the Enterprise
23. INTEGRATION SUMMIT 2019
Ballerina Integrator
A powerful, simple-to-learn,
code-driven approach to
programmingintegrations
based on the Ballerina
programming language.
WSO2 Enterprise Integrator - Components
Micro Integrator
An intuitive low-code
configuration driven
integrator with a graphical
drag and drop designer
based on the same WSO2
EI/ESB runtime.
Streaming Integrator
Streaming Integrator can
connect any event stream to
any destination and act on
streaming data using Micro
Integrator.
24. INTEGRATION SUMMIT 2019
Ballerina Integrator
● A powerful, simple-to-learn, code-drivenapproach to programming integrations based on
the Ballerina.
● Ballerina Integrator
○ Ballerina + Connectors + Integration templates/samples +Documentation + Dev tools
25. INTEGRATION SUMMIT 2019
Micro Integrator
• Based on the same WSO2 EI/ESB
runtime.
• Low-code, config-driven and
graphical data flow-driven
integration.
• Cloud native, K8s operator
• Composition
– All capabilities of EI 6.5 except
Management console and
clustering.
• Backward compatible with existing EI
projects.
26. INTEGRATION SUMMIT 2019
Streaming Integration
● A cloud-native, lightweight streaming integrator that understands
streaming SQL queries to capture, analyze, process, and act on events in
real-time.
27. INTEGRATION SUMMIT 2019
Conclusion
● Application integration is everywhere.
● Service Mesh is not for application integration.
● Selecting the best of breed technologies for application integration is
vital.