The future of middleware: enterprise application ... · The future of middleware: enterprise...

58
The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat

Transcript of The future of middleware: enterprise application ... · The future of middleware: enterprise...

Page 1: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

The future of middleware: enterprise application integration and Fuse

Giuseppe BrindisiEMEA Solution Architect/Red Hat

Page 2: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

AGENDA

Page 3: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Agenda

● Build an enterprise application integration platform that is:

● Resilient● Maintainable● Flexible● With high performances

Page 4: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is EIP?

Page 5: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is EIP?

• Work by Hohpe / Woolf

• Became a de facto standard

• speak the same language

• reuse of know how and solutions

• Avoid custom code for integrations

• performance, bugs, less lines of code

Page 6: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Enterprise Integration Patterns

http://camel.apache.org/eip

Page 7: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What's JBOSS Fuse?

Page 8: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What's JBOSS Fuse?

• An integration Middleware built on:

• JBoss AMQ (ActiveMQ) for messaging

• Camel for mediations (routes)

• CXF for Web Services

• Fabric for governance (registry, provisioning)

• many “minor” subcomponents

Page 9: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is Jboss FUSE?

Page 10: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is OSGI?

Page 11: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is OSGI?

• A standard for a “Modular” Java

• how to “pack” code in a bundle (jar)

• OSGi bundles can be remotely installed, started, stopped, paused, updated and more (Lifecycle Management)

• OSGi = SOA in a JVM

• First version in 2000, coming from the telco world.

Page 12: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is Camel?

Page 13: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is Camel?

• Framework Open source implementing EIP patterns

• mapping 1:1 between pattern and components

• camel routes managed through OSGI

• OSGI Container

• OSGI : Container = EJB : J2EE Server

Page 14: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is Camel?

Page 15: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is ZooKeeper?

Page 16: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is ZooKeeper?

• Part of the Hadoop ecosystem

• Used to build coordination logics

• Sharding, Failover, Discovery, Master

election, ecc.

• Used by HBase, Kafka, Solr, Yahoo, etc.

Page 17: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is MAVEN?

Page 18: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

MAVEN

• Maven is the “de facto” standard in Java

dependency management

• Nexus (Artifactory) is a centralized Maven

repo that makes “Devops” easy

• controls dependencies

• a server contains each and every project

artifact

Page 19: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is KARAF?

Page 20: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is KARAF?

• Lightweight container for OSGI

• Hot deploy, logging, shell, configuration,

provisioning services

• JEE component : JBoss = bundle OSGI : Karaf

Page 21: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is ACTIVE-MQ?

Page 22: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is ACTIVE-MQ?

• Open Source Messaging Broker

• JMS, AMQP, MQTT, OpenWire, STOMP, REST

• Java, C, C++, C#, Ruby, Perl, Python, PHP

• Pluggable Transport

• in-VM, TCP, SSL, NIO, UDP, JGroups

Page 23: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is CXF?

Page 24: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is CXF?

• De facto open source standard for Web

Services

• Used in JBoss too

• WS-*, REST support

• …

Page 25: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is Fabric?

Page 26: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is Fabric?

• Allocate Resources, Install & Connect containers in your environment

• Publish Services, Discover & Coordinate

• Manage

• Provision

• Visualize

• Scale Up / Down

• and much more…

Page 27: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is Fabric?

• Introduced with Fuse technology

• But now an independent project

• http://fabric8.io

• It is now (will be) cross product (Fuse, EAP,

Openshift, ecc.)

Page 28: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

What is Fabric?

• Provisioning

• configurations, scripts, code (aggregated in profiles)

• On every kind of container

• Karaf, Wildfly, Tomcat, plain JVMs

• Everywhere

• Openshift, Docker, any public/private IAAS, bare metal, hybrid.

Page 29: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Example Architecture

Page 30: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Example Architecture

Page 31: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Architecture: Camel node details

Page 32: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

The Console

Page 33: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

The Console: Hawt.io – camel route view

Page 34: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

The Console: command line console

• Fuse Command Line console

• SSH based

• Total local and remote control of the system

