solving integration problems with jboss fuse...development & tooling jboss developer studio...

60
Solving Integration Problems With JBoss Fuse LEARN. NETWORK. EXPERIENCE OPEN SOURCE redhat.com/summit Scott England Sullivan - Principle Integration Architect Peter Blinstrubas - Middleware Solutions Architect

Upload: others

Post on 26-May-2020

43 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Solving Integration ProblemsWith JBoss Fuse

LEARN. NETWORK. EXPERIENCE OPEN SOURCE

redhat.com/summit

Scott England Sullivan - Principle Integration ArchitectPeter Blinstrubas - Middleware Solutions Architect

Page 2: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Agenda

● Customer’s Problem● Fuse In 0 to 60 MPH ● Architecture ● Steps to Multitenacy● What’s Next?● Conclusion

Page 3: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Customer Quote

“Camel is the right way to do integration!”

Page 4: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

The Story

● Healthcare Company

– Modernize SOA – Gain Agility– Reduce Cost– Monolith to

Multitenancy

Page 5: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Customer’s Problem

Page 6: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Problem

Migrate from a COTS product while maintaining operational parity and the capability to evolve into multitenancy.

Page 7: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Fuse in 0 to 60 MPH

Page 8: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

JBoss Fuse ArchitectureJBoss Fuse Architecture

Container

Asynchronous Messaging

Integration FrameworkWeb Services Framework

Apache CXF

Apache Active-MQ

Container Management Clustering & Deployment

Apache Camel

Apache karaf

Fabric8

Management &

Monitoring

Development&

Tooling

JBoss Developer

Studio

JBoss Operations

Network

FuseManagement

Console

Fuse Cartridge A-MQ Cartridge

Page 9: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Middleware Integration

● Small-footprint messaging system

● Built for interoperability:

● persistence, clustering, failover, security,etc

JBOSS A-MQ

Apache Active MQ

Apache Karaf +Fuse Fabric

MANAGEMENT WITH JON & JBOSS MANAGEMENT CONSOLE

DEVELOPMENT WITH JBDSWITH FUSE IDE

JBOSS FUSE

Services (Apache CXF)

Integration (Apache Camel)

Messaging (JBoss A-MQ)

MANAGEMENT WITH JON & FUSE MANAGEMENT CONSOLE

DEVELOPMENT WITH JBDS

JBoss A-MQ JBoss Fuse

● Provides Core Integration functionality

● EIP as a first-order concept

● Simplifies Integration, Transformation, Mediation

Page 10: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Apache Camel50+ Enterprise Integration Patterns

http://camel.apache.org/eip

Page 11: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

A-MQ

● ActiveMQ in Action

● Community website

○ http://activemq.apache.org/

● Apache Software Foundation project (AcitiveMQ)

● High performance, reliable message broker

o Clustering and Fault Tolerance

● Myriad of connectivity options

o Native Java, C/C++, and .NET

o AMQP, MQTT, STOMP, and OpenWire

● Embedded and standalone deployment options

Page 12: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Apache CXF

Standards Support

JSR Support

● JAX-WS - Java API for XML-Based Web Services (JAX-WS) 2.0

- JSR-224

● Web Services Metadata for the Java Platform - JSR-181

● JAX-RS - The Java API for RESTful Web Services - JSR-311

● SAAJ - SOAP with Attachments API for Java (SAAJ) - JSR-67

WS-* & Related Specifications Support

● Basic support: WS-I Basic Profile 1.1

● Quality of Service: WS-Reliable Messaging

● Metadata: WS-Policy, WSDL 1.1 - Web Service Definition Language

● Communication Security: WS-Security, WS-SecurityPolicy, WS-SecureConversation, WS-Trust (partial support)

● Messaging Support: WS-Addressing, SOAP 1.1, SOAP 1.2, Message Transmission Optimization Mechanism (MTOM)

Page 13: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

13

Base Profile V1.0 Data Services Profile V1.0

