SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
The Role of Integration in Microservice Architecture
Asanka Abeysinghe
Vice President, Solutions Architecture - WSO2, Inc
me …
20+
Microservice Architecture
Pragmatic view
Our Generation
New Generation
Reality
Microservice architecture (MSA) is a
pattern for building and delivering
service-oriented applications with two
primary objectives: agility of delivery
and flexibility of deployment.
Source: Gartner
MSA is not based on all-new
architectural principles; it combines SOA
best practices with modern application
delivery tooling and organizational
disciplines.
Source: Gartner
"Micro" is a concept of scope rather than
size.
Source: Gartner
A microservice must have a single
purpose and be loosely coupled in design
and deployed independently of other
microservices.
Source: Gartner
Integration
Past, present, future
ESB Suites
Data
Integration
MOM
iPaaS
Managed Files
B2B
Integration, more
than 60% of a
Digital Platform
Smart endpoints and Dumb pipes
Routing logic or business logic that resides at the central
ESB layer has to be segregated and distributed among
the (smart) clients and (micro) services. 
 Source: Microservices by Martin Fowler
Point to point connections
Strict, dogmatic adherence to ‘smart-endpoint and dumb
pipes’ results Point-to-point(P2P) connectivity between
your services and consumers.
P2P approach is not scalable and exponentially increases
the complexity of the service interactions. 
 Source: Microservices in Practice
Few Microservice implementations
Reality / fictions
• 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

• ‘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


• 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.


Reference Architecture
Under the hood
Microservices required;
talk to each other
connect with the outside resources
Integration Microservices
Future of Integration
(another) Microservice
Container-native
container-native
rapid start < 1-2 seconds
single function
immutable
non-long running, no GC , use and kill
no request dispatching
Technology options;
• 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/CN principles
◦ High level DSL with messy expression langs
• Ballerına - ballerinalang.org.
A parallel programming language for microservices integration
Textual and graphical syntax with sequence diagram metaphor
Strongly & statically typed with powerful type system
Designed for the network with json/xml/sql/mime & http/...
Hello world - main
Hello world - Service
Key concepts
Services & Resources
Workers
Connectors & Actions
Functions
Annotations
What makes Ballerina interesting
Ballerina knows main() and service
• Run as a command line program
• Run as a network service
Ballerina knows JSON, XML and SQL-D
• All part of Ballerina type system
• Deeply unified and integrated both syntactically and
semantically
• Data transformation across all of these graphically and
textually
• Transactional data management
Ballerina knows network protocols
• HTTP, WebSockets, JMS, FTP, Files, ...
• Popular APIs: Facebook, Twitter, Gmail, LinkedIn, …
• Extensible authentication / policy support
Ballerina knows Swagger
• Ballerina services’ interface is Swagger and Ballerina
syntax, Swagger YAML syntax and graphic syntaxes are
interchangeable
• Reduces pains of interface-first design
Ballerina is naturally parellel
• Sequence diagram approach makes parallelism innate
• Think parallel first, not sequential first
Ballerina supports safety and resilience
• Highly structured error and exception handling
• Taint tracking of network delivered data
• Built-in retrying, failover, load balancing and more to
make programs more resilient to network failures
Ballerina knows Docker
• Built in ability to create Docker image with executable
Ballerina program package
• Run on any container management platform
Ballerina is open source
• Patent pending technology
• Implementation released under Apache License v2.0
◦ Fork me on GitHub: https://github.com/ballerinalang/
• Community
◦ Slack: #ballerinalang
◦ Twitter: @ballerinalang
◦ StackOverflow: #ballerinalang
◦ Developers: ballerina-dev@googlegroups.com
Ballerina is more than a language
• Graphical composer in browser / as IDE
• IDE plugins - Intellij IDEA, Visual Code, Atom, Eclipse, ...
• Testerina - testing and mocking tool
• Docerina - API doc generation tool
• Packerina - library and package management tool
Ballerina future
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: 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
http://ballerinalang.org/
Time to make integration great again !

Contenu connexe

Tendances

2013 10-wso2 con-tut-t3-1330-asanka-chintana
2013 10-wso2 con-tut-t3-1330-asanka-chintana2013 10-wso2 con-tut-t3-1330-asanka-chintana
2013 10-wso2 con-tut-t3-1330-asanka-chintana
Asanka Abeysinghe
 

Tendances (20)

