0%

Knative in Action teaches you to build complex and efficient serverless applications. You’ll dive into Knative’s unique design principles and grasp cloud native concepts like handling latency-sensitive workloads. You’ll deliver updates with Knative Serving and interlink apps, services, and systems with Knative Eventing. To keep you moving forward, every example includes deployment advice and tips for debugging.

Table of Contents

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