Registry

3 – Profiles are stored in the Fabric registry

Managing Fuse with Fabric & ProfilesManaging Fuse with Fabric & Profiles

Data Services Profile V1.0

Extends

DevContainerDevContainer

Base Profile V1.0 Data Services Profile V1.0

DevContainer

4 – Define a new containerConfiguration

Base Services Profile V1.0

2 – Fabric profiles are created that define related

code to be deployed

6 –Start the containerBundles/Features

1 – Code artifacts are created and available

in maven

5- Assign Profiles to theContainer

runtime

DevContainer = running

Page 14: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

14

Architecture

Page 15: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Discovery

– Auditable and Reproducible

– Scalability and Isolatation ● Grow to Multitenancy● Scale containers and services independently

– Standard VM environment.

– New to JBoss Fuse

Page 16: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Key Recommendations

– Fuse: ● Validated as the best path to multitenancy● Encourages modular development practice● Fabric delivers fine to coarse grained service definitions

– Simplification: ● Simplify initial physical architecture w.r.t services/Domains

– Mututable: ● Sets foundation for the level of scalability and isolation

required by the customer in their environment

Page 17: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

JBOSS FUSE GATEWAY AND SERVICES DEPLOYMENT

J MS Protocol (Asynchronous)

HTTPS Protocol (Synchronous)

Broker VMs

Network of Brokers

Fuse Gateway (GW) and Services VMs

AMQ VM A AMQ VM B AMQ VM C

JBoss Fuse Active JBoss Fuse Active JBoss Fuse Active

= 4 core x 4 GB VM or Bare Metal compute resource

NoB Transports

Fuse VM

JBoss Fuse Active

ActiveMQActiveMQActiveMQ

VM

Network of Brokers (NoB) 

allows messages to move from 

broker to broker dependent on 

where the actual consumer is connected

The Gateway JMS Producer 

Transport

Producers Consumers

Camel Camel Camel

= HTTPS Connections (Solid Line)

= JMS Connections (Dashed Line)

Fuse VM

JBoss Fuse Active

Camel CXF

GW Services

Camel CXF

GW Services

AMQ VM +1

JBoss Fuse Active

ActiveMQ Camel

Scale additional VMs when needed

The Services JMS 

Consumer Transport

The asynchronous layer will decouple 

the incoming synchronous 

HTTP requests to free up resources

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

L7

F5

Scale additional VMs when needed

Page 18: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

JBOSS FUSE RECOMMENDED DEPLOYMENT TOPOLOGY

Fuse Fabric

Maven Repo VM

Artifact Repo

Maven Repo VM

Artifact Repo

Broker VMs

Network of Brokers

Fuse Gateway (GW) and Services VMs

AMQ VM A AMQ VM B AMQ VM C

JBoss Fuse Active JBoss Fuse Active JBoss Fuse Active

= 4 core x 4 GB VM or Bare Metal compute resource

NoB Transports

Fuse VM A

JBoss Fuse Active

Fuse VM B

JBoss Fuse Active

Fuse VM C

JBoss Fuse Active

Camel CXF

ActiveMQActiveMQActiveMQ

VM

Camel Camel Camel

= HTTPS Connections (Solid Line)

= Zookeeper Connections (Dashed Line)

GW Services

Fuse VM + 1

JBoss Fuse Active

Camel CXF

GW Services

Camel CXF

GW Services

Camel CXF

GW Services

AMQ VM +1

JBoss Fuse Active

ActiveMQ Camel

Scale additional VMs when needed

Fabric requires an odd number of instances to reach a quorum

Fabric VM

JBoss Fuse

Fabric

Fabric VM

JBoss Fuse

Fabric

Fabric VM

JBoss Fuse

Fabric

Fabric VM

JBoss Fuse

Fabric

+1 Instance as a standby in the case of a failure to maintain the quorum

= 1 core x 4 GB VM or Bare Metal compute resourceVM