The Reconstitution of Middleware with APIs V2
The Reconstitution of Middleware with APIs V2The Reconstitution of Middleware with APIs V2
The Reconstitution of Middleware with APIs V2
 
Architecting the Transformation (V1.2)
Architecting the Transformation (V1.2)Architecting the Transformation (V1.2)
Architecting the Transformation (V1.2)
 
WSO2Con'14 US - Roadmap to a Connected Business
WSO2Con'14 US - Roadmap to a Connected BusinessWSO2Con'14 US - Roadmap to a Connected Business
WSO2Con'14 US - Roadmap to a Connected Business
 
Building an Integrated Supply Chain for APIs
Building an Integrated Supply Chain for APIs Building an Integrated Supply Chain for APIs
Building an Integrated Supply Chain for APIs
 
WSO2Con'14 US - From Shadow IT to Empowered IT
WSO2Con'14 US - From Shadow IT to Empowered ITWSO2Con'14 US - From Shadow IT to Empowered IT
WSO2Con'14 US - From Shadow IT to Empowered IT
 
Data to Consumer : end to end middleware capabilities
Data to Consumer : end to end middleware capabilitiesData to Consumer : end to end middleware capabilities
Data to Consumer : end to end middleware capabilities
 
Establishing an SOA Focused Enterprise Architecture
Establishing an SOA Focused Enterprise ArchitectureEstablishing an SOA Focused Enterprise Architecture
Establishing an SOA Focused Enterprise Architecture
 
Building a Future-ready Bank
Building a Future-ready BankBuilding a Future-ready Bank
Building a Future-ready Bank
 
Pattern Driven Enterprise Architecture
Pattern Driven Enterprise ArchitecturePattern Driven Enterprise Architecture
Pattern Driven Enterprise Architecture
 
A Decentralized Reference Architecture for Cloud-native Applications V2.0
A Decentralized Reference Architecture for Cloud-native Applications  V2.0A Decentralized Reference Architecture for Cloud-native Applications  V2.0
A Decentralized Reference Architecture for Cloud-native Applications V2.0
 
2015 06-wso2 coneu-closingkeynote-asanka
2015 06-wso2 coneu-closingkeynote-asanka2015 06-wso2 coneu-closingkeynote-asanka
2015 06-wso2 coneu-closingkeynote-asanka
 
Building a Digital Enterprise: learning from experience V2
Building a Digital Enterprise: learning from experience V2Building a Digital Enterprise: learning from experience V2
Building a Digital Enterprise: learning from experience V2
 
WSO2Con-Asia-2014 : Build a Connected Business (final keynote)
WSO2Con-Asia-2014 : Build a Connected Business (final keynote)WSO2Con-Asia-2014 : Build a Connected Business (final keynote)
WSO2Con-Asia-2014 : Build a Connected Business (final keynote)
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
2013 10-wso2 con-tut-t3-1330-asanka-chintana
2013 10-wso2 con-tut-t3-1330-asanka-chintana2013 10-wso2 con-tut-t3-1330-asanka-chintana
2013 10-wso2 con-tut-t3-1330-asanka-chintana
 
Securing the Digital Double - The Path to a Trusted Digital Ecosystem
Securing the Digital Double - The Path to a Trusted Digital Ecosystem Securing the Digital Double - The Path to a Trusted Digital Ecosystem
Securing the Digital Double - The Path to a Trusted Digital Ecosystem
 
Pragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of MiddlewarePragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of Middleware
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
 
2015 06-api days-sf-apis-dbridge2iot-asanka
2015 06-api days-sf-apis-dbridge2iot-asanka2015 06-api days-sf-apis-dbridge2iot-asanka
2015 06-api days-sf-apis-dbridge2iot-asanka
 
Transform the internal it landscape with APIs
Transform the internal it landscape with APIsTransform the internal it landscape with APIs
Transform the internal it landscape with APIs
 

Similaire à The Role of Integration in Microservice Architecture (MSA)

Client Continuum Dec Fy09
Client Continuum Dec Fy09Client Continuum Dec Fy09
Client Continuum Dec Fy09
Martha Rotter
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
Majong DevJfu
 
Introducing Kafka's Streams API
Introducing Kafka's Streams APIIntroducing Kafka's Streams API
Introducing Kafka's Streams API
confluent
 

