SlideShare a Scribd company logo
©2021 VMware, Inc.
Knative goes
beyond serverless
Alexandre Roman
Senior Solution Engineer, VMware Tanzu
November 2021
©2021 VMware, Inc.
@Alexandre_Roman 2
Alexandre Roman
Senior Solution Engineer, VMware Tanzu
@Alexandre_Roman
Welcome to this session!
©2021 VMware, Inc.
@Alexandre_Roman 3
©2021 VMware, Inc.
@Alexandre_Roman 4
Pod Service
LoadBalancer
Ingress
Or?
Deployment
replicas
Not so easy
Deploying an application to Kubernetes
©2021 VMware, Inc.
@Alexandre_Roman 5
The reality
Deploying an application to Kubernetes
TOO MUCH YAML
©2021 VMware, Inc.
@Alexandre_Roman 6
We all agree, right?
What developers want
Write code
👍
Write infrastructure code
😵
💫
©2021 VMware, Inc.
@Alexandre_Roman 7
An API simplifying the Kubernetes developer experience… and more
Introducing Knative
©2021 VMware, Inc.
@Alexandre_Roman 8
©2021 VMware, Inc.
@Alexandre_Roman 9
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: spring-on-k8s
spec:
template:
spec:
containers:
- image: alexandreroman/spring-on-k8s
A dream come true
A Kubernetes YAML descriptor that fits in a slide 😮
What you get as a result:
✅Pods running in your cluster
✅Managed by a Deployment / ReplicaSet
✅With “horizontal pod autoscaling”
✅Exposed a cluster internal service
✅Accessible through an ingress route
How cool is that?!?
©2021 VMware, Inc.
@Alexandre_Roman 10
apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-on-k8s
spec:
selector:
matchLabels:
role: app
template:
metadata:
labels:
role: app
spec:
containers:
- name: app
image: alexandreroman/spring-on-k8s:latest
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
livenessProbe:
httpGet:
port: http
path: /actuator/health/liveness
readinessProbe:
httpGet:
port: http
path: /actuator/health/readiness
---
apiVersion: v1
kind: Service
metadata:
name: spring-on-k8s
spec:
type: ClusterIP
ports:
- port: 8080
protocol: TCP
targetPort: http
selector:
role: app
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: spring-on-k8s
spec:
rules:
- host: springonk8s.withtanzu.com
http:
paths:
- pathType: ImplementationSpecific
path: /
backend:
service:
name: spring-on-k8s
port:
number: 8080
---
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: spring-on-k8s
spec:
minReplicas: 1
maxReplicas: 8
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: spring-on-k8s
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 60
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: spring-on-k8s
spec:
template:
spec:
containers:
- image: alexandreroman/spring-on-k8s
VS
Which one do you prefer?
©2021 VMware, Inc.
@Alexandre_Roman 11
Knative features
©2021 VMware, Inc.
@Alexandre_Roman
Node
Pod
Pod
Pod
Auto Scaling
HTTP Router
LoadBalancer
Knative Pod
Autoscaler
Queue-Proxy
Concurrency=1
User container
Kubernetes
apiserver
Kubelet
ReplicaSet
Goal: Scale container replicas based on request
rate.
Scaling based on request rate provides an earlier
signal than CPU usage and aligns well with
concurrency limits.
Solution: custom autoscaler that collects request
information from queue-proxy.
Count = 3
Requests = 3
©2021 VMware, Inc.
@Alexandre_Roman
Node
Pod
Scale-to-Zero
HTTP Router
LoadBalancer
Activator
Queue-Proxy User container
Kubernetes
apiserver
ReplicaSet
Goal: Support scale-to-zero.
When user containers are finished processing
requests, allow all of them to be shut down and
the activator used instead.
Solution: The Knative controller rewrites the
HTTP routing rules when scaling to count=0 to
add the Activator to the Kubernetes service.
Controller
Count = 0
©2021 VMware, Inc.
@Alexandre_Roman
Node
Pod
Scale-From-Zero
HTTP Router
LoadBalancer
Activator
Queue-Proxy User container
Kubernetes
apiserver
Kubelet
ReplicaSet
Goal: Support scale-from-zero.
Be able to start the user container on demand
when a request arrives for it.
Solution: The activator component stalls the
HTTP request until a user Pod is available to
handle it.
GET / HTTP/1.1
©2021 VMware, Inc.
@Alexandre_Roman
Node
Pod
Pod
Advanced Rollout Support
HTTP Router
LoadBalancer
Queue-Proxy User container
ReplicaSet
Goal: Support percentage rollout of new features.
Small services may only receive enough traffic to
use one or two Pods. This makes it difficult to do a
good progressive rollout.
Solution: Knative supports percentage-based
traffic assignment to Revisions of a Service.
Node
Pod
Queue-Proxy User container
ReplicaSet
Percent = 10
Percent = 90
©2021 VMware, Inc.
@Alexandre_Roman
Standardized Event Notifications
Goal: Support routing events from an external system to one or more functions.
This is the core of building an event-driven system – delivering event notifications from systems
that produce them (examples: object.create from an object store like S3 or vm.delete from
vCenter) to components that consume them.
Solution: Knative uses a standard delivery protocol, pushed CloudEvents over HTTP, for passing
the event notification from one component to the next.
External
System
𝒇(𝒙)
Destination
(Knative Service)
?
©2021 VMware, Inc.
@Alexandre_Roman
Easy to Support Many External System Events
External
System
Source Adapter
𝒇(𝒙)
Destination
(Knative Service)
Goal: Support delivering events from many different external systems.
There are many external systems which already exist and can deliver event notifications in some
way (GitHub webhooks, tailing a log, pubsub notifications over various protocols). Configuring
and receiving these event notifications is custom for each system, however.
Solution: Build a source adapter per system (typically, a small Kubernetes custom resource and
a backing container) to translate subscription requests to event deliveries.
?
©2021 VMware, Inc.
@Alexandre_Roman
Easy to Map Events to Destinations
External
System
Source Adapter Broker
Trigger 𝒇(𝒙)
Trigger
Destination
(Knative Service)
Goal: Support delivering specific events from a broker to different destinations.
Broker acts as a central hub for events, accepting and persisting event notifications in a durable
way and performing fan-out of stored event notifications to multiple destinations.
Solution: Triggers provide content-based filtering (currently simple string-matching) against
CloudEvents attributes in the event notification. Only events which match the filter are passed to
the destination.
©2021 VMware, Inc.
@Alexandre_Roman 20
Your application is stateless: Knative will kill your pods when there’s no traffic
You rely on eventing, leveraging brokers such as Kafka and RabbitMQ
You need a cross-platform serverless framework – deploy to any Kubernetes
You need proportional phase releases – like “A/B testing”
You want to optimize the resources of your cluster – autoscaling FTW
My advices to simplify your Kubernetes developer experience
Use Knative for your next application if…
🔥
©2021 VMware, Inc.
@Alexandre_Roman 21
Wanna try and learn Knative?
learn.tanzu.io – free workshops including live K8s clusters with Knative enabled
Tips and tricks?
knative.tips
My demo app
github.com/alexandreroman/kn-todo-app
It’s dangerous to go alone: take this.
Resources
👍
Confidential │ ©2021 VMware, Inc.
Thank You