Zookeeper Transport

Zookeeper Transport

Zookeeper Transport

HTTP Maven Transport

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

Scale additional VMs when needed

Page 19: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

19

Fuse/Fabric – Simplified ArchitectureFuse/Fabric – Simplified Architecture

FS002

Fabric Server

FS001

Fabric Server

FS003

Fabric Server

Fuse001

Fuse 1Container

ESB002

Fabric Servers2xCPU, 16GB RAM, 10GB HDD

Fuse Servers8xCPU, 20GB RAM, 10GB HDD, 50GB SAN

AMQ 1Active

FS003

Fabric Server

FS003

Fabric Server

ESB002

AMQ 2Active

Fuse002

Fuse 2 Container

Fuse003

Fuse 3Container

ESB002

AMQ 3Active

Partition

Page 20: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Steps to Multitenancy

Page 21: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

STEPS TO MULTITENANCY

• First deploy monolith application

• Identify candidates for partitioning⁃Use metrics or reliability history to identify outliers⁃Handle them on a case-by-case basis

• Consider isolating services for various forces, including:⁃ Performance characteristics/contention

⁃ Business domain functionality

⁃ Deployment churn/update frequency

⁃ Criticality

⁃ Security (data at rest, in motion, etc)

⁃ SLAs

• Establish a CI/CD process

Page 22: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

22

Fuse/Fabric – Architecture with “n” PartitionsFuse/Fabric – Architecture with “n” Partitions

Fuse001

Fuse 1Container

ESB002

AMQ 1Active

ESB002

AMQ 2Active

Fuse002

Fuse 2 Container

Fuse003

Fuse 3Container

ESB002

AMQ 3Active

Partition 1

Fuse004

Fuse 1Container

Fuse005

Fuse 2 Container

Fuse006

Fuse 3Container

Partition 2

Fa

bric En

sem

ble

Page 23: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

23

Fuse/Fabric - Architecture “n” PartitionsFuse/Fabric - Architecture “n” Partitions

Fuse001

Fuse 1Container

ESB002

AMQ 1Active

ESB002

AMQ 2Active

Fuse002

Fuse 2 Container

Fuse003

Fuse 3Container

ESB002

AMQ 3Active

Fuse004

Fuse 4Container

ESB004

AMQ 4Active

ESB005

AMQ 5Active

Fuse005

Fuse 5 Container

Fuse006

Fuse 6Container

ESB006

AMQ 6Active

Fa

bric Se

rvers

Partition 1

Partition 2

Page 24: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

What’s Next?

Page 25: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Growth Plan

● Process for scaling to multiple organizations

– shared Fuse platform– balance central automation with autonomous

teams– scale up to 1000s of fabric profiles

● Migration between environments● Works within existing recommended Architecture

Page 26: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Next Steps

● Today

– We have the foundation for multitenancy with modular services

– Established a flexible, scalable, auditable, and repeatable architecture

● “Tomorrow”

– Build out multitenancy environment– Establish a Dev/Ops tool chain

● JBoss Fuse is a first class citizen in a CI/CD tool chain.

Page 27: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Conclusion

Page 28: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Conclusion

● Migration plan established● Foundation for multitenancy● Highly Scalable and Available● Establish standard Dev/Ops Processes

Page 29: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Any questions?

Thank You

Page 30: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware
Page 31: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Solving Integration ProblemsWith JBoss Fuse

LEARN. NETWORK. EXPERIENCE OPEN SOURCE

redhat.com/summit

Scott England Sullivan - Principle Integration ArchitectPeter Blinstrubas - Middleware Solutions Architect

Page 32: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Agenda

● Customer’s Problem● Fuse In 0 to 60 MPH ● Architecture ● Steps to Multitenacy● What’s Next?● Conclusion

Page 33: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Customer Quote

“Camel is the right way to do integration!”

Page 34: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

The Story

● Healthcare Company

– Modernize SOA – Gain Agility– Reduce Cost– Monolith to

