SlideShare a Scribd company logo
Build and Deploy Cloud Native
Camel Quarkus Routes With
Tekton and Knative
Omar Al-Safi
APACHECON @HOME
Spt, 29th – Oct. 1st 2020
About
Omar Al-Safi
● Open Source Software Engineer at Talend
● Apache Camel PMC and Commiter
● Based in Germany
● Twitter: @omarsmak Github: omarsmak
● What is Cloud Native?
● Introduction to GraalVM Native Image.
● Introduction to Camel Quarkus.
● Introduction to Knative.
● Introduction to Tekton.
● Put it all together with a Demo.
Agenda
What is Cloud Native?
• Open source stack.
What is Cloud Native?
• Open source stack.
• Microservices in containers.
What is Cloud Native?
• Open source stack.
• Microservices in containers.
• Dynamically ocheratsted.
What is Cloud Native?
• Open source stack.
• Microservices in containers.
• Dynamically ocheratsted.
• Optimized resource utilization.
What is Cloud Native?
Introduction To
Native Image
What is GraalVM
• Java VM based on HotSpot/OpenJDK.
What is GraalVM
• Java VM based on HotSpot/OpenJDK.
• High performance runtime.
What is GraalVM
• Java VM based on HotSpot/OpenJDK.
• High performance runtime.
• Ahead-of-time (AOT) compilation through Native Image.
What is GraalVM
• Java VM based on HotSpot/OpenJDK.
• High performance runtime.
• Ahead-of-time (AOT) compilation through Native Image.
• Ideal for Microservices and Cloud Native applications.
What is GraalVM
• Java VM based on HotSpot/OpenJDK.
• High performance runtime.
• Ahead-of-time (AOT) compilation through Native Image.
• Ideal for Microservices and Cloud Native applications.
• Multiple languages interoperability.
What is GraalVM
• Java VM based on HotSpot/OpenJDK.
• High performance runtime.
• Ahead-of-time (AOT) compilation through Native Image.
• Ideal for Microservices and Cloud Native applications.
• Multiple languages interoperability.
• Includes as well a Just-in-time (JIT) mode.
What is GraalVM
GraalVM Architecture
AOT vs JIT
* From: Thomas Wuerthinger performance benchmarks https://twitter.com/thomaswue/status/1145603781108928513
GraalVM Native Image Utility
Application
Libraries
JDK
Substrate VM
Point-to Analysis
Run Initializations
Heap Snapshotting
Native
executable
Ahead-of-Time
Compilation
Image Heap
Writing
Input Output
Introduction To
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
* From Apache Camel 3: the next generation of enterprise integration by Claus Ibsen & Andrea Cosentino
Java Fast Scaling Problem
* From Apache Camel 3: the next generation of enterprise integration by Claus Ibsen & Andrea Cosentino
SCALE-UP SCALE-DOWN SCALE-TO-
ZERO
What is Quarkus
• Kubernetes-native full stack Java framework.
What is Quarkus
• Kubernetes-native full stack Java framework.
• Container first.
What is Quarkus
• Kubernetes-native full stack Java framework.
• Container first.
• Besides OpenJDK HotSpot, utilizes GraalVM Native Image
very efficiently.
What is Quarkus
Quarkus Performance
What is Camel Quarkus?
• A runtime to run Apache Camel components on top of Quarkus.
What is Camel Quarkus?
• A runtime to run Apache Camel components on top of Quarkus.
• Utilizes all performance optimizations brought by Quarkus.
What is Camel Quarkus?
• A runtime to run Apache Camel components on top of Quarkus.
• Utilizes all performance optimizations brought by Quarkus.
• Allows Camel routes to be compiled natively using GraalVM
Native Image.
What is Camel Quarkus?
Performance Comparison
from(timer("foo").period(1000))
.log("Hello World From ApacheCon");
Performance Comparison
Camel SpringBoot
Memory used (RSS) ~400MB
Startup time ~ 3s
Performance Comparison
Camel SpringBoot
Memory used (RSS) ~400MB
Startup time ~ 3s
Camel Quarkus
Memory used (RSS) ~200MB
Startup time ~ 0.9s
Performance Comparison
Camel Quarkus Native
Camel SpringBoot
Memory used (RSS) ~400MB
Startup time ~ 3s
Camel Quarkus
Memory used (RSS) ~200MB
Startup time ~ 0.9s
Memory used (RSS) ~30MB
Startup time ~ 0.3s
Introduction To
Knative
What is Knative?
• A simplified set of tools to manage containers on Kubernetes.
What is Knative?
• A simplified set of tools to manage containers on Kubernetes.
• Allows developers to focus on coding.
What is Knative?
• A simplified set of tools to manage containers on Kubernetes.
• Allows developers to focus on coding.
• Built as Kubernetes extension with CRD.
• Utilizes Kubernetes goodies.
• Integrates with other non-Knative services.
What is Knative?
What is Knative?
Eventing
Common events infrastructure
between services
Knative Components
Serving
Deploy your application to K8s
Knative Serving
Knative Service
Revision 1 Config ● Deploy app as pod with revision
Knative Serving
Knative Service
Revision 1 Config ● Deploy app as pod with revision.
● Network auto-setup.
Route
User
Knative Serving
Knative Service
Config ● Deploy app as pod with revision.
● Network auto-setup.
● Revision are scaled up/down
○ Based on load
○ Down to zero
Route
User
Revision 1Revision 1
Knative Serving
Knative Service
Config ● Deploy app as pod with revision.
● Network auto-setup.
● Revision are scaled up/down
○ Based on load
○ Down to zero
● Create revisions and auto migrate
Route
User
Revision 1Revision 1
Config
Revision 1Revision 2
Knative Serving
Knative Service
Config ● Deploy app as pod with revision.
● Network auto-setup.
● Revision are scaled up/down
○ Based on load
○ Down to zero
● Create revisions and auto migrate
● Traffic splitting
Route
User
Revision 1Revision 1
Config
Revision 1Revision 2
90%
10%
Knative Serving
Knative Service
● Deploy app as pod with revision.
● Network auto-setup.
● Revision are scaled up/down
○ Based on load
○ Down to zero
● Create revisions and auto migrate
● Traffic splitting
● Dedicated URLs to Revisions which allows other
uses cases like blue/green deployment.
Route
User
Tester
Route Config
Revision 1Revision 3Tag
* From Stop Calling Knative Serverless! - Doug Davis, IBM
Config
Revision 1Revision 1
Config
Revision 1Revision 2
90%
10%
Knative Eventing
Event Source
Event Source
publish
● Event Source is K8s resource producing events as
CloudEvent via HTTP POST.
Knative Eventing
Event Source
Event Source
publish
● Event Source is K8s resource producing events as
CloudEvent via HTTP POST.
○ Adapter often used to convert events into
CloudEvents.
Adapter
Knative Eventing
Event Source
Broker
Event Source
publish
● Event Source is K8s resource producing events as
CloudEvent via HTTP POST.
○ Adapter often used to convert events into
CloudEvents.
● Broker is central events hub, e.g: Kafka.
Adapter
Knative Eventing
Event Source
Broker
Event Source
publish
● Event Source is K8s resource producing events as
CloudEvent via HTTP POST.
○ Adapter often used to convert events into
CloudEvents.
● Broker is central events hub, e.g: Kafka.
● Trigger subscribe events from a Broker.
Adapter Trigger
ingress
Trigger
ingress
Knative Eventing
Event Source
Broker
Event Source
publish
● Event Source is K8s resource producing events as
CloudEvent via HTTP POST.
○ Adapter often used to convert events into
CloudEvents.
● Broker is central events hub, e.g: Kafka.
● Trigger subscribe events from a Broker.
○ Filter for specific events.
Adapter Trigger
ingress
Trigger
ingress
filter=
filter=
Knative Eventing
Event Source
Broker Trigger Service
Event Source
filter=
publish
subscribe
● Event Source is K8s resource producing events as
CloudEvent via HTTP POST.
○ Adapter often used to convert events into
CloudEvents.
● Broker is central events hub, e.g: Kafka.
● Trigger subscribe events from a Broker.
○ Filter for specific events.
○ Send events to Service as CloudEvent via HTTP POST.
ingress
Adapter
Trigger Service
subscribe
filter=
ingress
Introduction To
What is Tekton?
• A Kubernetes native framework for creating creating
continuous integration and delivery (CI/CD) pipelines.
What is Tekton?
• A Kubernetes native framework for creating creating
continuous integration and delivery (CI/CD) pipelines.
• It used to be part of Knative tools.
What is Tekton?
• A Kubernetes native framework for creating creating
continuous integration and delivery (CI/CD) pipelines.
• It used to be part of Knative tools.
• Just like Knative, built as Kubernetes extension with Custom
Resource Definition (CRD).
What is Tekton?
Tekton Building Blocks
Step
Container
● Step is the smallest block, contains images,
commands, arguments and corresponds to
a K8s container.
Tekton Building Blocks
Task
Step
Container
Step
...
● Step is the smallest block, contains images,
commands, arguments and corresponds to
a K8s container.
● Task is a sequence of steps that run in
sequential order and on the same node.
Node
Tekton Building Blocks
Pipeline
Task
Step
Container
Step
...
Task
.
.
.
● Step is the smallest block, contains images,
commands, arguments and corresponds to
a K8s container.
● Task is a sequence of steps that run in
sequential order and on the same node.
● Pipeline contains multiple tasks, sequential
or parallel. Executes tasks on different
nodes.
Node
* From Next Generation CI/CD with GKE and Tekton (Cloud Next '19)
Put it all together with a
Demo
• Camel route with REST component on top of Camel Quarkus
runtime.
• Trigger the Tekton pipeline using an EventListener.
• Build the Camel route natively using GraalVM Native Image in
Tekton using Kaniko.
• Deploy the route from Tekton pipeline as Knative Service.
• The route is accessible through HTTP/GET.
Demo Overview
Demo Overview
Pipeline
Build image from
git source
Deploy service to
Knative
EventListener Camel Quarkus
Rest Kn Service
User
HTTP GET /hello?q=
trigger
Any Questions ?
Demo project:
https://github.com/omarsmak/camel-talk-examples/tree/master/camel-quarkus-rest

More Related Content

What's hot

How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
Lucas Jellema
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
Knoldus Inc.
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
James Falkner
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
Winton Winton
 
Backstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBackstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptx
BrandenTimm1
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
Araf Karsh Hamid
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdf
Weaveworks
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
Viyaan Jhiingade
 
Jenkins CI presentation
Jenkins CI presentationJenkins CI presentation
Jenkins CI presentation
Jonathan Holloway
 
Jenkins
JenkinsJenkins
Red Hat Container Strategy
Red Hat Container StrategyRed Hat Container Strategy
Red Hat Container Strategy
Red Hat Events
 
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
SlideTeam
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
An Nguyen
 
Introduction to Red Hat OpenShift 4
Introduction to Red Hat OpenShift 4Introduction to Red Hat OpenShift 4
Introduction to Red Hat OpenShift 4
HngNguyn748044
 
Default GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOpsDefault GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOps
Rajith Bhanuka Mahanama
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
Amit Manwade
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demo
Opsta
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 
Reactive Microservices with Quarkus
Reactive Microservices with QuarkusReactive Microservices with Quarkus
Reactive Microservices with Quarkus
Niklas Heidloff
 

What's hot (20)

How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
Backstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBackstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptx
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdf
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Jenkins CI presentation
Jenkins CI presentationJenkins CI presentation
Jenkins CI presentation
 
Jenkins
JenkinsJenkins
Jenkins
 
Red Hat Container Strategy
Red Hat Container StrategyRed Hat Container Strategy
Red Hat Container Strategy
 
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Introduction to Red Hat OpenShift 4
Introduction to Red Hat OpenShift 4Introduction to Red Hat OpenShift 4
Introduction to Red Hat OpenShift 4
 
Default GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOpsDefault GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOps
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
 
Introduction to Kubernetes with demo
Introduction to Kubernetes with demoIntroduction to Kubernetes with demo
Introduction to Kubernetes with demo
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 
Maven Nexus
Maven NexusMaven Nexus
Maven Nexus
 
Reactive Microservices with Quarkus
Reactive Microservices with QuarkusReactive Microservices with Quarkus
Reactive Microservices with Quarkus
 

Similar to Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative

stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
NETWAYS
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
sparkfabrik
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
Sandeep Parikh
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflix
aspyker
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeCloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Mauricio (Salaboy) Salatino
 
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Patrick Chanezon
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
Ambassador Labs
 
Making your app soar without a container manifest
Making your app soar without a container manifestMaking your app soar without a container manifest
Making your app soar without a container manifest
LibbySchulze
 
LINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native World
LINE Corporation
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021
Avanti Patil
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
VMware Tanzu
 
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> KubernetesJJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
Mauricio (Salaboy) Salatino
 
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
Alexandre Roman
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in ProductionPatrick Mizer
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
Stfalcon Meetups
 
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 automation in production
Kubernetes automation in productionKubernetes automation in production
Kubernetes automation in production
Paul Bakker
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
VMUG IT
 
Triton + Docker, July 2015
Triton + Docker, July 2015Triton + Docker, July 2015
Triton + Docker, July 2015
Casey Bisson
 
DevOps Spain 2019. David Cañadillas -Cloudbees
DevOps Spain 2019. David Cañadillas -CloudbeesDevOps Spain 2019. David Cañadillas -Cloudbees
DevOps Spain 2019. David Cañadillas -Cloudbees
atSistemas
 

Similar to Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative (20)

stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflix
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeCloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
 
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
 
Making your app soar without a container manifest
Making your app soar without a container manifestMaking your app soar without a container manifest
Making your app soar without a container manifest
 
LINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native World
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
 
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> KubernetesJJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
 
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in Production
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 
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 automation in production
Kubernetes automation in productionKubernetes automation in production
Kubernetes automation in production
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Triton + Docker, July 2015
Triton + Docker, July 2015Triton + Docker, July 2015
Triton + Docker, July 2015
 
DevOps Spain 2019. David Cañadillas -Cloudbees
DevOps Spain 2019. David Cañadillas -CloudbeesDevOps Spain 2019. David Cañadillas -Cloudbees
DevOps Spain 2019. David Cañadillas -Cloudbees
 

Recently uploaded

Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 

Recently uploaded (20)

Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 

Build and Deploy Cloud Native Camel Quarkus routes with Tekton and Knative

  • 1. Build and Deploy Cloud Native Camel Quarkus Routes With Tekton and Knative Omar Al-Safi APACHECON @HOME Spt, 29th – Oct. 1st 2020
  • 2. About Omar Al-Safi ● Open Source Software Engineer at Talend ● Apache Camel PMC and Commiter ● Based in Germany ● Twitter: @omarsmak Github: omarsmak
  • 3. ● What is Cloud Native? ● Introduction to GraalVM Native Image. ● Introduction to Camel Quarkus. ● Introduction to Knative. ● Introduction to Tekton. ● Put it all together with a Demo. Agenda
  • 4. What is Cloud Native?
  • 5. • Open source stack. What is Cloud Native?
  • 6. • Open source stack. • Microservices in containers. What is Cloud Native?
  • 7. • Open source stack. • Microservices in containers. • Dynamically ocheratsted. What is Cloud Native?
  • 8. • Open source stack. • Microservices in containers. • Dynamically ocheratsted. • Optimized resource utilization. What is Cloud Native?
  • 11. • Java VM based on HotSpot/OpenJDK. What is GraalVM
  • 12. • Java VM based on HotSpot/OpenJDK. • High performance runtime. What is GraalVM
  • 13. • Java VM based on HotSpot/OpenJDK. • High performance runtime. • Ahead-of-time (AOT) compilation through Native Image. What is GraalVM
  • 14. • Java VM based on HotSpot/OpenJDK. • High performance runtime. • Ahead-of-time (AOT) compilation through Native Image. • Ideal for Microservices and Cloud Native applications. What is GraalVM
  • 15. • Java VM based on HotSpot/OpenJDK. • High performance runtime. • Ahead-of-time (AOT) compilation through Native Image. • Ideal for Microservices and Cloud Native applications. • Multiple languages interoperability. What is GraalVM
  • 16. • Java VM based on HotSpot/OpenJDK. • High performance runtime. • Ahead-of-time (AOT) compilation through Native Image. • Ideal for Microservices and Cloud Native applications. • Multiple languages interoperability. • Includes as well a Just-in-time (JIT) mode. What is GraalVM
  • 18. AOT vs JIT * From: Thomas Wuerthinger performance benchmarks https://twitter.com/thomaswue/status/1145603781108928513
  • 19. GraalVM Native Image Utility Application Libraries JDK Substrate VM Point-to Analysis Run Initializations Heap Snapshotting Native executable Ahead-of-Time Compilation Image Heap Writing Input Output
  • 21. 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 * From Apache Camel 3: the next generation of enterprise integration by Claus Ibsen & Andrea Cosentino
  • 22. Java Fast Scaling Problem * From Apache Camel 3: the next generation of enterprise integration by Claus Ibsen & Andrea Cosentino SCALE-UP SCALE-DOWN SCALE-TO- ZERO
  • 24. • Kubernetes-native full stack Java framework. What is Quarkus
  • 25. • Kubernetes-native full stack Java framework. • Container first. What is Quarkus
  • 26. • Kubernetes-native full stack Java framework. • Container first. • Besides OpenJDK HotSpot, utilizes GraalVM Native Image very efficiently. What is Quarkus
  • 28. What is Camel Quarkus?
  • 29. • A runtime to run Apache Camel components on top of Quarkus. What is Camel Quarkus?
  • 30. • A runtime to run Apache Camel components on top of Quarkus. • Utilizes all performance optimizations brought by Quarkus. What is Camel Quarkus?
  • 31. • A runtime to run Apache Camel components on top of Quarkus. • Utilizes all performance optimizations brought by Quarkus. • Allows Camel routes to be compiled natively using GraalVM Native Image. What is Camel Quarkus?
  • 33. Performance Comparison Camel SpringBoot Memory used (RSS) ~400MB Startup time ~ 3s
  • 34. Performance Comparison Camel SpringBoot Memory used (RSS) ~400MB Startup time ~ 3s Camel Quarkus Memory used (RSS) ~200MB Startup time ~ 0.9s
  • 35. Performance Comparison Camel Quarkus Native Camel SpringBoot Memory used (RSS) ~400MB Startup time ~ 3s Camel Quarkus Memory used (RSS) ~200MB Startup time ~ 0.9s Memory used (RSS) ~30MB Startup time ~ 0.3s
  • 38. • A simplified set of tools to manage containers on Kubernetes. What is Knative?
  • 39. • A simplified set of tools to manage containers on Kubernetes. • Allows developers to focus on coding. What is Knative?
  • 40. • A simplified set of tools to manage containers on Kubernetes. • Allows developers to focus on coding. • Built as Kubernetes extension with CRD. • Utilizes Kubernetes goodies. • Integrates with other non-Knative services. What is Knative?
  • 42. Eventing Common events infrastructure between services Knative Components Serving Deploy your application to K8s
  • 43. Knative Serving Knative Service Revision 1 Config ● Deploy app as pod with revision
  • 44. Knative Serving Knative Service Revision 1 Config ● Deploy app as pod with revision. ● Network auto-setup. Route User
  • 45. Knative Serving Knative Service Config ● Deploy app as pod with revision. ● Network auto-setup. ● Revision are scaled up/down ○ Based on load ○ Down to zero Route User Revision 1Revision 1
  • 46. Knative Serving Knative Service Config ● Deploy app as pod with revision. ● Network auto-setup. ● Revision are scaled up/down ○ Based on load ○ Down to zero ● Create revisions and auto migrate Route User Revision 1Revision 1 Config Revision 1Revision 2
  • 47. Knative Serving Knative Service Config ● Deploy app as pod with revision. ● Network auto-setup. ● Revision are scaled up/down ○ Based on load ○ Down to zero ● Create revisions and auto migrate ● Traffic splitting Route User Revision 1Revision 1 Config Revision 1Revision 2 90% 10%
  • 48. Knative Serving Knative Service ● Deploy app as pod with revision. ● Network auto-setup. ● Revision are scaled up/down ○ Based on load ○ Down to zero ● Create revisions and auto migrate ● Traffic splitting ● Dedicated URLs to Revisions which allows other uses cases like blue/green deployment. Route User Tester Route Config Revision 1Revision 3Tag * From Stop Calling Knative Serverless! - Doug Davis, IBM Config Revision 1Revision 1 Config Revision 1Revision 2 90% 10%
  • 49. Knative Eventing Event Source Event Source publish ● Event Source is K8s resource producing events as CloudEvent via HTTP POST.
  • 50. Knative Eventing Event Source Event Source publish ● Event Source is K8s resource producing events as CloudEvent via HTTP POST. ○ Adapter often used to convert events into CloudEvents. Adapter
  • 51. Knative Eventing Event Source Broker Event Source publish ● Event Source is K8s resource producing events as CloudEvent via HTTP POST. ○ Adapter often used to convert events into CloudEvents. ● Broker is central events hub, e.g: Kafka. Adapter
  • 52. Knative Eventing Event Source Broker Event Source publish ● Event Source is K8s resource producing events as CloudEvent via HTTP POST. ○ Adapter often used to convert events into CloudEvents. ● Broker is central events hub, e.g: Kafka. ● Trigger subscribe events from a Broker. Adapter Trigger ingress Trigger ingress
  • 53. Knative Eventing Event Source Broker Event Source publish ● Event Source is K8s resource producing events as CloudEvent via HTTP POST. ○ Adapter often used to convert events into CloudEvents. ● Broker is central events hub, e.g: Kafka. ● Trigger subscribe events from a Broker. ○ Filter for specific events. Adapter Trigger ingress Trigger ingress filter= filter=
  • 54. Knative Eventing Event Source Broker Trigger Service Event Source filter= publish subscribe ● Event Source is K8s resource producing events as CloudEvent via HTTP POST. ○ Adapter often used to convert events into CloudEvents. ● Broker is central events hub, e.g: Kafka. ● Trigger subscribe events from a Broker. ○ Filter for specific events. ○ Send events to Service as CloudEvent via HTTP POST. ingress Adapter Trigger Service subscribe filter= ingress
  • 57. • A Kubernetes native framework for creating creating continuous integration and delivery (CI/CD) pipelines. What is Tekton?
  • 58. • A Kubernetes native framework for creating creating continuous integration and delivery (CI/CD) pipelines. • It used to be part of Knative tools. What is Tekton?
  • 59. • A Kubernetes native framework for creating creating continuous integration and delivery (CI/CD) pipelines. • It used to be part of Knative tools. • Just like Knative, built as Kubernetes extension with Custom Resource Definition (CRD). What is Tekton?
  • 60. Tekton Building Blocks Step Container ● Step is the smallest block, contains images, commands, arguments and corresponds to a K8s container.
  • 61. Tekton Building Blocks Task Step Container Step ... ● Step is the smallest block, contains images, commands, arguments and corresponds to a K8s container. ● Task is a sequence of steps that run in sequential order and on the same node. Node
  • 62. Tekton Building Blocks Pipeline Task Step Container Step ... Task . . . ● Step is the smallest block, contains images, commands, arguments and corresponds to a K8s container. ● Task is a sequence of steps that run in sequential order and on the same node. ● Pipeline contains multiple tasks, sequential or parallel. Executes tasks on different nodes. Node * From Next Generation CI/CD with GKE and Tekton (Cloud Next '19)
  • 63. Put it all together with a Demo
  • 64. • Camel route with REST component on top of Camel Quarkus runtime. • Trigger the Tekton pipeline using an EventListener. • Build the Camel route natively using GraalVM Native Image in Tekton using Kaniko. • Deploy the route from Tekton pipeline as Knative Service. • The route is accessible through HTTP/GET. Demo Overview
  • 65. Demo Overview Pipeline Build image from git source Deploy service to Knative EventListener Camel Quarkus Rest Kn Service User HTTP GET /hello?q= trigger
  • 66.
  • 67. Any Questions ? Demo project: https://github.com/omarsmak/camel-talk-examples/tree/master/camel-quarkus-rest