SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Bridging Microservices, APIs and Integration
Microservices and Cloud Native Apps - SF Bay Area
Cloud Field Day Edition, Santa Clara
July 2017
Kasun Indrasiri
Director-Integration Architecture at WSO2
About Me
● Director - Integration Architecture at WSO2
● Committer/PMC Apache Synapse, an architect of WSO2 ESB
● Author ‘Beginning WSO2 ESB’, several microservices articles/white papers
WSO2
● Open source middleware company
● API Management, Integration, IAM and IOT platforms.
Evolution of Microservices
Monolithic Applications
Evolution of Microservices
SOA
Evolution of Microservices
SOA with APIs
Evolution of Microservices
Microservices
Why Microservices Compositions?
● Too many fine-grained microservices.
● Business functionalities often require to interact with more than one
(micro)service.
● Microservices typically don't publish their APIs for direct invocation.
● Brown-field reality requires ‘Integration’
○ Green fields enterprises don’t exists.
○ Hybrid usage of Microservices and monolithic architecture is quite common.
○ Need to integrate with existing legacy systems, proprietary systems, databases
and SaaS.
Glimpse of existing Microservice Implementations
● How do the existing microservice implementations handle the service
compositions/service orchestration?
Microservice - Compositions
Netflix
● The Netflix API is the “front door” to the
Netflix ecosystem of microservices.
● API provides the logic of composing calls to
all services that are required to construct a
response.
● The Netflix API is an orchestration service
that exposes coarse grained APIs by
composing fined grained functionality
provided by the microservices.
● Orchestration logic is built with Java, RxJava
Microservice - Compositions
Uber
● ‘Edge Services’ which are exposed to the
external client/mobile applications and the
service orchestration logic is burnt into the
edge service.
● Edge services are primarily implemented
on top of Node.js
Microservice - Compositions
Paypal
● The API façade layer exposes Paypal
business functionalities to various internal
and external client applications
● The orchestration logic resides in the API
façade layer and its implemented using
Groovy.
Miniservices
“A miniservice is a coarse-grained, independently deployable and independently
scalable application component.”
● “Innovation Insight for Miniservices” : Published: February 2017
○ https://www.gartner.com/doc/3615120/innovation-insight-miniservices
The ‘new’ monolith