More Related Content

What's hot

Istio a service mesh
Istio   a service meshIstio   a service mesh
Istio a service mesh
Chandresh Pancholi
 
Kubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & ComplexityKubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & Complexity
DevOps.com
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with Kubernetes
Satnam Singh
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
Weaveworks
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
Knoldus Inc.
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
Araf Karsh Hamid
 
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
Ryan Jarvinen
 
Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)
DongHyeon Kim
 
MySQL operator for_kubernetes
MySQL operator for_kubernetesMySQL operator for_kubernetes
MySQL operator for_kubernetes
rockplace
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Edureka!
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
OpenStack Korea Community
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh Architectures
Mirantis
 
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
Ji-Woong Choi
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with Istio
Michelle Holley
 
Cilium + Istio with Gloo Mesh
Cilium + Istio with Gloo MeshCilium + Istio with Gloo Mesh
Cilium + Istio with Gloo Mesh
Christian Posta
 
ArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdf
amanmakwana3
 
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
Amazon Web Services Korea
 
stupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdfstupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdf
DaniloQueirozMota
 
[AWS Migration Workshop] AWS 클라우드로의 안전하고 신속한 마이그레이션 방안
[AWS Migration Workshop]  AWS 클라우드로의 안전하고 신속한 마이그레이션 방안[AWS Migration Workshop]  AWS 클라우드로의 안전하고 신속한 마이그레이션 방안
[AWS Migration Workshop] AWS 클라우드로의 안전하고 신속한 마이그레이션 방안
Amazon Web Services Korea
 

