Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise

120 views

Published on

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.

Want to know if we'll be heading your way next? Find out here: https://wso2.com/events/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise

  1. 1. Cloud-native Integration for the Enterprise Vanjikumaran Sivajothy
  2. 2. Becoming a cloud native enterprise
  3. 3. I want to be “Cloud Native” https://www.appivo.com/2018-technology-predictions-part-3/
  4. 4. 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
  5. 5. 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/
  6. 6. Centralized/ESB-style Integration ● Using an ESB for integration. ● API Gateway to expose your APIs Data API Management ESB Applications and Services Systems
  7. 7. 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
  8. 8. Reinventing P2P? ● Back to ‘point-to-point’ integration again?
  9. 9. Challenges • Going back to point to point communications • Service routing, security, caching etc… impl. at every service • Integration complexity is not reduced but dispersed across services. • Proliferation of services makes it even more harder. • OK for 1 or 2! But hard for 100s of services • Increased code complexity of microservices
  10. 10. Service Mesh vs Integration ● Service Mesh : An application network infrastructure to build cloud native apps. Source : https://www.infoq.com/minibooks/service-mesh/
  11. 11. ServiceMesh! • Good at setting infrastructure policies – mTLS, traffic routing, load balance, service tracing • May not be the best solution for app integration • Application integration problems still remain
  12. 12. Integration problems that go beyond a service mesh
  13. 13. Application integration considerations https://docs.microsoft.com/en-us/azure/architecture/patterns/
  14. 14. Cloud Native Integration
  15. 15. Cloud Native Integration 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 API Management API Gateway
  16. 16. Features of a Cloud Native Integration Framework
  17. 17. 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
  18. 18. Service Composition Patterns ● Service Orchestrations/Active Compositions ● Service Choreography/Reactive Compositions ● Event Sourcing ● CQRS
  19. 19. 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.
  20. 20. 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
  21. 21. 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
  22. 22. Message Delivery Semantics ● Store and forward. ● Persistent delivery. ● Idempotent messaging Source : https://medium.com/@jaykreps/exactly-once-support-in-apache-kafka-55e1fdd0a35f
  23. 23. Complex Type Conversions ● Message type mapping and transformations. ● Native support for message formats : JSON, XML, ProtoBuf, Avro ● Implemented graphically or programmatically.
  24. 24. 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/
  25. 25. Workflows and SAGA ● Long running processes stateful processes. ● Compensation and distributed transactions - SAGA Source :Microservices for the Enterprise
  26. 26. How WSO2 helps?
  27. 27. WSO2 Enterprise Integrator 7.0 ● An API-centric, cloud-native integration platform.
  28. 28. WSO2 Enterprise Integrator 7.0 ● An API-centric, cloud-native integration platform.
  29. 29. Modernize ESB-like use cases - Micro-integrator • Reduced footprint runtime • Fast startup time • Functionally identical ESB runtime • Integration Studio – In-built micro-integrator runtime – Develop, build and deploy into containers – Integrated debugging
  30. 30. Ballerina Integrator A powerful, simple-to-learn, code-driven approach to programming integrations 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.
  31. 31. Ballerina Integrator ● A powerful, simple-to-learn, code-driven approach to programming integrations based on the Ballerina. ● Ballerina Integrator ○ Ballerina + Connectors + Integration templates/samples + Documentation + Dev tools
  32. 32. 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.
  33. 33. Streaming Integration ● A cloud-native, lightweight streaming integrator that understands streaming SQL queries to capture, analyze, process, and act on events in real-time.
  34. 34. Conclusion ● Application integration is everywhere. ● Service Mesh is not for application integration. ● Service mesh doesn’t completely solve app integration problems. ● Use the right tools and technology ● Don’t underestimate human factor Takes time. Start small ● Selecting the best of breed technologies for application integration is vital.
  35. 35. Questions?
  36. 36. THANK YOU wso2.com

×