why real integration developers ride camels

34
Why real integration developers ride Camels

Upload: ceposta

Post on 06-Aug-2015

200 views

Category:

Software


1 download

TRANSCRIPT

Why real integration developers ride Camels

Christian PostaPrincipal Middleware Specialist/Architect

Blog: http://blog.christianposta.com

Twitter: @christianposta

Email: [email protected]

• Committer on Apache Camel, Apache ActiveMQ, Fabric8

• Recovering consultant

• Spent lot of time working with one of the largest Microservices, web-

scale, unicorn companies

• Frequent blogger and speaker about open-source, cloud, and

microservices

Kenneth PeeplesJBoss Technology Evangelist

Blog: www.ossmentor.com

Twitter: @ossmentor

Email: [email protected]

• Prior Public Sector Consultant with a concentration on Security

• Blogger and speaker with a concentration on Mobile, Integration,

Cloud and Data Services

• Open-source Camel riding

• Competitive claims

• What our customers say

• Why you should ride Camels too

• Demo

Agenda

Open-source Camel riding

6

Apache Camel

Apache Camel is an open-source,

light-weight, integration library.

Use Camel to integrate disparate systems

that speak different protocols and data formats

Enterprise Integration Patterns

http://camel.apache.org/eip

Features

● Enterprise Integration Patterns (EIPs)

● Domain Specific Language to write “flows” or “routes”

● Large collection of adapters/components for legacy systems, B2B, and SaaS

● Strong Unit test/Integration test framework

● Expression languages

● Data Formats

● Tooling with JBoss Developer Studio

Why Open source?

Not so open source…

• Apache Camel is 100% open source

• JBoss Fuse (built with Camel and other

Apache projects) is 100% open source

• Vibrant communities• Mailing lists

• Code commits

• Issue trackers

• Visible community members

• Blogging, books, social media

Is Camel open source or open core?

Competitive claims

• Well… let’s be honest; every library has a

learning curve

• What that means is flexibility

• Need guidance and best practices?

• Books, community, support

• Starting off “basic” and leveraging more as

become comfortable with the API

“So many different ways to implement a solution with Apache Camel”

• Well… actually, checkout the new Fuse

tooling!

https://github.com/fusesource/fuseide

http://tools.jboss.org/downloads/jbosstools_is/index.html

• Demo perhaps?

“No drag-and-drop tooling, no data mapper”

• Camel is not an ESB

• Pick the right tool (architecture) for the job!

• Not forced into expensive, mountainous

suites of applications

• If you want to compare ESBs, don’t compare

with Camel

• Do compare with JBoss Fuse

“Apache Camel doesn’t do what ESB X does”

RED HAT JBOSS FUSE

Development and tooling

Develop, test, debug, refine, deploy

JBoss Developer Studio

Web services frameworkWeb services standards, SOAP,

XML/HTTP, RESTful HTTP

Integration frameworkTransformation, mediation, enterprise

integration patterns

Management and monitoring

System and web services metrics, automated discovery,

container status, automatic updates

JBoss Operations Network

+ JBoss Fabric

Management Console (hawtio)

Apache CXF Apache Camel

Reliable MessagingJMS/STOMP/NMS/MQTT, publishing-subscribe/point-2-point, store and forward

Apache ActiveMQ

ContainerLife cycle management, resource management, dynamic deployment,

security and provisioning

Apache Karaf + Fuse Fabric

RED HAT ENTERPRISE LINUXWindows, UNIX, and other Linux

Ultimately:

Our customers care about making

more money.

How can these tools help them do

that?

What our customers say

http://www.redhat.com/en/resources/value-red-hat-integration-products

• Six organizations studied• Telecommunications, IT, shipment and logistics,

and document management

• Three year ROI of 488%

• Payback time of 8.2 months

• 51.5% more applications integrated per year

• 40.8% fewer FTEs per application integration

• 62.8% less downtime related to integration

• 18.1% improved performance

• 34.2% less costly than previous middleware

integration solution stack

Crazy ROI!?

• Global, event-based systems

• Eliminate bottlenecks in their systems

• Wanted open-source solution

• Faster time to market

New Case Study: AMD and JBoss Fuse

http://www.redhat.com/en/resources/amd-accelerates-time-market-red-hat-jboss-fuse

Why you should ride Camels too!

Real developers ride Camels!

• Community aspects

• Anyone can become a committer

• Run in whatever JVM container you want

• Run in whatever Dependency Injection

framework you want

No “vendor lock in”

Integration Complexity Made Simple

• Integrations of any Size and Complexity• Small investment to start• Extensible and reuse• Fast Path to Integration• Strong Unit Testing• OOTB Component Library

• Declarative

• Uses existing developer tooling (eg, IDE)

• Java, XML, Scala, Groovy, Kotlin

Flexible, powerful DSL

Example: Java DSL

public class OrderProcessorRouteBuilder extends RouteBuilder {

@Override public void configure() throws Exception {

from(“activemq:orders”) .choice()

.when(header(“customer-rating”).isEqualTo(“gold”)) .to(“activemq:topic:specialCustomer”) .otherwise() .to(“sftp://user@host/orders/regularCustomers”) .end() .log(“received new order ${body.orderId}”) .to(“ibatis:storeOrder?statementType=Insert”); }}

• DSL for REST API

• Out of the box Swagger integration

• Powerful exception handling

• Circuit breaker patterns

Rapid REST APIs

rest().post(“/order/beer”) .description(“New order for a mug of beer”) .consumes(“application/json”) .route() .to(“activemq:topic:newOrder”) .log(“received new order ${body.orderId}”)

.to(“ibatis:storeOrder?statementType=Insert”);

• JMX top to bottom

• Codehale metrics

• HawtIO web console

• Fabric8 management

Operational tooling

Demo

Data Integration

Mobile Integration