Knative in Action

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

In Knative in Action, you’ll start by getting up to speed with the basics of serverless computing, Knative’s design concepts, and the tricky problems that the toolkit works to simplify. Next, Knative expert Jacques Chester takes you through how to use Knative Serving to build your systems, baking in autoscaling, auto-updating, and easy deployment right from the start.

Take the pain out of managing serverless applications. Knative, a collection of Kubernetes extensions curated by Google, simplifies building and running serverless systems. Knative in Action guides you through the Knative toolkit, showing you how to launch, modify, and monitor event-based apps built using cloud-hosted functions.

In Knative in Action, you’ll start by getting up to speed with the basics of serverless computing, Knative’s design concepts, and the tricky problems that the toolkit works to simplify. Next, Knative expert Jacques Chester takes you through how to use Knative Serving to build your systems, baking in autoscaling, auto-updating, and easy deployment right from the start. From there you’ll learn how to use Knative Eventing to wire together disparate systems into an elegant, functional whole. Finally, you'll learn how Knative can be used to smooth your shipping pipeline, from initial development right through to monitoring your software in production.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

Author(s): Jacques Chester
Edition: 1
Publisher: Simon and Schuster
Year: 2021

Language: English
Commentary: Vector PDF
Pages: 375
City: Shelter Island, NY
Tags: DevOps; Scalability; Kubernetes; Load Balancing; Knative

Knative in Action
brief contents
contents
foreword
preface
acknowledgements
about this book
Who should read this book?
How this book is organized: A roadmap
About the code
liveBook discussion forum
Other online resources
about the author
about the cover illustration
1 Introduction
1.1 What is Knative?
1.1.1 Deploying, upgrading, and routing
1.1.2 Autoscaling
1.1.3 Eventing
1.2 So what?
1.3 Where Knative shines
1.3.1 Workloads with unpredictable, latency-insensitive demand
1.3.2 Stitching together events from multiple sources
1.3.3 Decomposing monoliths in small increments
1.4 It’s a hit
1.4.1 Trouble in paradise
1.5 Changing things
1.6 What’s in the Knative box?
1.6.1 Serving
1.6.2 Eventing
1.6.3 Serving and Eventing
1.7 Keeping things under control
1.7.1 Loops
1.7.2 Loops within loops
1.8 Are you ready?
Summary
References
2 Introducing Knative Serving
2.1 A walkthrough
2.1.1 Your first deployment
2.1.2 Your second deployment
2.1.3 Conditions
2.1.4 What does Active mean?
2.1.5 Changing the image
2.1.6 Splitting traffic
2.2 Serving components
2.2.1 The controller and reconcilers
2.2.2 The Webhook
2.2.3 Networking controllers
2.2.4 Autoscaler, Activator, and Queue-Proxy
Summary
References
3 Configurations and Revisions
3.1 Those who cannot remember the past are condemned to redeploy it
3.2 The bedtime story version of the history of deployment as a concept
3.2.1 The Blue/Green deployment
3.2.2 The Canary deployment
3.2.3 Progressive deployment
3.2.4 Back to the future
3.3 The anatomy of Configurations
3.3.1 Configuration status
3.3.2 Taking it all in with kubectl describe
3.4 The anatomy of Revisions
3.4.1 Revision basics
3.4.2 Container basics
3.4.3 Container images
3.4.4 The command
3.4.5 The environment, directly
3.4.6 The environment, indirectly
3.4.7 Configuration via files
3.4.8 Probes
3.4.9 Setting consumption limits
3.4.10 Container concurrency
3.4.11 Timeout seconds
Summary
References
4 Routes
4.1 Using kn to work with Routes
4.2 The anatomy of Routes
4.3 The anatomy of TrafficTargets
4.3.1 configurationName and revisionName
4.3.2 latestRevision
4.3.3 tag
Summary
5 Autoscaling
5.1 The autoscaling problem
5.2 Autoscaling when there are zero instances
5.2.1 The Autoscaler panics
5.3 Autoscaling when there are one or a few instances
5.4 Autoscaling when there are many instances
5.5 A little theory
5.5.1 Control
5.5.2 Queueing
5.6 The actual calculation
5.6.1 To panic, or not to panic, that is the question
5.7 Configuring autoscaling
5.7.1 How settings get applied
5.7.2 Setting scaling limits
5.7.3 Setting scaling rates
5.7.4 Setting target values
5.7.5 Setting decision intervals
5.7.6 Setting window size
5.7.7 Setting the panic threshold
5.7.8 Setting the target burst capacity
5.7.9 Other autoscalers
5.8 A cautionary note
Summary
References
6 Introduction to Eventing
6.1 The road to CloudEvents
6.2 The anatomy of CloudEvents
6.2.1 Required attributes
6.2.2 Optional attributes
6.2.3 Extension attributes
6.3 A word about event formats and protocol bindings
6.3.1 Structured content mode
6.3.2 Binary content mode
6.3.3 Batched content mode
6.4 A walkthrough
6.5 The basic architecture of Eventing
6.5.1 Messaging
6.5.2 Eventing
6.5.3 Sources
6.5.4 Flows
6.5.5 Duck types
Summary
References
7 Sources and Sinks
7.1 Sources
7.1.1 The anatomy of Sources
7.1.2 Using kn to work with Sources
7.2 The Sink
7.3 The mysterious SinkBinding (and its sidekick, ContainerSource)
7.3.1 Provisioning and binding are not the same
7.4 Other Sources
Summary
References
8 Filtering and Flowing
8.1 The Broker
8.2 Filters
8.2.1 Filtering on custom attributes
8.2.2 Nice things that Eventing adds for you
8.3 Sequences
8.3.1 A walkthrough
8.4 The anatomy of Sequences
8.4.1 Step
8.4.2 Reply
8.4.3 ChannelTemplate and Channels
8.4.4 Mixing Sequences and filters
8.5 Parallels
8.5.1 A walkthrough
8.6 Dealing with failures
8.6.1 Retries and backoffs
8.6.2 Dead letters
8.6.3 The bad news
Summary
References
9 From Conception to Production
9.1 Turning your software into something runnable
9.1.1 Always use digests
9.1.2 Using Cloud Native Buildpacks (CNBs) and the pack tool
9.2 Getting your software to somewhere it runs
9.3 Knowing how your software is running
9.3.1 Logs
9.3.2 Metrics
9.3.3 Traces
Summary
References
Appendix—Installing Knative for Development
A.1 Installing kubectl and kn
A.2 Installing Knative
index
Numerics
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y