why real integration developers ride camels - red...
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
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…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”
• 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