• No results found

The future of middleware: enterprise application integration and Fuse

N/A
N/A
Protected

Academic year: 2021

Share "The future of middleware: enterprise application integration and Fuse"

Copied!
58
0
0

Loading.... (view fulltext now)

Full text

(1)

The future of middleware:

enterprise application

integration and Fuse

Giuseppe Brindisi

(2)
(3)

Agenda

Build an enterprise application integration platform that is:

● Resilient

● Maintainable

● Flexible

(4)
(5)

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

(6)

Enterprise Integration Patterns

(7)
(8)

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)

(9)
(10)
(11)

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.

(12)
(13)

What is Camel?

• Framework Open source implementing EIP patterns

• mapping 1:1 between pattern and components

• camel routes managed through OSGI • OSGI Container

(14)
(15)
(16)

What is ZooKeeper?

• Part of the Hadoop ecosystem

• Used to build coordination logics

• Sharding, Failover, Discovery, Master election, ecc.

(17)
(18)

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

(19)
(20)

What is KARAF?

• Lightweight container for OSGI

• Hot deploy, logging, shell, configuration, provisioning services

(21)
(22)

What is ACTIVE-MQ?

• Open Source Messaging Broker

• JMS, AMQP, MQTT, OpenWire, STOMP, REST • Java, C, C++, C#, Ruby, Perl, Python, PHP

• Pluggable Transport

(23)
(24)

What is CXF?

• De facto open source standard for Web Services

• Used in JBoss too • WS-*, REST support • …

(25)
(26)

What is Fabric?

• Allocate Resources, Install & Connect containers in your environment

• Publish Services, Discover & Coordinate • Manage

• Provision • Visualize

• Scale Up / Down • and much more…

(27)

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

(28)

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.

(29)
(30)
(31)
(32)
(33)
(34)

The Console: command line console

• Fuse Command Line console

• SSH based

• Total local and remote control of the system • Scriptable

(35)
(36)
(37)

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 ;)

(38)

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.

(39)

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)

(40)
(41)

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

(42)
(43)

Conclusions

• Resiliency

• Distributed Architecture • Failover

• Master/Slave for High Availability

• Horizontal Scalability: Network of Brokers, Client side partitioning

• Maintainability

• OSGI based, standardized software component lifecycle (with versioning)

• Powerful admin console • Performance

(44)
(45)

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

(46)

Links to useful resources

Karaf

http://karaf.apache.org Fabric8

http://fabric8.io

JBoss FUSE 6.1 EA builds https://repository.jboss.org/ne xus/content/repositories/ea/or g/jboss/fuse/jboss-fuse-full/ Red Hat Supported!

https://www.jboss.org/product s/fuse.html Active MQ http://activemq.apache.org Camel https://camel.apache.org CXF http://cxf.apache.org ZooKeeper http://zookeeper.apache.org

(47)

Ask questons or rate the Speaker

(48)
(49)
(50)
(51)

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

(52)

Software Development Process

“Translation” in Enterprise Integration Patterns

(53)
(54)

Software Development Process

• Transform EIP in code • using a DSL in Java • using a DSL in XML

(55)

Software Development Process

• Bundle in an OSGI component

• mvn install

• Push on Maven/Nexus repo

(56)

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

(57)

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

(58)

Software Development Process

• “DEFCON 2” process:

• Open the web console on a production server

References

Related documents

In order to fold this flower you will need to fold the Basic Flower Form which can be found on page 50 of Origami Bonsai (Tuttle, 2010)..

Best experience or to irish medical council to provide guidance is complete form to register with herpes in and ethics for your results and award?. Only as a irish council form to

COVID - 19 SCENARIOS SCENARIO 1 OPEN CAMPUS HYGIENE PROCEDURES RESTRICTED INTERACTIONS AMONG CLASSES SCENARIO 2 SYMPTOMATIC STUDENT OR STAFF ONLINE INSTRUCTION SCENARIO 3 CASE OF

You can execute single commands against a non-active profile by using the --profile flag, for example minishift --profile profile-demo console to open the OpenShift console for

This example demonstrates that even though the privately owned firm exercises all available unilateral market power, if the incentives for efficient production by

Script varchar(255), /* Script to execute for this step */ Icon varchar(200), /* Icon to represent the step */ Description varchar(255) /* Textual description

You can either open individual reports from the Table of Contents in the left pane or click the title of a graph or table in the Dashboard to navigate to the content you want

The next time Enterprise Console downloads updates, it will download the new version of the Sophos Endpoint Security and Control software and apply it to all managed