• Scriptable

Page 35: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

The Console: command line console

Page 36: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Performance

Page 37: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Performance - CAMEL

• Camel is a Java technology and doesn’t

introduce any overhead

• Performance depends by the Camel

components used

• provided components has usually been

finely tuned and tested in hundreds of

customers

• Camel code is probably much faster than

your code ;)

Page 38: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Performance - ActiveMQ

• AMQ persistence File system based

• LevelDB, a nosql developed by Google

• O(1) to load stored messages thanks to the

BTree Google algorithm

• 3 or 30.000.000 persistent messages

instantaneously “loaded” by a broker.

Page 39: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Performance - ActiveMQ

• LevelDB has excellent write performance

• Disk speed is the single most important

factor.

• About 10k msg/sec (5kb) of sustained traffic on a modern laptop with an SSD

• About 4.5k msg/sec (5kb) of sustained traffic

on Amazon server (9k msg/sec using both disks)

Page 40: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

High Availability and Scalability

Page 41: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

High Availability and Scalability

• AMQ can be configured in Master - Slave

• 1 Slave per 1 Master

• N Slaves per M Masters (example: 2 Slaves per 10 Masters)

• AMQ can scale horizontally with different topologies:

• Network of Brokers

• Client side partitioning

HA

Scalability

Page 42: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Conclusions

Page 43: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Conclusions

• Resiliency

• Distributed Architecture

• Failover

• Master/Slave for High Availability

• Horizontal Scalability: Network of Brokers, Client side partitioning

• Maintainability

• OSGI based, standardized software componentlifecycle (with versioning)

• Powerful admin console

• Performance

Page 44: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Links to useful resources

Page 45: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Links to useful resources

• Fabric

• Container

• OSGI

• Route (Camel)

• Provisioning

• Versioning

• Maven/Nexus

• GIT

• Queue

• REST/WS

• Zookeeper

• Profiles

• Bundle

• OSGI

• EIP, Enterprise Integration Patterns

• Aggregator

• Splitter

• CBR

• Enrichment

• Multicast

• Wiretap

Page 46: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Links to useful resources

Karafhttp://karaf.apache.orgFabric8http://fabric8.ioJBoss FUSE 6.1 EA buildshttps://repository.jboss.org/nexus/content/repositories/ea/org/jboss/fuse/jboss-fuse-full/Red Hat Supported!https://www.jboss.org/products/fuse.html

Active MQhttp://activemq.apache.orgCamelhttps://camel.apache.orgCXFhttp://cxf.apache.orgZooKeeperhttp://zookeeper.apache.org

Page 47: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Ask questons or rate the Speaker

www.sli.do/openslava

Page 48: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.
Page 49: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Annex

Page 50: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Software Development Process

Page 51: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Software Development Process

• Integration requisite

• If tag A contained in Message M has in

corresponding record in table B the X field

• Trasform M (remove t1 tag, add X tag)

• Add tag t3 to Message M in any case

Page 52: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Software Development Process

“Translation” in Enterprise Integration

Patterns

Page 53: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Software Development Process

Page 54: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Software Development Process

• Transform EIP in code

• using a DSL in Java

• using a DSL in XML

• with a GUI editor (Eclipse plugin)

Page 55: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Software Development Process

• Bundle in an OSGI component

• mvn install

• Push on Maven/Nexus repo

• mvn deploy

Page 56: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Software Development Process

• With CLI console or Web Console, and

following Roll-out company plan, pull the

bundle from the repository

• Selected containers will download and start

automatically the bundle

Page 57: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Software Development Process

• “Canonical” process is:

• create a new route implementing business

• pack the route in a bundle and “assign” to a

new version of a profile

• upgrade one of more containers to this profile

to check everything is ok

• roll-out on every container or roll-back

Page 58: The future of middleware: enterprise application ... · The future of middleware: enterprise application integration and Fuse Giuseppe Brindisi EMEA Solution Architect/Red Hat. AGENDA.

Software Development Process

• “DEFCON 2” process:

• Open the web console on a production

server

• edit the route on the fly