35
To ESB or not to ESB Ross Mason MuleSoft

To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

To ESB or not to ESB

Ross Mason

MuleSoft

Page 2: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

About Me

Page 3: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Agenda

When to When to When not When not Some Some When to ESB

When to ESB

When not to ESB

When not to ESB

Some optionsSome

options

Page 4: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend
Page 5: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

“Vendor” ESB

Page 6: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Reality Check

Page 7: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Know your Architecture

Page 8: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Architecture Checklist

� Identify systems and processes

�Create an integration profile

�Map data flows

�Set performance requirements

�Define security requirements

� Identify redundancy requirements

�Quantify QoS requirements

Page 9: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Bling, innit

Page 10: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

To ESB

�Numerous integration points

�Need to grow the architecture

�More that one protocol

�Mediation requirements

� Scalability, Management, Monitoring,

Transformation and Security requirements

� Strategic Projects

Page 11: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Not to ESB

“We need access to a message queue”

Page 12: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Not to ESB: RDD

Page 13: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Not to ESB: YAGNI

Page 14: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

I’ll buy your

software

cha-ching

Not to ESB: GOLF

Page 15: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

What are the options?

Page 16: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Web Services• Pros:

– Language, platform, and transport agnostic

– Mediation support

– Built-in error handling (faults)

– Extensibility– Extensibility

• Cons:

– heavy-weight

– verbose

– Hard to develop, requires tools

– Sprawling WS-* standards

Page 17: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

REST

• Pros:

– Language and platform agnostic

– Small learning curve, less reliance on tools

– Concise & Clean

• Cons:• Cons:

– Assumes a point-to-point communication

– Lack of standards support for security, policy, reliable

messaging, etc.

– Tied to the HTTP transport model

Page 18: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

• Pros

– Quick solution

– Tailored to the specific problem

• Cons

Custom code

– Need to maintain more code

– Difficult to change over time

– Need to build security, management, reliability

– Slow to add new capabilities

– No core business activity

18

Page 19: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Integration Scenarios

Page 20: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Simple Integration

Frontend

(web app)

Backend Service

REST / Web Services

Page 21: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Partner Data integration

Partner

B2B Services

Partner

Web Services

Page 22: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Public API

Services

Public API

Web Client Web Client

REST

Page 23: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Mixed Integration

Frontend

(web app)

Backend Service

ESB

Backend ApplicationBackend Application

REST JMS FTP

Page 24: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

ESB Integration

Inventory

Fulfillment

Inventory

Bidding Order Service

Supplier 1 Supplier 2 Supplier 3

order from

Supplier 3

request bids

ESB

Fulfillment

Service

Bidding

Service

Order Service

Inventory

ServiceInventory

Purchasingcreate supply bid bid selected place order

out of stock

request items

Page 25: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

iBeans

easy service integrations

Page 26: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Foundation

• Abstraction for the complexity of SOA

• Open source framework

• Lineage, pedigree of Mule ESB

• 15+ iBeans ready for production

• “Micro-light ESB”

Page 27: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Communication

• Reusable Java modules

• Bean interface to networked services

– Not just SOAP, REST

• Communications channels

– Ajax from JavaScript

– RPC

– Java

Page 28: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Use cases

• Situations where an ESB is too heavy

• Social media app integrations

• Easy cross-webapp reuse

• Point-to-point integration

• Seamless migration path to Mule ESB

Page 29: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

GPS Walker

demo

Page 30: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

http://10.0.17.238:8080/gpswalk

er/cursor.htmler/cursor.html

Page 31: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Overview

Page 32: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

The pieces

Runtime Container: Tomcat, Tcat, (Mule)

iBeans Runtime

Channels: HTTP, SMTP, IMAP,

REST, JDBC, JMS, XMPP, FTP

Transform and BindingsScheduler

Formats: JSON, RSS, ATOM,

XML, SOAP

Application Annotations

Transform and BindingsScheduler

Web apps

appswebyourconsole

iBean Objects

Page 33: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Summary

• Technology selection must be driven by

architecture

• ESBs are good for integrations with multiple

participantsparticipants

• REST/WS are better suited to other integration

problems

• iBeans offers a point-to-point to ESB migration

path

Page 34: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

Questions?

Page 35: To ESB or not to ESB - QCon London 2020 · Web Services. Public API Services Public API Web Client Web Client REST. Mixed Integration Frontend (web app) Backend Service ESB Backend

• Embedding Mule in a web application not

usually a good idea

ESB / Integration platform

Web App Web App Web App

Consumes services from