Similaire à The Role of Integration in Microservice Architecture (MSA) (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
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
 
WSO2 Auckland Workshop 2017
WSO2 Auckland Workshop 2017WSO2 Auckland Workshop 2017
WSO2 Auckland Workshop 2017
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
 
Role of integration in Digital Transformation
Role of integration in Digital TransformationRole of integration in Digital Transformation
Role of integration in Digital Transformation
 
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)
 
Building enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolioBuilding enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolio
 
2. Guidare il futuro, l'approccio di WSO2 Italia alle tendenze tecnologiche e...
2. Guidare il futuro, l'approccio di WSO2 Italia alle tendenze tecnologiche e...2. Guidare il futuro, l'approccio di WSO2 Italia alle tendenze tecnologiche e...
2. Guidare il futuro, l'approccio di WSO2 Italia alle tendenze tecnologiche e...
 
Client Continuum Dec Fy09
Client Continuum Dec Fy09Client Continuum Dec Fy09
Client Continuum Dec Fy09
 
Cloud to Edge
Cloud to EdgeCloud to Edge
Cloud to Edge
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubbleCamunda Chapter Hamburg - Surviving the hyperautomation low code bubble
Camunda Chapter Hamburg - Surviving the hyperautomation low code bubble
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Challenges In Modern Application
Challenges In Modern ApplicationChallenges In Modern Application
Challenges In Modern Application
 
Serverless: Market Overview and Investment Opportunities
Serverless: Market Overview and Investment OpportunitiesServerless: Market Overview and Investment Opportunities
Serverless: Market Overview and Investment Opportunities
 
Introducing Kafka's Streams API
Introducing Kafka's Streams APIIntroducing Kafka's Streams API
Introducing Kafka's Streams API
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 

Plus de Asanka Abeysinghe

Plus de Asanka Abeysinghe (14)

Your Business, as APIs Leveraging Abstractions to Drive the Experience Economy
Your Business, as APIs  Leveraging Abstractions to Drive the Experience Economy Your Business, as APIs  Leveraging Abstractions to Drive the Experience Economy
Your Business, as APIs Leveraging Abstractions to Drive the Experience Economy
 
Inside and Outside the Mesh: Role of APIs in the Mesh Architecture
Inside and Outside the Mesh: Role of APIs in the Mesh Architecture Inside and Outside the Mesh: Role of APIs in the Mesh Architecture
Inside and Outside the Mesh: Role of APIs in the Mesh Architecture
 
Creating a Seamless Access Experience with the Digital Double
Creating a Seamless Access Experience with the Digital Double Creating a Seamless Access Experience with the Digital Double
Creating a Seamless Access Experience with the Digital Double
 
Building a future-ready bank (whatever that future may be)
Building a future-ready bank (whatever that future may be)Building a future-ready bank (whatever that future may be)
Building a future-ready bank (whatever that future may be)
 
Crossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approachCrossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approach
 
A Decentralized Reference Architecture for Cloud-native Applications
A Decentralized Reference Architecture for Cloud-native Applications A Decentralized Reference Architecture for Cloud-native Applications
A Decentralized Reference Architecture for Cloud-native Applications
 
A Decentralized Reference Architecture for Cloud-native Applications
A Decentralized Reference Architecture for Cloud-native Applications A Decentralized Reference Architecture for Cloud-native Applications
A Decentralized Reference Architecture for Cloud-native Applications
 
A Decentralized Reference Architecture for Cloud-native Applications
A Decentralized Reference Architecture for Cloud-native ApplicationsA Decentralized Reference Architecture for Cloud-native Applications
A Decentralized Reference Architecture for Cloud-native Applications
 
Cell-based Architecture: An Emerging Architecture Pattern for Agile Integrati...
Cell-based Architecture: An Emerging Architecture Pattern for Agile Integrati...Cell-based Architecture: An Emerging Architecture Pattern for Agile Integrati...
Cell-based Architecture: An Emerging Architecture Pattern for Agile Integrati...
 
Cell-based Architecture: OReilly Software Architecture Conference NY 2019
Cell-based Architecture: OReilly Software Architecture Conference NY 2019 Cell-based Architecture: OReilly Software Architecture Conference NY 2019
Cell-based Architecture: OReilly Software Architecture Conference NY 2019
 
Cell-based Architecture : An Emerging Architecture Pattern for Agile Integration
Cell-based Architecture : An Emerging Architecture Pattern for Agile IntegrationCell-based Architecture : An Emerging Architecture Pattern for Agile Integration
Cell-based Architecture : An Emerging Architecture Pattern for Agile Integration
 