API Gateway
● A central gateway with heavy composition
logic is becoming an anti-pattern.
● https://medium.com/netflix-techblog/engineering-trade-offs-and-
the-netflix-api-re-architecture-64f122b277dd
● Ability to develop, deploy and scale APIs
independently -> Micro-API Gateways
Pragmatic Microservices Architecture
● Microservices types with different granularities
Integration/Composite Microservices
● A composite microservice with multiple network interactions
● Create composite microservices by integrating web APIs/SaaS, legacy
systems and microservices
● API services/Edge service is also an integration microservice with some API
gateway capabilities.
● Similar to the ‘Miniservice’ concept wrt to the granularity
Technologies for building Composite/Integration
Microservices
● Frameworks based on general purpose lang. : Java, Node.js, Groovy - e.g.:
SpringBoot, Dropwizard
○ Not designed with suitable abstractions for integration/network interactions
○ Compositions cannot be illustrated graphically.
● Apache Camel and other ESBs.
○ Bulky traditional ESB architecture -> Not fully compatible with MSA principles.
○ High level DSLs with a lot of tweaks to make it a powerful programming lang. (e.g. expression
languages, properties)
● Ballerina - ballerinalang.org - Open source microservice composition
framework
● Service mesh frameworks - for Inter-service communication
Ballerina (ballerinalang.org)
● Ballerina is a new parallel programming language that is designed and
optimized for integration.
● Graphical and textual syntax which is built on top of the sequence diagram
metaphor.
● Designed for network interactions with JSON/XML/SQL/MIME and
HTTP/JMS/File/WebSockets
● Lightweight, high-performance and container native Integration runtime
● 100% open source.
Routing Service
Ballerina - Key Concepts
Components Overview
Ballerina - Features
● Network Protocols
○ HTTP/HTTP2, WebSockets, JMS, File/FTP, Databases
○ SaaS Integration - Salesforce, Twitter, Gmail, etc.
○ Proprietary and legacy connectors
● Service definition and implementation
○ Swagger, Jax-RS like service annotations
● Data Types
○ Native support for JSON, XML and SQL data
○ Graphical Type mapping
● High performance and container native
○ One of the fastest HTTP transport based on Netty
○ Minimal Startup time(< 1s), low resource consumption.
○ Built-in ability to create Docker image with executable Ballerina program package
○ Run on any container management platform
Ballerina - Future
● Ballerina 1.0 release on 2017 Q4
● Why yet another language?
○ Make it easier to consume and produce networked services and applications.
○ Ballerina has been influenced by Java, Go, C, Node, Javascript, Maven, Tomcat, and a variety
of other awesome tools.
● When should I use Ballerina?
○ Write integration microservices/miniservices: 80-20 rule
■ If 80% of your service is about integrating with other services, data and APIs then use
Ballerina.
■ If just 20% is integration then use Java / Node / Go / PHP / XYZ
○ Re-compose existing services to be API backends
○ Write integration scripts
■ Replacement for shell scripts that use curl a lot
When to use Ballerina?
Ballerina - Try it!
● DOWNLOAD v0.91 and twirl away:
○ http://ballerinalang.org/
● Source Code : https://github.com/ballerinalang/
● NOTE: Still work-in-progress. New releases every two weeks with major
features still coming along. Missing docs. A (few) bugs. Etc.!
● Managing a network of microservices and inter-service communications
● Not really a composite microservice development technology.
● Eg: Istio - https://istio.io, Linkered https://linkerd.io/
Service Mesh Solutions
● Understanding service granularities.
● Technologies for building integration microservices.
Summary
Thank You!
● kasun@wso2.com
● https://twitter.com/kasunindrasiri

Weitere Àhnliche Inhalte

Was ist angesagt?

Scalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API ManagerScalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API Manager
WSO2
 

Was ist angesagt? (20)

Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
Api Gateway
Api GatewayApi Gateway
Api Gateway
 
Building towards a Composite API Framework in Salesforce
Building towards a Composite API Framework in SalesforceBuilding towards a Composite API Framework in Salesforce
Building towards a Composite API Framework in Salesforce
 
API Gateway Use Cases​ for Kubernetes​
API Gateway Use Cases​ for Kubernetes​API Gateway Use Cases​ for Kubernetes​
API Gateway Use Cases​ for Kubernetes​
 
Scalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API ManagerScalable deployment options in WSO2 API Manager
Scalable deployment options in WSO2 API Manager
 
02 api gateway
02 api gateway02 api gateway
02 api gateway
 
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaBuilding Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
 
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATS
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATSDeploy Secure and Scalable Services Across Kubernetes Clusters with NATS
Deploy Secure and Scalable Services Across Kubernetes Clusters with NATS
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
 
Thousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/OThousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/O
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Using NATS for Control Flow in Distributed Systems
Using NATS for Control Flow in Distributed SystemsUsing NATS for Control Flow in Distributed Systems
Using NATS for Control Flow in Distributed Systems
 
CAP Theorem and Split Brain Syndrome
CAP Theorem and Split Brain SyndromeCAP Theorem and Split Brain Syndrome
CAP Theorem and Split Brain Syndrome
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Delivering: from Kafka to WebSockets | Adam Warski, SoftwareMill
Delivering: from Kafka to WebSockets | Adam Warski, SoftwareMillDelivering: from Kafka to WebSockets | Adam Warski, SoftwareMill
Delivering: from Kafka to WebSockets | Adam Warski, SoftwareMill
 
Day 1 axway apim-training
Day 1   axway apim-trainingDay 1   axway apim-training
Day 1 axway apim-training
 
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
 
