In this session, we'll focus on:
Camel 3: Demos of how Camel 3, Camel K and Camel Quarkus all work together, and will provide insights into Camel’s role in the next major release of Red Hat Integration products.
Camel K: This serverless integration platform provides low-code/no-code capabilities, where integrations can be snapped together quickly using the powers from integration patterns and Camel’s extensive set of connectors.
Camel Quarkus: Using Knative (the fast runtime of Quarkus) and Camel K brings awesome serverless features, such as auto-scaling, scaling to zero, and event-based communication, with great integration capabilities from Apache Camel.
You will also hear about the latest Camel sub-project Camel Kafka Connectors which makes it possible to use all the Camel components as Kafka Connect connectors.
Finally we bring details of the roadmap for what is coming up in the Camel projects.
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integration
1. Apache Camel 3
The next generation of
enterprise integration
Claus Ibsen
Red Hat
May 2020
2. About Me
Claus Ibsen
● Senior Principal Software Engineer at Red Hat
● ASF Member & Java Champion
● Apache Camel tech lead
● Author of Camel in Action books
● Based in Denmark
● Blog: davsclaus.com
● Twitter: @davsclaus
● Linkedin: davsclaus
3. Agenda
● What’s Camel
● Camel 3
● Camel Releases
● Camel K
● Camel Quarkus
● Camel Kafka Connector
● Roadmap
● Q and A
9. You need to solve a lot of problems:
● Different communication models (e.g. sync / async)
● Different protocols or messaging systems
● Different languages or technologies
● Different business domains
● Different data access patterns
● …
● What if your app is unavailable?
● How do we manage consistency?
Even with only two systems...
My
App
Your
App
10. You need to solve a lot of problems:
● Different communication models (e.g. sync / async)
● Different protocols or messaging systems
● Different languages or technologies
● Different business domains
● Different data access patterns
● …
● What if your app is unavailable?
● How do we manage consistency?
Even with only two systems...
My
App
Your
App
I WAS A SHEEP
RANCHER
BEFORE I
WORKED HERE
● Different life philosophy
● Inability to change the other side
● ...
11. If we had the perfect tool to deal with integration...
?
12. If we had the perfect tool to deal with integration...
?
That could connect to
any almost any system
13. If we had the perfect tool to deal with integration...
?
That could connect to
any almost any system
That can work on and
off the cloud
14. If we had the perfect tool to deal with integration...
?
That could connect to
any almost any system
With support for known
integration patterns
That can work on and
off the cloud
15. If we had the perfect tool to deal with integration...
?
That could connect to
any almost any system
With support for known
integration patterns
That can work on and
off the cloud
That can integrate with
a simple language
from(“kafka:topic”)
.to(“grpc:endpoint”)
16. If we had the perfect tool to deal with integration...
?
That could connect to
any almost any system
With support for known
integration patterns
That can work on and
off the cloud
That can integrate with
a simple language
from(“kafka:topic”)
.to(“grpc:endpoint”)
This is
Apache Camel
20. Apache Camel as the glue between services
My
App
Your
App
Very lightweight library
(embedded in your app)
21. Camel Community
● The biggest and most active community for open source integration software
● 600+ unique contributors
● 3800+ pull requests (mostly from external contributors)
● 13+ years of development and one
of the most active Apache projects
37. Apache Camel 3 - Projects
Camel
Swiss knife of integration
Camel Spring Boot
Camel on
Spring Boot
38. Apache Camel 3 - Projects
Camel
Swiss knife of integration
Camel Spring Boot
Camel on
Spring Boot
Camel Karaf
Camel on
Apache Karaf / OSGi
39. Apache Camel 3 - Projects
Camel K
Camel on
Kubernetes & Knative
Camel
Swiss knife of integration
Camel Spring Boot
Camel on
Spring Boot
Camel Karaf
Camel on
Apache Karaf / OSGi
40. Apache Camel 3 - Projects
Camel Quarkus
Optimized JVM & Native
compiled Java (GraalVM)
Camel K
Camel on
Kubernetes & Knative
Camel
Swiss knife of integration
Camel Spring Boot
Camel on
Spring Boot
Camel Karaf
Camel on
Apache Karaf / OSGi
41. Apache Camel 3 - Projects
Camel Quarkus
Optimized JVM & Native
compiled Java (GraalVM)
Camel K
Camel on
Kubernetes & Knative
Camel
Swiss knife of integration
Camel Spring Boot
Camel on
Spring Boot
Camel Karaf
Camel on
Apache Karaf / OSGi
Camel Kafka Connector
Kafka Connector with Camel
43. Camel - LTS vs Non-LTS Releases
Release Date LTS LTS EOL Java
2.25 Jan 2020 Yes Jan 2021 8
3.0 Nov 2019 No 8,11
3.1 Feb 202 No 8,11
3.2 Apr 2020 No 8,11
3.3 May 2020 No 8,11
3.4 Jun 2020 Yes Jun 2021 8,11
3.5 Aug 2020 No 11
3.6 Oct 2020 No 11
3.7 Dec 2020 Yes Dec 2021 11,14?
45. A lightweight integration platform, based on Apache Camel,
born on Kubernetes, with serverless superpowers.
What is Apache Camel K ?
46. A lightweight integration platform, based on Apache Camel,
born on Kubernetes, with serverless superpowers.
What is Apache Camel K ?
Runs on “vanilla” Kubernetes (1) ...
K
1.
47. A lightweight integration platform, based on Apache Camel,
born on Kubernetes, with serverless superpowers.
What is Apache Camel K ?
Runs on “vanilla” Kubernetes (1), Openshift (2) ...
K
1.
K
2.
48. A lightweight integration platform, based on Apache Camel,
born on Kubernetes, with serverless superpowers.
What is Apache Camel K ?
Runs on “vanilla” Kubernetes (1), Openshift (2) and gives its best on a Knative-powered cluster (3)!
K
1.
K
2.
K
3.
53. Architecture of Camel K
Dev Environment Remote Cloud
kamel CLI
Camel K
Operator
“Integration”
Custom
Resource
Running Pod
Live updates!
Fast redeploy!
Less than 1 second!
Tailored for cloud-native development experience
54. Fast Deployment of Camel K
Time to run a integration using different strategies (in seconds)
Lower is better
😃
F-m-p is the “fabric8-maven-plugin”
(http://maven.fabric8.io/) deploying a
average spring-boot based
integration on Minishift vs. a remote
OpenShift cluster (accounting time to
upload the fat Jar). Source S2I build
has been measured in Red Hat Fuse
Online.
60. Java Density Problem
CONTAINER ORCHESTRATION
Node Node Node
Traditional Cloud-Native
Java Stack
Traditional Cloud-Native
Java Stack
Traditional Cloud-Native
Java Stack
Traditional Cloud-Native
Java Stack
NodeJS
NodeJS
NodeJS
NodeJS
NodeJS
NodeJS
NodeJS
Go Go Go
Go Go Go
Go Go Go
Go Go Go
Go Go Go
Go Go Go
Go Go Go
https://developers.redhat.com/blog/2017/03/14/java-inside-docker/
64. What is Quarkus ?
Supersonic Subatomic Java
A Kubernetes Native Java stack tailored for GraalVM &
OpenJDK HotSpot, crafted from the best of breed Java libraries
and standards
71. What is Apache Kafka?
● Kafka is known as
○ a distributed streaming platform
○ or a pub/sub messaging broker
● It’s an ecosystem
○ Multiple components part of Apache Kafka
○ A lot of 3rd party integrations
○ One of them is Kafka Connect
Streams
API
Producer
API
Consumer
API
3rd party
tools
Mirror
Maker
Connect
72. What is Kafka Connect?
● It is a framework that helps you to integrate Kafka with other systems
○ A user can define source and sink connectors to stream data in/out of Kafka brokers
○ Connectors are plugable - you can use one of the many connectors available or write your own
● Distributed and scalable by default
● Automatic offset management
● Simple transformations
● Streaming / batch integration
Kafka Connect:
Source
Connector
Kafka Connect:
Sink
Connector
External
System
External
System
73. What is Camel Kafka Connector?
● A Kafka Connector built on top of Apache Camel
● Started as an internal proof-of-concept
○ A sub-project of the Apache Camel
○ Donated by Red Hat to the ASF on December 2019
● Reuses in a simple way most of the Camel components as Kafka sink and sources
74. Demo S3 to JMS
● https://github.com/oscerd/camel-kafka-connector-demo
● S3 Source connector (camel-aws-s3)
● JMS Sink connector (camel-sjms2)
● A file loaded on a bucket -> file content in a JMS Queue
To run Kafka on
Kubernetes
78. Camel 3 - Roadmap
● Camel 3.4 (1st LTS release)
○ Spring Boot 2.3
○ Endpoint DSL fixes & improvements
○ Supervising Route Controller
(restart failing routes on startup with backoff)
○ Easier configuration of health checks
○ Hardening and bug fixes
○ Polish website
79. Camel K - Roadmap
● Support for Camel 3.4 LTS
○ Lightweight modules to reduce footprint
○ Webhook meta-component (more components that
can scale down to 0)
● Quarkus as integration runtime
○ Reduced footprint and cold start-up time
○ Native image build in parallel swapped with JVM
image during auto-scaling once ready
● Knative 1.0 → Camel K 1.0 GA
● Support the Broker / Trigger model
● Support Tekton builds
● Push-based endpoints
● Fully integrated with Syndesis
● Better IDE support
● Better integration with CI tools
● BDD testing (YAKS)
● Operator Capability Level 4+
80. Camel Quarkus - Roadmap
● Port more Camel components as Extensions
(about 200 done out of 300)
● More build time optimisations
● Reduce startup overhead
● Quarkus 1.5
● Camel Quarkus 1.0 GA
● Better IDE support
81. Camel Kafka Connector - Roadmap
● Camel-Kafka-connector 0.3
○ Based on Camel 3.3
○ Bug fixes
○ Aligned with last components
● Camel-Kafka-connector 0.4
○ Based on Camel 3.4 LTS
○ Polished Website
○ More Examples
84. Upcoming Webinars
● Devnation Live Tech Talk - June 5th 2020
○ Apache Camel 3 - The next generation of enterprise integration (Claus Ibsen & Andrea Cosentino)
● Devnation Live Tech Talk - July 9th 2020
○ Event-driven serverless applications with Camel K (Luca Burgazzoli & Nicola Ferraro)
https://developers.redhat.com/devnation/tech-talks/
85. More Material
● Quick 2 min Camel K demo
https://www.youtube.com/watch?v=I-g2xt-Qcb8
● 10 min video - Run 100 Camels quickly with Came, Quarkus and GraalVM
https://www.youtube.com/watch?v=4lXSf8DBQkQ
● Camel Kafka Connector blog and 25 min video
https://developers.redhat.com/blog/2020/05/19/extending-kafka-connectivity-with-ap
ache-camel-kafka-connectors
● Camel Examples
https://github.com/apache/camel-examples
● Camel Spring Boot Examples
https://github.com/apache/camel-spring-boot-examples
● Camel Kafka Connector Examples
https://github.com/apache/camel-kafka-connector-examples
86. Any Questions ?
Follow us on Twitter
@davsclaus
@ApacheCamel
https://github.com/apache/camel
A star on github is appreciated