Multitenancy

Page 35: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Customer’s Problem

Page 36: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Problem

Migrate from a COTS product while maintaining operational parity and the capability to evolve into multitenancy.

Migrate from a cots product while maintaining operational parity and the capability to evolve into multitenenancy

Establish an Integration Architecture that is scalable and provides isolation for fine grained and coarse grained services.

Page 37: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Fuse in 0 to 60 MPH

Page 38: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

JBoss Fuse ArchitectureJBoss Fuse Architecture

Container

Asynchronous Messaging

Integration FrameworkWeb Services Framework

Apache CXF

Apache Active-MQ

Container Management Clustering & Deployment

Apache Camel

Apache karaf

Fabric8

Management &

Monitoring

Development&

Tooling

JBoss Developer

Studio

JBoss Operations

Network

FuseManagement

Console

Fuse Cartridge A-MQ Cartridge

Page 39: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Middleware Integration

● Small-footprint messaging system

● Built for interoperability:

● persistence, clustering, failover, security,etc

JBOSS A-MQ

Apache Active MQ

Apache Karaf +Fuse Fabric

MANAGEMENT WITH JON & JBOSS MANAGEMENT CONSOLE

DEVELOPMENT WITH JBDSWITH FUSE IDE

JBOSS FUSE

Services (Apache CXF)

Integration (Apache Camel)

Messaging (JBoss A-MQ)

MANAGEMENT WITH JON & FUSE MANAGEMENT CONSOLE

DEVELOPMENT WITH JBDS

JBoss A-MQ JBoss Fuse

● Provides Core Integration functionality

● EIP as a first-order concept

● Simplifies Integration, Transformation, Mediation

Page 40: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Apache Camel50+ Enterprise Integration Patterns

http://camel.apache.org/eip

Page 41: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

A-MQ

● ActiveMQ in Action

● Community website

○ http://activemq.apache.org/

● Apache Software Foundation project (AcitiveMQ)

● High performance, reliable message broker

o Clustering and Fault Tolerance

● Myriad of connectivity options

o Native Java, C/C++, and .NET

o AMQP, MQTT, STOMP, and OpenWire

● Embedded and standalone deployment options

Supports publish/subscribe, point to point, message groups, out of band messaging and streaming, distributed transactions, …

STOMP protocol enables Ruby, JS, Perl, Python, PHP, ActionScript, ...

Pre-integrated with open source integration and application frameworks

Deep integration with Spring Framework, OSGi, and Java EE

Page 42: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Apache CXF

Standards Support

JSR Support

● JAX-WS - Java API for XML-Based Web Services (JAX-WS) 2.0

- JSR-224

● Web Services Metadata for the Java Platform - JSR-181

● JAX-RS - The Java API for RESTful Web Services - JSR-311

● SAAJ - SOAP with Attachments API for Java (SAAJ) - JSR-67

WS-* & Related Specifications Support

● Basic support: WS-I Basic Profile 1.1

● Quality of Service: WS-Reliable Messaging

● Metadata: WS-Policy, WSDL 1.1 - Web Service Definition Language

● Communication Security: WS-Security, WS-SecurityPolicy, WS-SecureConversation, WS-Trust (partial support)

● Messaging Support: WS-Addressing, SOAP 1.1, SOAP 1.2, Message Transmission Optimization Mechanism (MTOM)

Soap and REST stack

Page 43: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

13

Base Profile V1.0 Data Services Profile V1.0

Registry

3 – Profiles are stored in the Fabric registry

Managing Fuse with Fabric & ProfilesManaging Fuse with Fabric & Profiles

Data Services Profile V1.0

Extends

DevContainerDevContainer

Base Profile V1.0 Data Services Profile V1.0

DevContainer

4 – Define a new containerConfiguration

Base Services Profile V1.0

2 – Fabric profiles are created that define related

code to be deployed

6 –Start the containerBundles/Features

