![Page 1: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/1.jpg)
Why real integration
developers ride Camels
![Page 2: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/2.jpg)
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
![Page 3: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/3.jpg)
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
![Page 4: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/4.jpg)
• Open-source Camel riding
• Competitive claims
• What our customers say
• Why you should ride Camels too
• Demo
Agenda
![Page 5: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/5.jpg)
Open-source Camel riding
![Page 6: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/6.jpg)
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
![Page 8: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/8.jpg)
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
![Page 9: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/9.jpg)
Why Open source?
![Page 10: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/10.jpg)
Not so open source…
![Page 11: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/11.jpg)
• 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?
![Page 12: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/12.jpg)
Competitive claims
![Page 13: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/13.jpg)
• Well…actually, Camel significantly reduces
the amount of code
• “Went from 90,000 LOC to 2,000”
• Without Camel DSL:
https://gist.github.com/christian-posta/6dc3b96f964c9706fa63
• With Camel DSL:
https://gist.github.com/christian-posta/2d0e119d71ca1808ccba
“I cannot understand the benefit of
Apache Camel as a lot of code is required”
![Page 14: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/14.jpg)
• 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”
![Page 15: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/15.jpg)
![Page 16: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/16.jpg)
• 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”
![Page 17: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/17.jpg)
• 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”
![Page 18: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/18.jpg)
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
![Page 19: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/19.jpg)
Ultimately:
Our customers care about making
more money.
How can these tools help them do
that?
![Page 20: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/20.jpg)
What our customers say
![Page 21: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/21.jpg)
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
![Page 22: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/22.jpg)
• 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!?
![Page 23: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/23.jpg)
• 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
![Page 24: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/24.jpg)
Why you should ride Camels too!
![Page 25: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/25.jpg)
Real developers ride Camels!
![Page 26: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/26.jpg)
• 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”
![Page 27: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/27.jpg)
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
![Page 28: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/28.jpg)
• Declarative
• Uses existing developer tooling (eg, IDE)
• Java, XML, Scala, Groovy, Kotlin
Flexible, powerful DSL
![Page 29: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/29.jpg)
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”);
}
}
![Page 30: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/30.jpg)
• 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”);
![Page 31: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/31.jpg)
• JMX top to bottom
• Codehale metrics
• HawtIO web console
• Fabric8 management
Operational tooling
![Page 32: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/32.jpg)
Demo
![Page 33: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/33.jpg)
Data Integration
![Page 34: Why real integration developers ride Camels - Red Hatvideos.cdn.redhat.com/summit2015/presentations/13640_why... · 2015-06-24 · Why real integration developers ride Camels. Christian](https://reader031.vdocuments.mx/reader031/viewer/2022041019/5ece2b74ee11c142a623d87a/html5/thumbnails/34.jpg)
Mobile Integration