IoT Business Opportunity & Disruption
IoT Business Opportunity & Disruption IoT Business Opportunity & Disruption
IoT Business Opportunity & Disruption
 
Building a Digital Enterprise: Learning from Experience
Building a Digital Enterprise: Learning from ExperienceBuilding a Digital Enterprise: Learning from Experience
Building a Digital Enterprise: Learning from Experience
 
Platform for Digital Transformation
Platform for Digital TransformationPlatform for Digital Transformation
Platform for Digital Transformation
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

The Role of Integration in Microservice Architecture (MSA)

  • 1. The Role of Integration in Microservice Architecture Asanka Abeysinghe Vice President, Solutions Architecture - WSO2, Inc
  • 7. Microservice architecture (MSA) is a pattern for building and delivering service-oriented applications with two primary objectives: agility of delivery and flexibility of deployment. Source: Gartner
  • 8. MSA is not based on all-new architectural principles; it combines SOA best practices with modern application delivery tooling and organizational disciplines. Source: Gartner
  • 9. "Micro" is a concept of scope rather than size. Source: Gartner
  • 10. A microservice must have a single purpose and be loosely coupled in design and deployed independently of other microservices. Source: Gartner
  • 13.
  • 14.
  • 15. Smart endpoints and Dumb pipes Routing logic or business logic that resides at the central ESB layer has to be segregated and distributed among the (smart) clients and (micro) services. 
 Source: Microservices by Martin Fowler
  • 16. Point to point connections Strict, dogmatic adherence to ‘smart-endpoint and dumb pipes’ results Point-to-point(P2P) connectivity between your services and consumers. P2P approach is not scalable and exponentially increases the complexity of the service interactions. 
 Source: Microservices in Practice
  • 18. • 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

  • 19. • ‘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 

  • 20. • 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. 

  • 22. Microservices required; talk to each other connect with the outside resources
  • 23.
  • 26. container-native rapid start < 1-2 seconds single function immutable non-long running, no GC , use and kill no request dispatching
  • 27. Technology options; • 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/CN principles ◦ High level DSL with messy expression langs • Ballerına - ballerinalang.org.
  • 28. A parallel programming language for microservices integration Textual and graphical syntax with sequence diagram metaphor Strongly & statically typed with powerful type system Designed for the network with json/xml/sql/mime & http/...
  • 30. Hello world - Service
  • 31. Key concepts Services & Resources Workers Connectors & Actions Functions Annotations
  • 32. What makes Ballerina interesting
  • 33. Ballerina knows main() and service • Run as a command line program • Run as a network service
  • 34. Ballerina knows JSON, XML and SQL-D • All part of Ballerina type system • Deeply unified and integrated both syntactically and semantically • Data transformation across all of these graphically and textually • Transactional data management
  • 35. Ballerina knows network protocols • HTTP, WebSockets, JMS, FTP, Files, ... • Popular APIs: Facebook, Twitter, Gmail, LinkedIn, … • Extensible authentication / policy support
  • 36. Ballerina knows Swagger • Ballerina services’ interface is Swagger and Ballerina syntax, Swagger YAML syntax and graphic syntaxes are interchangeable • Reduces pains of interface-first design
  • 37. Ballerina is naturally parellel • Sequence diagram approach makes parallelism innate • Think parallel first, not sequential first
  • 38. Ballerina supports safety and resilience • Highly structured error and exception handling • Taint tracking of network delivered data • Built-in retrying, failover, load balancing and more to make programs more resilient to network failures
  • 39. Ballerina knows Docker • Built in ability to create Docker image with executable Ballerina program package • Run on any container management platform
  • 40. Ballerina is open source • Patent pending technology • Implementation released under Apache License v2.0 ◦ Fork me on GitHub: https://github.com/ballerinalang/ • Community ◦ Slack: #ballerinalang ◦ Twitter: @ballerinalang ◦ StackOverflow: #ballerinalang ◦ Developers: ballerina-dev@googlegroups.com
  • 41. Ballerina is more than a language • Graphical composer in browser / as IDE • IDE plugins - Intellij IDEA, Visual Code, Atom, Eclipse, ... • Testerina - testing and mocking tool • Docerina - API doc generation tool • Packerina - library and package management tool
  • 43. 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.
  • 44. When should I use Ballerina ? • Write integration microservices: 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
  • 45. http://ballerinalang.org/ Time to make integration great again !