Serverless Computing 2019, November 2019, London: Talk by Mario-Leander Reimer (@LeanderReimer, Principal Software Architect at QAware)
=== Please download slides if blurred! ===
Abstract: Knative is a K8s based platform to build, deploy, manage and run serverless workloads.
In this session we will take a look at the concepts of each Knative building block and apply them directly in practice. First, we’ll define and use Tekton pipelines to build our workloads. Then we’ll use Knative serving to rapidly deploy serverless containers with automatic scaling up and down to zero. Finally, we’ll show how to build loosely coupled event-driven architectures with the help of Knative eventing. This session will also cover the different installation options leveraging either Istio or the API gateways Gloo and Ambassador.
2. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware2
Mario-Leander Reimer
Principal Software Architect
QAware GmbH
3. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Cloud Native
Application Development
is complex.
YAML, Docker, Kubernetes, …
3
4. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Serverless
is the next logical evolution in
Cloud Native Software Development
4
5.
6. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
–https://landscape.cncf.io/
„Serverless computing refers to a new model of
cloud native computing, enabled by architectures
that do not require server management to build and
run applications. It leverages a finer-grained
deployment model where applications, bundled as
one or more functions, are uploaded to a platform
and then executed, scaled, and billed in response to
the exact demand needed at the moment.“
6
7. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware7
8. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware8
9. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Conceptual Building Block of Knative
9
Kubernetes
Istio
Knative
Serving
Knative
Eventing
Knative
Build
10. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Conceptual Building Block of Knative
10
Kubernetes
Istio
Knative
Serving
Knative
Eventing
Tekton
Pipelines
11. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Conceptual Building Block of Knative
11
Kubernetes
Ambassador or Gloo API Gateway
Knative
Serving
Knative
Eventing
Tekton
Pipelines
12. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Hybrid Architecture Use Cases
• Integration into Enterprise PaaS
environments
• Build container images in runtime platform
• Combination of Microservice Architecture
with EDA
• Usage of Function Services for Event-
driven use cases
• Reduced resource consumption via Scale-
to-Zero functionality
12
Enterprise PaaS
Microservices
Serverless Workloads FaaS Platform
X Y ZF1 F2 Fn
DevOps
S1 S2 Sn L M T
13. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Tekton Pipeline Concepts
13
PipelineResource Task
TaskRun
references
input output
Pipeline
PipelineRun
1..*
referencesreferences
14. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Knative Serving Concepts
• Route is a named endpoint and a
mechanism for routing traffic to
• Revisions, which are immutable
snapshots of code + config, created by
a configuration
• Configuration acts as a stream of
environments for Revisions
• Service acts as top-level container for
managing a Route and Configuration
which implement a network service
14
15. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Knative Eventing Concepts
• Direct Delivery from source to Service
• Fan-out delivery from a source or Service
response to multiple endpoints using
Channels and Subscriptions.
15
• Event Delivery as CloudEvent over HTTP Post
• Sources: k8s, Github, Cron, Kafka, Camel, SQS, PubSub
• Channels: InMemory, NATS, Kafka, PubSub
16. | Serverless Computing London | Building and running Serverless workloads the Knative way | @LeanderReimer #cloudnativenerd #qaware
Fork me
16
https://github.com/lreimer/hands-on-knative