Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Why real integration developers ride Camels

1,288 views

Published on

My talk from Red Hat Summit 2015 about apache camel

Published in: Software
  • Be the first to comment

Why real integration developers ride Camels

  1. 1. Why real integration developers ride Camels
  2. 2. Christian Posta Principal Middleware Specialist/Architect Blog: http://blog.christianposta.com Twitter: @christianposta Email: christian@redhat.com • 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
  3. 3. Kenneth Peeples JBoss Technology Evangelist Blog: www.ossmentor.com Twitter: @ossmentor Email: kpeeples@redhat.com • Prior Public Sector Consultant with a concentration on Security • Blogger and speaker with a concentration on Mobile, Integration, Cloud and Data Services
  4. 4. • Open-source Camel riding • Competitive claims • What our customers say • Why you should ride Camels too • Demo Agenda
  5. 5. Open-source Camel riding
  6. 6. 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
  7. 7. Enterprise Integration Patterns http://camel.apache.org/eip
  8. 8. 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
  9. 9. Why Open source?
  10. 10. Not so open source…
  11. 11. • 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?
  12. 12. Competitive claims
  13. 13. • 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”
  14. 14. • 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”
  15. 15. • 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”
  16. 16. • 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”
  17. 17. RED HAT JBOSS FUSE Development and tooling Develop, test, debug, refine, deploy JBoss Developer Studio Web services framework Web services standards, SOAP, XML/HTTP, RESTful HTTP Integration framework Transformation, 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 Messaging JMS/STOMP/NMS/MQTT, publishing-subscribe/point-2-point, store and forward Apache ActiveMQ Container Life cycle management, resource management, dynamic deployment, security and provisioning Apache Karaf + Fuse Fabric RED HAT ENTERPRISE LINUX Windows, UNIX, and other Linux
  18. 18. Ultimately: Our customers care about making more money. How can these tools help them do that?
  19. 19. What our customers say
  20. 20. 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
  21. 21. • 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!?
  22. 22. • 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
  23. 23. Why you should ride Camels too!
  24. 24. Real developers ride Camels!
  25. 25. • 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”
  26. 26. 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
  27. 27. • Declarative • Uses existing developer tooling (eg, IDE) • Java, XML, Scala, Groovy, Kotlin Flexible, powerful DSL
  28. 28. 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”); } }
  29. 29. • 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”);
  30. 30. • JMX top to bottom • Codehale metrics • HawtIO web console • Fabric8 management Operational tooling
  31. 31. Demo
  32. 32. Data Integration
  33. 33. Mobile Integration

×