Flexible, hybrid API-led software architectures with Kong
Flexible, hybrid API-led software architectures with KongFlexible, hybrid API-led software architectures with Kong
Flexible, hybrid API-led software architectures with Kong
 
Why is My Stream Processing Job Slow? with Xavier Leaute
Why is My Stream Processing Job Slow? with Xavier LeauteWhy is My Stream Processing Job Slow? with Xavier Leaute
Why is My Stream Processing Job Slow? with Xavier Leaute
 

Ähnlich wie Bridging Microservices, APIs and Integration

Ähnlich wie Bridging Microservices, APIs and Integration (20)

Integration Microservices
Integration MicroservicesIntegration Microservices
Integration Microservices
 
[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise
 
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
 
[WSO2 Summit EMEA 2020] Creating Smart Endpoints Using Integration Microservices
[WSO2 Summit EMEA 2020] Creating Smart Endpoints Using Integration Microservices[WSO2 Summit EMEA 2020] Creating Smart Endpoints Using Integration Microservices
[WSO2 Summit EMEA 2020] Creating Smart Endpoints Using Integration Microservices
 
[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices
[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices
[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices
 
WSO2 Auckland Workshop 2017
WSO2 Auckland Workshop 2017WSO2 Auckland Workshop 2017
WSO2 Auckland Workshop 2017
 
MRA AMA: Ingenious: The Journey to Service Mesh using a Microservices Demo App
MRA AMA: Ingenious: The Journey to Service Mesh using a Microservices Demo AppMRA AMA: Ingenious: The Journey to Service Mesh using a Microservices Demo App
MRA AMA: Ingenious: The Journey to Service Mesh using a Microservices Demo App
 
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference ArchitectureMRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
 
The what, why and how of knative
The what, why and how of knativeThe what, why and how of knative
The what, why and how of knative
 
[WSO2Con Asia 2018] Adaptive and Iterative Integration for Microservices and ...
[WSO2Con Asia 2018] Adaptive and Iterative Integration for Microservices and ...[WSO2Con Asia 2018] Adaptive and Iterative Integration for Microservices and ...
[WSO2Con Asia 2018] Adaptive and Iterative Integration for Microservices and ...
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
GlueCon 2015 - How REST APIs can glue all types of devices together
GlueCon 2015 - How REST APIs can glue all types of devices togetherGlueCon 2015 - How REST APIs can glue all types of devices together
GlueCon 2015 - How REST APIs can glue all types of devices together
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
Using an API Gateway for Microservices (APAC Webinar)
Using an API Gateway for Microservices (APAC Webinar)Using an API Gateway for Microservices (APAC Webinar)
Using an API Gateway for Microservices (APAC Webinar)
 
Microservices, Containers, and Beyond
Microservices, Containers, and BeyondMicroservices, Containers, and Beyond
Microservices, Containers, and Beyond
 
[WSO2Con Asia 2018] Microservices, Containers, and Beyond
[WSO2Con Asia 2018] Microservices, Containers, and Beyond[WSO2Con Asia 2018] Microservices, Containers, and Beyond
[WSO2Con Asia 2018] Microservices, Containers, and Beyond
 
Docker microservices and the service mesh
Docker microservices and the service meshDocker microservices and the service mesh
Docker microservices and the service mesh
 
Integroi oikein BizTalkilla ja Azurella
Integroi oikein BizTalkilla ja AzurellaIntegroi oikein BizTalkilla ja Azurella
Integroi oikein BizTalkilla ja Azurella
 

Mehr von Kasun Indrasiri

WSO2-ESB - The backbone of Enterprise Integration
WSO2-ESB - The backbone of Enterprise IntegrationWSO2-ESB - The backbone of Enterprise Integration
WSO2-ESB - The backbone of Enterprise Integration
Kasun Indrasiri
 

Mehr von Kasun Indrasiri (16)

Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with Kafka
 
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
Adaptive and Iterative Integration for Microservices and Cloud Native Archite...
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital Transformation
 
Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0 Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0
 
Microintegration
MicrointegrationMicrointegration
Microintegration
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Reactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaReactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-Java
 
WSO2-ESB - The backbone of Enterprise Integration
WSO2-ESB - The backbone of Enterprise IntegrationWSO2-ESB - The backbone of Enterprise Integration
WSO2-ESB - The backbone of Enterprise Integration
 
Introduction to WSO2 Integration Platform
Introduction to WSO2 Integration PlatformIntroduction to WSO2 Integration Platform
Introduction to WSO2 Integration Platform
 
WSO2 Gateway
WSO2 GatewayWSO2 Gateway
WSO2 Gateway
 
The Middleware technology that connects the enterprise
The Middleware technology that connects the enterpriseThe Middleware technology that connects the enterprise
The Middleware technology that connects the enterprise
 
API, Integration, and SOA Convergence
API, Integration, and SOA ConvergenceAPI, Integration, and SOA Convergence
API, Integration, and SOA Convergence
 
The Past, Present and Future of Enterprise Integration
The Past, Present and Future of  Enterprise IntegrationThe Past, Present and Future of  Enterprise Integration
The Past, Present and Future of Enterprise Integration
 
WSO2 ESB - The Backbone of Integration
WSO2 ESB - The Backbone of Integration WSO2 ESB - The Backbone of Integration
WSO2 ESB - The Backbone of Integration
 
Connected Retail
Connected RetailConnected Retail
Connected Retail
 

KĂŒrzlich hochgeladen

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

KĂŒrzlich hochgeladen (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïžcall girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
call girls in Vaishali (Ghaziabad) 🔝 >àŒ’8448380779 🔝 genuine Escort Service đŸ”âœ”ïžâœ”ïž
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Bridging Microservices, APIs and Integration

  • 1. Bridging Microservices, APIs and Integration Microservices and Cloud Native Apps - SF Bay Area Cloud Field Day Edition, Santa Clara July 2017 Kasun Indrasiri Director-Integration Architecture at WSO2
  • 2. About Me ● Director - Integration Architecture at WSO2 ● Committer/PMC Apache Synapse, an architect of WSO2 ESB ● Author ‘Beginning WSO2 ESB’, several microservices articles/white papers WSO2 ● Open source middleware company ● API Management, Integration, IAM and IOT platforms.
  • 7. Why Microservices Compositions? ● Too many fine-grained microservices. ● Business functionalities often require to interact with more than one (micro)service. ● Microservices typically don't publish their APIs for direct invocation. ● Brown-field reality requires ‘Integration’ ○ Green fields enterprises don’t exists. ○ Hybrid usage of Microservices and monolithic architecture is quite common. ○ Need to integrate with existing legacy systems, proprietary systems, databases and SaaS.
  • 8. Glimpse of existing Microservice Implementations ● How do the existing microservice implementations handle the service compositions/service orchestration?
  • 9. Microservice - Compositions Netflix ● The Netflix API is the “front door” to the Netflix ecosystem of microservices. ● API provides the logic of composing calls to all services that are required to construct a response. ● The Netflix API is an orchestration service that exposes coarse grained APIs by composing fined grained functionality provided by the microservices. ● Orchestration logic is built with Java, RxJava
  • 10. Microservice - Compositions Uber ● ‘Edge Services’ which are exposed to the external client/mobile applications and the service orchestration logic is burnt into the edge service. ● Edge services are primarily implemented on top of Node.js
  • 11. Microservice - Compositions Paypal ● The API façade layer exposes Paypal business functionalities to various internal and external client applications ● The orchestration logic resides in the API façade layer and its implemented using Groovy.
  • 12. Miniservices “A miniservice is a coarse-grained, independently deployable and independently scalable application component.” ● “Innovation Insight for Miniservices” : Published: February 2017 ○ https://www.gartner.com/doc/3615120/innovation-insight-miniservices
  • 13. The ‘new’ monolith
 API Gateway ● A central gateway with heavy composition logic is becoming an anti-pattern. ● https://medium.com/netflix-techblog/engineering-trade-offs-and- the-netflix-api-re-architecture-64f122b277dd ● Ability to develop, deploy and scale APIs independently -> Micro-API Gateways
  • 14. Pragmatic Microservices Architecture ● Microservices types with different granularities
  • 15. Integration/Composite Microservices ● A composite microservice with multiple network interactions ● Create composite microservices by integrating web APIs/SaaS, legacy systems and microservices ● API services/Edge service is also an integration microservice with some API gateway capabilities. ● Similar to the ‘Miniservice’ concept wrt to the granularity
  • 16. Technologies for building Composite/Integration Microservices ● Frameworks based on general purpose lang. : Java, Node.js, Groovy - e.g.: SpringBoot, Dropwizard ○ Not designed with suitable abstractions for integration/network interactions ○ Compositions cannot be illustrated graphically. ● Apache Camel and other ESBs. ○ Bulky traditional ESB architecture -> Not fully compatible with MSA principles. ○ High level DSLs with a lot of tweaks to make it a powerful programming lang. (e.g. expression languages, properties) ● Ballerina - ballerinalang.org - Open source microservice composition framework ● Service mesh frameworks - for Inter-service communication
  • 17. Ballerina (ballerinalang.org) ● Ballerina is a new parallel programming language that is designed and optimized for integration. ● Graphical and textual syntax which is built on top of the sequence diagram metaphor. ● Designed for network interactions with JSON/XML/SQL/MIME and HTTP/JMS/File/WebSockets ● Lightweight, high-performance and container native Integration runtime ● 100% open source.
  • 19. Ballerina - Key Concepts Components Overview
  • 20. Ballerina - Features ● Network Protocols ○ HTTP/HTTP2, WebSockets, JMS, File/FTP, Databases ○ SaaS Integration - Salesforce, Twitter, Gmail, etc. ○ Proprietary and legacy connectors ● Service definition and implementation ○ Swagger, Jax-RS like service annotations ● Data Types ○ Native support for JSON, XML and SQL data ○ Graphical Type mapping ● High performance and container native ○ One of the fastest HTTP transport based on Netty ○ Minimal Startup time(< 1s), low resource consumption. ○ Built-in ability to create Docker image with executable Ballerina program package ○ Run on any container management platform
  • 21. Ballerina - Future ● Ballerina 1.0 release on 2017 Q4 ● Why yet another language? ○ Make it easier to consume and produce networked services and applications. ○ Ballerina has been influenced by Java, Go, C, Node, Javascript, Maven, Tomcat, and a variety of other awesome tools. ● When should I use Ballerina? ○ Write integration microservices/miniservices: 80-20 rule ■ If 80% of your service is about integrating with other services, data and APIs then use Ballerina. ■ If just 20% is integration then use Java / Node / Go / PHP / XYZ ○ Re-compose existing services to be API backends ○ Write integration scripts ■ Replacement for shell scripts that use curl a lot
  • 22. When to use Ballerina?
  • 23. Ballerina - Try it! ● DOWNLOAD v0.91 and twirl away: ○ http://ballerinalang.org/ ● Source Code : https://github.com/ballerinalang/ ● NOTE: Still work-in-progress. New releases every two weeks with major features still coming along. Missing docs. A (few) bugs. Etc.!
  • 24. ● Managing a network of microservices and inter-service communications ● Not really a composite microservice development technology. ● Eg: Istio - https://istio.io, Linkered https://linkerd.io/ Service Mesh Solutions
  • 25. ● Understanding service granularities. ● Technologies for building integration microservices. Summary
  • 26. Thank You! ● kasun@wso2.com ● https://twitter.com/kasunindrasiri