1 – Code artifacts are created and available

in maven

5- Assign Profiles to theContainer

runtime

DevContainer = running

Page 44: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

14

Architecture

Page 45: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Discovery

– Auditable and Reproducible

– Scalability and Isolatation ● Grow to Multitenancy● Scale containers and services independently

– Standard VM environment.

– New to JBoss Fuse

Page 46: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Key Recommendations

– Fuse: ● Validated as the best path to multitenancy● Encourages modular development practice● Fabric delivers fine to coarse grained service definitions

– Simplification: ● Simplify initial physical architecture w.r.t services/Domains

– Mututable: ● Sets foundation for the level of scalability and isolation

required by the customer in their environment

Page 47: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

JBOSS FUSE GATEWAY AND SERVICES DEPLOYMENT

J MS Protocol (Asynchronous)

HTTPS Protocol (Synchronous)

Broker VMs

Network of Brokers

Fuse Gateway (GW) and Services VMs

AMQ VM A AMQ VM B AMQ VM C

JBoss Fuse Active JBoss Fuse Active JBoss Fuse Active

= 4 core x 4 GB VM or Bare Metal compute resource

NoB Transports

Fuse VM

JBoss Fuse Active

ActiveMQActiveMQActiveMQ

VM

Network of Brokers (NoB) 

allows messages to move from 

broker to broker dependent on 

where the actual consumer is connected

The Gateway JMS Producer 

Transport

Producers Consumers

Camel Camel Camel

= HTTPS Connections (Solid Line)

= JMS Connections (Dashed Line)

Fuse VM

JBoss Fuse Active

Camel CXF

GW Services

Camel CXF

GW Services

AMQ VM +1

JBoss Fuse Active

ActiveMQ Camel

Scale additional VMs when needed

The Services JMS 

Consumer Transport

The asynchronous layer will decouple 

the incoming synchronous 

HTTP requests to free up resources

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

L7

F5

Scale additional VMs when needed

Page 48: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

JBOSS FUSE RECOMMENDED DEPLOYMENT TOPOLOGY

Fuse Fabric

Maven Repo VM

Artifact Repo

Maven Repo VM

Artifact Repo

Broker VMs

Network of Brokers

Fuse Gateway (GW) and Services VMs

AMQ VM A AMQ VM B AMQ VM C

JBoss Fuse Active JBoss Fuse Active JBoss Fuse Active

= 4 core x 4 GB VM or Bare Metal compute resource

NoB Transports

Fuse VM A

JBoss Fuse Active

Fuse VM B

JBoss Fuse Active

Fuse VM C

JBoss Fuse Active

Camel CXF

ActiveMQActiveMQActiveMQ

VM

Camel Camel Camel

= HTTPS Connections (Solid Line)

= Zookeeper Connections (Dashed Line)

GW Services

Fuse VM + 1

JBoss Fuse Active

Camel CXF

GW Services

Camel CXF

GW Services

Camel CXF

GW Services

AMQ VM +1

JBoss Fuse Active

ActiveMQ Camel

Scale additional VMs when needed

Fabric requires an odd number of instances to reach a quorum

Fabric VM

JBoss Fuse

Fabric

Fabric VM

JBoss Fuse

Fabric

Fabric VM

JBoss Fuse

Fabric

Fabric VM

JBoss Fuse

Fabric

+1 Instance as a standby in the case of a failure to maintain the quorum

= 1 core x 4 GB VM or Bare Metal compute resourceVM

Zookeeper Transport

Zookeeper Transport

Zookeeper Transport

HTTP Maven Transport

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

JBoss Fuse VM:All Services

JBoss Fuse Active

Camel

CXF

GW

ServicesServicesServicesServicesServicesServicesServicesServicesMember

Scale additional VMs when needed

Page 49: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

19

Fuse/Fabric – Simplified ArchitectureFuse/Fabric – Simplified Architecture

FS002

Fabric Server

FS001