What's hot (20)

Istio a service mesh
Istio   a service meshIstio   a service mesh
Istio a service mesh
 
Kubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & ComplexityKubernetes: Reducing Infrastructure Cost & Complexity
Kubernetes: Reducing Infrastructure Cost & Complexity
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with Kubernetes
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
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
 
Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)
 
MySQL operator for_kubernetes
MySQL operator for_kubernetesMySQL operator for_kubernetes
MySQL operator for_kubernetes
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh Architectures
 
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with Istio
 
Cilium + Istio with Gloo Mesh
Cilium + Istio with Gloo MeshCilium + Istio with Gloo Mesh
Cilium + Istio with Gloo Mesh
 
ArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdf
 
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
 
stupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdfstupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdf
 
[AWS Migration Workshop] AWS 클라우드로의 안전하고 신속한 마이그레이션 방안
[AWS Migration Workshop]  AWS 클라우드로의 안전하고 신속한 마이그레이션 방안[AWS Migration Workshop]  AWS 클라우드로의 안전하고 신속한 마이그레이션 방안
[AWS Migration Workshop] AWS 클라우드로의 안전하고 신속한 마이그레이션 방안
 

Similar to Knative goes
 beyond serverless | Alexandre Roman

Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and Tekton
Leon Stigter
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI Admin
Kendrick Coleman
 
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptxvSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
hokismen
 
Kubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with GardenerKubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with Gardener
QAware GmbH
 
VMware Tanzu Kubernetes Connect
VMware Tanzu Kubernetes ConnectVMware Tanzu Kubernetes Connect
VMware Tanzu Kubernetes Connect
VMware Tanzu
 
Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)
GabrielaRodriguez182401
 
Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23
msohn
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Patrick Chanezon
 
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
 
[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
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
VMware Tanzu
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
Stfalcon Meetups
 
VMware Tanzu Introduction- June 11, 2020
VMware Tanzu Introduction- June 11, 2020VMware Tanzu Introduction- June 11, 2020
VMware Tanzu Introduction- June 11, 2020
VMware Tanzu
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
QAware GmbH
 
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
 
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Bitnami
 
VMware Tanzu Introduction
VMware Tanzu IntroductionVMware Tanzu Introduction
VMware Tanzu Introduction
VMware Tanzu
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
Patrick Chanezon
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
kloia
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
confluent
 

Similar to Knative goes
 beyond serverless | Alexandre Roman (20)

Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and Tekton
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI Admin
 
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptxvSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
vSphere with Tanzu Tech Overview 7.0 U1 (1).pptx
 
Kubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with GardenerKubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with Gardener
 
VMware Tanzu Kubernetes Connect
VMware Tanzu Kubernetes ConnectVMware Tanzu Kubernetes Connect
VMware Tanzu Kubernetes Connect
 
Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)Vmware Tanzu Kubernetes Connect(Spanish)
Vmware Tanzu Kubernetes Connect(Spanish)
 
Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
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)
 
