SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler 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 ïŹnd it difïŹcult to write Camel DSL, they just want to leverage it.

 
 
 

1. Pick one
2. ConïŹgure 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?
OfïŹcial 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

Mais conteĂșdo relacionado

Mais procurados

Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingAraf Karsh Hamid
 
Implementing Domain Events with Kafka
Implementing Domain Events with KafkaImplementing Domain Events with Kafka
Implementing Domain Events with KafkaAndrei Rugina
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - CopenhagenClaus Ibsen
 
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs IstioGOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs IstioNicolas FrÀnkel
 
Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar Timothy Spann
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Flink Forward
 
Integrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesIntegrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesClaus Ibsen
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database Systemconfluent
 
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, 2013mumrah
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRaffaele Di Fazio
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Ryan Jarvinen
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design Araf Karsh Hamid
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAraf Karsh Hamid
 
Kafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersKafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersJean-Paul Azar
 
Hashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs EnterpriseHashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs EnterpriseStenio Ferreira
 

Mais procurados (20)

Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb Sharding
 
Implementing Domain Events with Kafka
Implementing Domain Events with KafkaImplementing Domain Events with Kafka
Implementing Domain Events with Kafka
 
Apache Camel K - Copenhagen
Apache Camel K - CopenhagenApache Camel K - Copenhagen
Apache Camel K - Copenhagen
 
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs IstioGOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
 
Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar Deep Dive into Building Streaming Applications with Apache Pulsar
Deep Dive into Building Streaming Applications with Apache Pulsar
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
 
kafka
kafkakafka
kafka
 
Integrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetesIntegrating microservices with apache camel on kubernetes
Integrating microservices with apache camel on kubernetes
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Quarkus k8s
Quarkus   k8sQuarkus   k8s
Quarkus k8s
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database System
 
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
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 
Kafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersKafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced Producers
 
Hashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs EnterpriseHashicorp Vault Open Source vs Enterprise
Hashicorp Vault Open Source vs Enterprise
 

Semelhante a Camel Day Italia 2021 - Camel K

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...Nicola Ferraro
 
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 3Claus Ibsen
 
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 TalkRed Hat Developers
 
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 platformNicola Ferraro
 
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 !Anthony Dahanne
 
Kubernetes for Java Developers
Kubernetes for Java DevelopersKubernetes for Java Developers
Kubernetes for Java DevelopersAnthony Dahanne
 
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 CamelClaus Ibsen
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - SkaffoldSuman Chakraborty
 
Running Apache Spark Jobs Using Kubernetes
Running Apache Spark Jobs Using KubernetesRunning Apache Spark Jobs Using Kubernetes
Running Apache Spark Jobs Using KubernetesDatabricks
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeLee Calcote
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudMassimiliano DessĂŹ
 
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 JavaCodemotion
 
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 wayJohannes BrÀnnström
 
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 2018Anthony Dahanne
 
How do we use Kubernetes
How do we use KubernetesHow do we use Kubernetes
How do we use KubernetesUri Savelchev
 
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 Wojciech BarczyƄski
 
Kubernetes Java Operator
Kubernetes Java OperatorKubernetes Java Operator
Kubernetes Java OperatorAnthony Dahanne
 
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 aspectsKrishna-Kumar
 
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 OperatorDatabricks
 
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...Claus Ibsen
 

Semelhante a 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...
 
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
 
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
 
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
 
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
 
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...
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂșjo
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Último (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

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 ïŹnd it difïŹcult to write Camel DSL, they just want to leverage it. 
 
 
 
 1. Pick one 2. ConïŹgure 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? OfïŹcial 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