Fabric Server

FS003

Fabric Server

Fuse001

Fuse 1Container

ESB002

Fabric Servers2xCPU, 16GB RAM, 10GB HDD

Fuse Servers8xCPU, 20GB RAM, 10GB HDD, 50GB SAN

AMQ 1Active

FS003

Fabric Server

FS003

Fabric Server

ESB002

AMQ 2Active

Fuse002

Fuse 2 Container

Fuse003

Fuse 3Container

ESB002

AMQ 3Active

Partition

Simplified and efficient single JVM per VM– In the absence of hard data, always start here– Used throughout industry verticals with

successTriple Active at both GW/Services and Message Broker Layers

– Eliminates single point of failure condition if one instance is removed for maintenance

Fabric Separation of concerns– Isolates message flows from management– Creates independently scalable partitions

Page 50: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Steps to Multitenancy

Page 51: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

STEPS TO MULTITENANCY

• First deploy monolith application

• Identify candidates for partitioning⁃Use metrics or reliability history to identify outliers⁃Handle them on a case-by-case basis

• Consider isolating services for various forces, including:⁃ Performance characteristics/contention

⁃ Business domain functionality

⁃ Deployment churn/update frequency

⁃ Criticality

⁃ Security (data at rest, in motion, etc)

⁃ SLAs

• Establish a CI/CD process

Page 52: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

22

Fuse/Fabric – Architecture with “n” PartitionsFuse/Fabric – Architecture with “n” Partitions

Fuse001

Fuse 1Container

ESB002

AMQ 1Active

ESB002

AMQ 2Active

Fuse002

Fuse 2 Container

Fuse003

Fuse 3Container

ESB002

AMQ 3Active

Partition 1

Fuse004

Fuse 1Container

Fuse005

Fuse 2 Container

Fuse006

Fuse 3Container

Partition 2F

abric En

semb

le

Page 53: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

23

Fuse/Fabric - Architecture “n” PartitionsFuse/Fabric - Architecture “n” Partitions

Fuse001

Fuse 1Container

ESB002

AMQ 1Active

ESB002

AMQ 2Active

Fuse002

Fuse 2 Container

Fuse003

Fuse 3Container

ESB002

AMQ 3Active

Fuse004

Fuse 4Container

ESB004

AMQ 4Active

ESB005

AMQ 5Active

Fuse005

Fuse 5 Container

Fuse006

Fuse 6Container

ESB006

AMQ 6Active

Fabric S

ervers

Partition 1

Partition 2

Key take away is Jboss fuse provides the flexibility to architect a solution that meets the needs of your organization. Not everyone else.

Page 54: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

What’s Next?

Page 55: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Growth Plan

● Process for scaling to multiple organizations

– shared Fuse platform– balance central automation with autonomous

teams– scale up to 1000s of fabric profiles

● Migration between environments● Works within existing recommended Architecture

Page 56: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Next Steps

● Today

– We have the foundation for multitenancy with modular services

– Established a flexible, scalable, auditable, and repeatable architecture

● “Tomorrow”

– Build out multitenancy environment– Establish a Dev/Ops tool chain

● JBoss Fuse is a first class citizen in a CI/CD tool chain.

Jboss Fuse is a first class citizen in a CI/CD tool chain.

● Take advantage of Fuse’s native CI/CD capabilities

● CI/CD process includes automated tests/integration/acceptance, etc) to enact change to a production system.

● Increases visibility into the auditable and reproducible environment.

● Establish operational metrics feedback loop.

Page 57: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Conclusion

Page 58: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Conclusion

● Migration plan established● Foundation for multitenancy● Highly Scalable and Available● Establish standard Dev/Ops Processes

Page 59: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware

Any questions?

Thank You

29

Page 60: Solving Integration Problems With JBoss Fuse...Development & Tooling JBoss Developer Studio JBoss Operations Network Fuse Management Console Fuse Cartridge A-MQ Cartridge Middleware