[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
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 
VMware Tanzu Introduction- June 11, 2020
VMware Tanzu Introduction- June 11, 2020VMware Tanzu Introduction- June 11, 2020
VMware Tanzu Introduction- June 11, 2020
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
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
 
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
 
VMware Tanzu Introduction
VMware Tanzu IntroductionVMware Tanzu Introduction
VMware Tanzu Introduction
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
Modern Cloud-Native Streaming Platforms: Event Streaming Microservices with K...
 

More from KCDItaly

Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Ferna...
Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Ferna...Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Ferna...
Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Ferna...
KCDItaly
 
OMG Namespaces! | Raffaele Di Fazio
OMG Namespaces! | Raffaele Di FazioOMG Namespaces! | Raffaele Di Fazio
OMG Namespaces! | Raffaele Di Fazio
KCDItaly
 
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò RaspaTu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
KCDItaly
 
Kubernetes Policy As Code usando WebAssembly | Flavio Castelli
Kubernetes Policy As Code usando WebAssembly | Flavio CastelliKubernetes Policy As Code usando WebAssembly | Flavio Castelli
Kubernetes Policy As Code usando WebAssembly | Flavio Castelli
KCDItaly
 
kube-green | Davide Bianchi
kube-green | Davide Bianchikube-green | Davide Bianchi
kube-green | Davide Bianchi
KCDItaly
 
Cloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
Cloud Native resiliency patterns from the ground up | Ana-Maria MihalceanuCloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
Cloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
KCDItaly
 
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
KCDItaly
 

More from KCDItaly (7)

Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Ferna...
Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Ferna...Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Ferna...
Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Ferna...
 
OMG Namespaces! | Raffaele Di Fazio
OMG Namespaces! | Raffaele Di FazioOMG Namespaces! | Raffaele Di Fazio
OMG Namespaces! | Raffaele Di Fazio
 
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò RaspaTu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
 
Kubernetes Policy As Code usando WebAssembly | Flavio Castelli
Kubernetes Policy As Code usando WebAssembly | Flavio CastelliKubernetes Policy As Code usando WebAssembly | Flavio Castelli
Kubernetes Policy As Code usando WebAssembly | Flavio Castelli
 
kube-green | Davide Bianchi
kube-green | Davide Bianchikube-green | Davide Bianchi
kube-green | Davide Bianchi
 
Cloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
Cloud Native resiliency patterns from the ground up | Ana-Maria MihalceanuCloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
Cloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
 
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
 

Recently uploaded

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
FODUU
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 

Recently uploaded (20)

Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 

Knative goes
 beyond serverless | Alexandre Roman

  • 1. ©2021 VMware, Inc. Knative goes beyond serverless Alexandre Roman Senior Solution Engineer, VMware Tanzu November 2021
  • 2. ©2021 VMware, Inc. @Alexandre_Roman 2 Alexandre Roman Senior Solution Engineer, VMware Tanzu @Alexandre_Roman Welcome to this session!
  • 4. ©2021 VMware, Inc. @Alexandre_Roman 4 Pod Service LoadBalancer Ingress Or? Deployment replicas Not so easy Deploying an application to Kubernetes
  • 5. ©2021 VMware, Inc. @Alexandre_Roman 5 The reality Deploying an application to Kubernetes TOO MUCH YAML
  • 6. ©2021 VMware, Inc. @Alexandre_Roman 6 We all agree, right? What developers want Write code 👍 Write infrastructure code 😵 💫
  • 7. ©2021 VMware, Inc. @Alexandre_Roman 7 An API simplifying the Kubernetes developer experience… and more Introducing Knative
  • 9. ©2021 VMware, Inc. @Alexandre_Roman 9 apiVersion: serving.knative.dev/v1 kind: Service metadata: name: spring-on-k8s spec: template: spec: containers: - image: alexandreroman/spring-on-k8s A dream come true A Kubernetes YAML descriptor that fits in a slide 😮 What you get as a result: ✅Pods running in your cluster ✅Managed by a Deployment / ReplicaSet ✅With “horizontal pod autoscaling” ✅Exposed a cluster internal service ✅Accessible through an ingress route How cool is that?!?
  • 10. ©2021 VMware, Inc. @Alexandre_Roman 10 apiVersion: apps/v1 kind: Deployment metadata: name: spring-on-k8s spec: selector: matchLabels: role: app template: metadata: labels: role: app spec: containers: - name: app image: alexandreroman/spring-on-k8s:latest imagePullPolicy: IfNotPresent ports: - name: http containerPort: 8080 livenessProbe: httpGet: port: http path: /actuator/health/liveness readinessProbe: httpGet: port: http path: /actuator/health/readiness --- apiVersion: v1 kind: Service metadata: name: spring-on-k8s spec: type: ClusterIP ports: - port: 8080 protocol: TCP targetPort: http selector: role: app --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: spring-on-k8s spec: rules: - host: springonk8s.withtanzu.com http: paths: - pathType: ImplementationSpecific path: / backend: service: name: spring-on-k8s port: number: 8080 --- apiVersion: autoscaling/v2beta2 kind: HorizontalPodAutoscaler metadata: name: spring-on-k8s spec: minReplicas: 1 maxReplicas: 8 scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: spring-on-k8s metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 60 apiVersion: serving.knative.dev/v1 kind: Service metadata: name: spring-on-k8s spec: template: spec: containers: - image: alexandreroman/spring-on-k8s VS Which one do you prefer?
  • 12. ©2021 VMware, Inc. @Alexandre_Roman Node Pod Pod Pod Auto Scaling HTTP Router LoadBalancer Knative Pod Autoscaler Queue-Proxy Concurrency=1 User container Kubernetes apiserver Kubelet ReplicaSet Goal: Scale container replicas based on request rate. Scaling based on request rate provides an earlier signal than CPU usage and aligns well with concurrency limits. Solution: custom autoscaler that collects request information from queue-proxy. Count = 3 Requests = 3
  • 13. ©2021 VMware, Inc. @Alexandre_Roman Node Pod Scale-to-Zero HTTP Router LoadBalancer Activator Queue-Proxy User container Kubernetes apiserver ReplicaSet Goal: Support scale-to-zero. When user containers are finished processing requests, allow all of them to be shut down and the activator used instead. Solution: The Knative controller rewrites the HTTP routing rules when scaling to count=0 to add the Activator to the Kubernetes service. Controller Count = 0
  • 14. ©2021 VMware, Inc. @Alexandre_Roman Node Pod Scale-From-Zero HTTP Router LoadBalancer Activator Queue-Proxy User container Kubernetes apiserver Kubelet ReplicaSet Goal: Support scale-from-zero. Be able to start the user container on demand when a request arrives for it. Solution: The activator component stalls the HTTP request until a user Pod is available to handle it. GET / HTTP/1.1
  • 15. ©2021 VMware, Inc. @Alexandre_Roman Node Pod Pod Advanced Rollout Support HTTP Router LoadBalancer Queue-Proxy User container ReplicaSet Goal: Support percentage rollout of new features. Small services may only receive enough traffic to use one or two Pods. This makes it difficult to do a good progressive rollout. Solution: Knative supports percentage-based traffic assignment to Revisions of a Service. Node Pod Queue-Proxy User container ReplicaSet Percent = 10 Percent = 90
  • 16. ©2021 VMware, Inc. @Alexandre_Roman Standardized Event Notifications Goal: Support routing events from an external system to one or more functions. This is the core of building an event-driven system – delivering event notifications from systems that produce them (examples: object.create from an object store like S3 or vm.delete from vCenter) to components that consume them. Solution: Knative uses a standard delivery protocol, pushed CloudEvents over HTTP, for passing the event notification from one component to the next. External System 𝒇(𝒙) Destination (Knative Service) ?
  • 17. ©2021 VMware, Inc. @Alexandre_Roman Easy to Support Many External System Events External System Source Adapter 𝒇(𝒙) Destination (Knative Service) Goal: Support delivering events from many different external systems. There are many external systems which already exist and can deliver event notifications in some way (GitHub webhooks, tailing a log, pubsub notifications over various protocols). Configuring and receiving these event notifications is custom for each system, however. Solution: Build a source adapter per system (typically, a small Kubernetes custom resource and a backing container) to translate subscription requests to event deliveries. ?
  • 18. ©2021 VMware, Inc. @Alexandre_Roman Easy to Map Events to Destinations External System Source Adapter Broker Trigger 𝒇(𝒙) Trigger Destination (Knative Service) Goal: Support delivering specific events from a broker to different destinations. Broker acts as a central hub for events, accepting and persisting event notifications in a durable way and performing fan-out of stored event notifications to multiple destinations. Solution: Triggers provide content-based filtering (currently simple string-matching) against CloudEvents attributes in the event notification. Only events which match the filter are passed to the destination.
  • 19. ©2021 VMware, Inc. @Alexandre_Roman 20 Your application is stateless: Knative will kill your pods when there’s no traffic You rely on eventing, leveraging brokers such as Kafka and RabbitMQ You need a cross-platform serverless framework – deploy to any Kubernetes You need proportional phase releases – like “A/B testing” You want to optimize the resources of your cluster – autoscaling FTW My advices to simplify your Kubernetes developer experience Use Knative for your next application if… 🔥
  • 20. ©2021 VMware, Inc. @Alexandre_Roman 21 Wanna try and learn Knative? learn.tanzu.io – free workshops including live K8s clusters with Knative enabled Tips and tricks? knative.tips My demo app github.com/alexandreroman/kn-todo-app It’s dangerous to go alone: take this. Resources 👍
  • 21. Confidential │ ©2021 VMware, Inc. Thank You

Editor's Notes

  1. Contributors develop and contribute code and docs to the OSS project