SlideShare a Scribd company logo
1 of 33
Download to read offline
CAMEL DAY ITALIA 2021
CAMEL K
Nicola Ferraro - Principal Software Engineer @ Red Hat
Luca Burgazzoli - Principal Architect @ Red Hat
About us
2
Luca Burgazzoli
Principal Architect at Red Hat
Twitter: @lburgazzoli
We work on:
- Apache Camel and Camel K
- Red Hat Integration
- Knative Contrib
Nicola Ferraro
Principal Software Engineer at Red Hat
Twitter: @ni_ferraro
Agenda
● Intro
● Camel K
● Camel K and Knative
● Demo
● Current developments
INTRO
… when you’re free to play!
We all love
microservices!
Kubernetes
is so fun!
Software development is fun…
My
App
Let’s do it
serverless!
We are the
best team in
the world!
But then you realize...
… that you’re not alone in the world!
My
App
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
● ...
Apache Camel K can set you free!
My
App
Your
App
from(“pulsar://company/nsx/topic1”)
.unmarshal().json()
.transform().simple(“${body[data]}”)
.to(“knative:event/activity”)
from(“knative:event/produced”)
.pollEnrich()
.simple(“aws2-s3://mybucket/files/${header.Ce-File}”)
.to(“kafka:ext-topic”)
Party Area
(Free lunch zone ®)
Encapsulate complexity into an “Integration”
from(“pulsar://company/nsx/topic1”)
.unmarshal().json()
.transform().simple(“${body[data]}”)
.to(“knative:event/activity”)
Apache Camel DSL (routes.groovy)
My
App
Kubernetes
Kubernetes custom
resource
300+ components!
Camel K as an architectural component
Platform
Kubernetes
App App
App
● Ingress
● Egress
● Transformations
● Persistence
● Integration
Patterns
● ...
CAMEL K
● https://github.com/apache/camel-k
● A lightweight platform for running integrations on Openshift and Kubernetes
● Reached version 1.3.0 on December 28, 2020
What is Apache Camel K?
A lightweight integration platform, born on
Kubernetes, with serverless superpowers
Camel K for Developers
Create
integration file
from(“knative:channel/xxxx”)
.transform()...
.to(“kafka:topic”)
1
EXECUTE
CLI Tools
$ kamel run integration.java
2
RUNNING
Serverlesson
OpenShift/Kubernetes
3
Camel K Architecture
Knative
Kubernetes/OpenShift
Camel K Operator
DEVELOPER
Serverless
Function/Application
Pod
Serverless
Function/Application
Pod
Serverless
Function/Application
Pod
Tailored for cloud-native development
experience.
● Live coding on cloud
● Built-in dependency management
● Rapid deployment, incremental
updates
● Automate cloud resource generation
● Highly customizable
Integration
Custom Resource
LIVE
UPDATE!!
Code Driven Serverless
from(“platform-http:/messages”)
.process(new YourBusinessLogic())
.to(“knative:channel/words”)
Knative Service
CronJob
Service
Route
Ingress
ServiceMonitor
Deployment
ConfigMap
Secret
camel-core
camel-jackson
camel-timer
camel-aws-s3
camel-sql
camel-knative
camel-platform-http
Container Images
JVM
Master
GC
Runtime
Readiness
Liveness
Channels
Brokers
Developer Tooling
● Work on VSCode and Eclipse Che
● Auto-completion (LSP based)
and error highlighting
● Manage lifecycle of
integrations
● Inspect status and logs
● Actively developed with
tech-marketing feedback
● Improved “kamel” CLI
CAMEL K
AND
KNATIVE
Camel K loves Knative
A lightweight integration platform, born on
Kubernetes, with serverless superpowers
Not the official
logo, but we like it!
Camel K can also live without Knative, but it doesn’t want to ;)
Knative
Knative Serving Knative Eventing
Auto-scaling and scale-to-zero Messaging for event-based
applications
Knative
Service
POD
Scale Down to Zero
Request
Initiate and Start
Scale Up with Load
Knative Serving
Request
Request
Request
Request
POD
POD
POD
POD
Knative
Service
POD
rest().post(“/path”)
.to(“xx:system1”)
.to(“xx:system2”)
300+ components!
System 1
System 2
Request
Request
Request
Request
POD
POD
POD
POD
Scale Up with Load
Knative Serving with Camel K
Knative Eventing
Event Source
kn source
kn source create
kn source list
kn source list-types
Broker
New
Event
Trigger
kn trigger
Kn trigger create
kn trigger delete
kn trigger list
kn broker
Kn broker create
kn broker delete
kn broker list
Provider
kn service
kn service create
kn service delete
kn service describe
kn service list
kn service update
Event Providers
Infrastructure
New Customer
created event
Email service
Log service
Loyalty points
service
Trigger
Trigger
New
Event
New
Event
FEW Providers
Knative Eventing with Camel K
Event Source
Broker
New
Event
Camel K
Provider
Event Providers
Infrastructure
New Customer
created event
Email service
Log service
Loyalty points
service
New
Event
New
Event
300+ components!
Camel K
300+ components!
kamel run
kamel list
kamel delete
kamel run
kamel list
kamel delete
kn trigger
Kn trigger create
kn trigger delete
kn trigger list
Trigger
DEMO
Demo
Camel Sources and Sinks
in an event mesh
Code:
https://github.com/nicolaferraro/camel-k-example-knative/tree/demo-2021
Demo
CURRENT DEVELOPMENTS
POD
Quarkus
Currently, integrations can run on Quarkus in JVM mode:
POD POD
from(“knative:event/produced”)
.pollEnrich()
.simple(“aws2-s3://mybucket/files/${header.Ce-File}”)
.to(“kafka:ext-topic”)
The future is native,
with no changes in ux,
and much better
performance!
Have you heard
about GraalVM
and Mandrel?
https://github.com/apache/camel-quarkus
Kamelets
Meaning: Kamel route snippets
Non-camel users find it difficult to write Camel DSL, they just want to leverage it.
… … … …
1. Pick one
2. Configure parameters
3. Choose destination
query=quarkus
token=...
Kamelets have many more use cases outside Knative:
● Camel Kafka Connect
● Visual Tools for Camel K development
Kamelet Catalog (Kubernetes Objects)
Native on
OpenShift 4.7
Console
+ create your
own Kamelet
Testing software using BDD style.
Now part of citrusframework.org.
Same structure of Camel K (CLI + operator)
To run the test:
yaks test gateway.feature
https://github.com/citrusframework/yaks
Feature: API Gateway Works
Background:
Given URL: https://myservice/api/films
Scenario: Get a result from API
When send GET /
Then receive HTTP 200 OK
YAKS
Other important future developments
● Webhooks: reduce the amount of components that need an “always on” pod
● Keda: autoscaling not only limited to http workloads
Want to learn more about Camel K?
Official doc: https://camel.apache.org/camel-k/
Kubernetes enterprise integration patterns with Camel-K | DevNation Tech Talk
https://developers.redhat.com/videos/youtube/51x9BewGCYA/
By Nicola Ferraro and Luca Burgazzoli
Event-driven serverless applications with Camel K | DevNation Tech Talk
https://developers.redhat.com/devnation/tech-talks/serverless-apps-camelk
By Nicola Ferraro and Luca Burgazzoli
Thank you!
https://github.com/apache/camel-k
Follow us on Twitter:
@ni_ferraro
@lburgazzoli

More Related Content

What's hot

What's hot (20)

Apache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel QuarkusApache Camel v3, Camel K and Camel Quarkus
Apache Camel v3, Camel K and Camel Quarkus
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
Basic Kong API Gateway
Basic Kong API GatewayBasic Kong API Gateway
Basic Kong API Gateway
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database System
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniques
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
 
Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3
 
Hashicorp-Certified-Terraform-Associate-v3-edited.pptx
Hashicorp-Certified-Terraform-Associate-v3-edited.pptxHashicorp-Certified-Terraform-Associate-v3-edited.pptx
Hashicorp-Certified-Terraform-Associate-v3-edited.pptx
 
Grafana optimization for Prometheus
Grafana optimization for PrometheusGrafana optimization for Prometheus
Grafana optimization for Prometheus
 
Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3Camel Day Italy 2021 - What's new in Camel 3
Camel Day Italy 2021 - What's new in Camel 3
 
Apache Spark Overview
Apache Spark OverviewApache Spark Overview
Apache Spark Overview
 
APACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka StreamsAPACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka Streams
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsRunning Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 
Prometheus Training
Prometheus TrainingPrometheus Training
Prometheus Training
 
Apache Flink and what it is used for
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used for
 
Grafana introduction
Grafana introductionGrafana introduction
Grafana introduction
 

Similar to Camel Day Italia 2021 - Camel K

Similar to Camel Day Italia 2021 - Camel K (20)

ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...
ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...
ApacheCon NA - Apache Camel K: connect your Knative serverless applications w...
 
What's new with Apache Camel 3? | DevNation Tech Talk
What's new with Apache Camel 3? | DevNation Tech TalkWhat's new with Apache Camel 3? | DevNation Tech Talk
What's new with Apache Camel 3? | DevNation Tech Talk
 
DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3DevNation Live 2020 - What's new with Apache Camel 3
DevNation Live 2020 - What's new with Apache Camel 3
 
ApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platform
 
Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !
 
Kubernetes for Java Developers
Kubernetes for Java DevelopersKubernetes for Java Developers
Kubernetes for Java Developers
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
Running Apache Spark Jobs Using Kubernetes
Running Apache Spark Jobs Using KubernetesRunning Apache Spark Jobs Using Kubernetes
Running Apache Spark Jobs Using Kubernetes
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
 
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e JavaCome costruire una Platform As A Service con Docker, Kubernetes Go e Java
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018
 
How do we use Kubernetes
How do we use KubernetesHow do we use Kubernetes
How do we use Kubernetes
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
 
Kubernetes Java Operator
Kubernetes Java OperatorKubernetes Java Operator
Kubernetes Java Operator
 
Kubecon seattle 2018 recap - Application Deployment aspects
Kubecon seattle 2018 recap - Application Deployment aspectsKubecon seattle 2018 recap - Application Deployment aspects
Kubecon seattle 2018 recap - Application Deployment aspects
 
Apache Spark Streaming in K8s with ArgoCD & Spark Operator
Apache Spark Streaming in K8s with ArgoCD & Spark OperatorApache Spark Streaming in K8s with ArgoCD & Spark Operator
Apache Spark Streaming in K8s with ArgoCD & Spark Operator
 
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
 
Happy Helming With Okteto
Happy Helming With OktetoHappy Helming With Okteto
Happy Helming With Okteto
 

Recently uploaded

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 

Recently uploaded (20)

Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 

Camel Day Italia 2021 - Camel K

  • 1. CAMEL DAY ITALIA 2021 CAMEL K Nicola Ferraro - Principal Software Engineer @ Red Hat Luca Burgazzoli - Principal Architect @ Red Hat
  • 2. About us 2 Luca Burgazzoli Principal Architect at Red Hat Twitter: @lburgazzoli We work on: - Apache Camel and Camel K - Red Hat Integration - Knative Contrib Nicola Ferraro Principal Software Engineer at Red Hat Twitter: @ni_ferraro
  • 3. Agenda ● Intro ● Camel K ● Camel K and Knative ● Demo ● Current developments
  • 5. … when you’re free to play! We all love microservices! Kubernetes is so fun! Software development is fun… My App Let’s do it serverless! We are the best team in the world!
  • 6. But then you realize... … that you’re not alone in the world! My App
  • 7. 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 ● ...
  • 8. Apache Camel K can set you free! My App Your App from(“pulsar://company/nsx/topic1”) .unmarshal().json() .transform().simple(“${body[data]}”) .to(“knative:event/activity”) from(“knative:event/produced”) .pollEnrich() .simple(“aws2-s3://mybucket/files/${header.Ce-File}”) .to(“kafka:ext-topic”) Party Area (Free lunch zone ®)
  • 9. Encapsulate complexity into an “Integration” from(“pulsar://company/nsx/topic1”) .unmarshal().json() .transform().simple(“${body[data]}”) .to(“knative:event/activity”) Apache Camel DSL (routes.groovy) My App Kubernetes Kubernetes custom resource 300+ components!
  • 10. Camel K as an architectural component Platform Kubernetes App App App ● Ingress ● Egress ● Transformations ● Persistence ● Integration Patterns ● ...
  • 12. ● https://github.com/apache/camel-k ● A lightweight platform for running integrations on Openshift and Kubernetes ● Reached version 1.3.0 on December 28, 2020 What is Apache Camel K? A lightweight integration platform, born on Kubernetes, with serverless superpowers
  • 13. Camel K for Developers Create integration file from(“knative:channel/xxxx”) .transform()... .to(“kafka:topic”) 1 EXECUTE CLI Tools $ kamel run integration.java 2 RUNNING Serverlesson OpenShift/Kubernetes 3
  • 14. Camel K Architecture Knative Kubernetes/OpenShift Camel K Operator DEVELOPER Serverless Function/Application Pod Serverless Function/Application Pod Serverless Function/Application Pod Tailored for cloud-native development experience. ● Live coding on cloud ● Built-in dependency management ● Rapid deployment, incremental updates ● Automate cloud resource generation ● Highly customizable Integration Custom Resource LIVE UPDATE!!
  • 15. Code Driven Serverless from(“platform-http:/messages”) .process(new YourBusinessLogic()) .to(“knative:channel/words”) Knative Service CronJob Service Route Ingress ServiceMonitor Deployment ConfigMap Secret camel-core camel-jackson camel-timer camel-aws-s3 camel-sql camel-knative camel-platform-http Container Images JVM Master GC Runtime Readiness Liveness Channels Brokers
  • 16. Developer Tooling ● Work on VSCode and Eclipse Che ● Auto-completion (LSP based) and error highlighting ● Manage lifecycle of integrations ● Inspect status and logs ● Actively developed with tech-marketing feedback ● Improved “kamel” CLI
  • 18. Camel K loves Knative A lightweight integration platform, born on Kubernetes, with serverless superpowers Not the official logo, but we like it! Camel K can also live without Knative, but it doesn’t want to ;)
  • 19. Knative Knative Serving Knative Eventing Auto-scaling and scale-to-zero Messaging for event-based applications
  • 20. Knative Service POD Scale Down to Zero Request Initiate and Start Scale Up with Load Knative Serving Request Request Request Request POD POD POD POD
  • 21. Knative Service POD rest().post(“/path”) .to(“xx:system1”) .to(“xx:system2”) 300+ components! System 1 System 2 Request Request Request Request POD POD POD POD Scale Up with Load Knative Serving with Camel K
  • 22. Knative Eventing Event Source kn source kn source create kn source list kn source list-types Broker New Event Trigger kn trigger Kn trigger create kn trigger delete kn trigger list kn broker Kn broker create kn broker delete kn broker list Provider kn service kn service create kn service delete kn service describe kn service list kn service update Event Providers Infrastructure New Customer created event Email service Log service Loyalty points service Trigger Trigger New Event New Event FEW Providers
  • 23. Knative Eventing with Camel K Event Source Broker New Event Camel K Provider Event Providers Infrastructure New Customer created event Email service Log service Loyalty points service New Event New Event 300+ components! Camel K 300+ components! kamel run kamel list kamel delete kamel run kamel list kamel delete kn trigger Kn trigger create kn trigger delete kn trigger list Trigger
  • 24. DEMO
  • 25. Demo Camel Sources and Sinks in an event mesh Code: https://github.com/nicolaferraro/camel-k-example-knative/tree/demo-2021
  • 26. Demo
  • 28. POD Quarkus Currently, integrations can run on Quarkus in JVM mode: POD POD from(“knative:event/produced”) .pollEnrich() .simple(“aws2-s3://mybucket/files/${header.Ce-File}”) .to(“kafka:ext-topic”) The future is native, with no changes in ux, and much better performance! Have you heard about GraalVM and Mandrel? https://github.com/apache/camel-quarkus
  • 29. Kamelets Meaning: Kamel route snippets Non-camel users find it difficult to write Camel DSL, they just want to leverage it. … … … … 1. Pick one 2. Configure parameters 3. Choose destination query=quarkus token=... Kamelets have many more use cases outside Knative: ● Camel Kafka Connect ● Visual Tools for Camel K development Kamelet Catalog (Kubernetes Objects) Native on OpenShift 4.7 Console + create your own Kamelet
  • 30. Testing software using BDD style. Now part of citrusframework.org. Same structure of Camel K (CLI + operator) To run the test: yaks test gateway.feature https://github.com/citrusframework/yaks Feature: API Gateway Works Background: Given URL: https://myservice/api/films Scenario: Get a result from API When send GET / Then receive HTTP 200 OK YAKS
  • 31. Other important future developments ● Webhooks: reduce the amount of components that need an “always on” pod ● Keda: autoscaling not only limited to http workloads
  • 32. Want to learn more about Camel K? Official doc: https://camel.apache.org/camel-k/ Kubernetes enterprise integration patterns with Camel-K | DevNation Tech Talk https://developers.redhat.com/videos/youtube/51x9BewGCYA/ By Nicola Ferraro and Luca Burgazzoli Event-driven serverless applications with Camel K | DevNation Tech Talk https://developers.redhat.com/devnation/tech-talks/serverless-apps-camelk By Nicola Ferraro and Luca Burgazzoli
  • 33. Thank you! https://github.com/apache/camel-k Follow us on Twitter: @ni_ferraro @lburgazzoli