Book Image

Serverless Architectures with Kubernetes

By : Onur Yılmaz, Sathsara Sarathchandra
Book Image

Serverless Architectures with Kubernetes

By: Onur Yılmaz, Sathsara Sarathchandra

Overview of this book

Kubernetes has established itself as the standard platform for container management, orchestration, and deployment. By learning Kubernetes, you’ll be able to design your own serverless architecture by implementing the function-as-a-service (FaaS) model. After an accelerated, hands-on overview of the serverless architecture and various Kubernetes concepts, you’ll cover a wide range of real-world development challenges faced by real-world developers, and explore various techniques to overcome them. You’ll learn how to create production-ready Kubernetes clusters and run serverless applications on them. You'll see how Kubernetes platforms and serverless frameworks such as Kubeless, Apache OpenWhisk and OpenFaaS provide the tooling to help you develop serverless applications on Kubernetes. You'll also learn ways to select the appropriate framework for your upcoming project. By the end of this book, you’ll have the skills and confidence to design your own serverless applications using the power and flexibility of Kubernetes.
Table of Contents (11 chapters)
2. Introduction to Serverless in the Cloud

Knative Serving Component

In the previous section, we deployed our first Knative application using a YAML file of the service type. When deploying the service, it created multiple other objects, including configuration, revision, and route objects. In this section, let's discuss each of these objects:

There are four resource types in the Knative Serving component:

  • Configuration: Defines the desired state of the application
  • Revision: Read-only snapshots that track the changes in configurations
  • Route: Provides traffic routing to revisions
  • Service: Top-level container for routes and configurations

The following diagram illustrates the relationship between each of these components:

Figure 6.12: Relationship between Knative services, routes, configurations, and revisions

The configuration is used to define the desired state of the application. This will define the container image used for the application and any other configuration...