What this book covers
Chapter 1, Serverless Computing and Function as a Service, introduces serverless technologies and the need for serverless. The chapter starts with an introduction to the evolution of the cloud and how internet infrastructure evolved over time. Then it dives into FaaS, its history, how FaaS works, and serverless in general.
Chapter 2, Backend as a Service and Powerful Serverless Platforms, talks about serverless backends and advanced backend services. While FaaS provides computing power in the serverless world, compute in isolation doesn’t add business value. This is where serverless backends come into the picture. The chapter discusses various serverless backends, including object stores, message queues, workflow orchestrators, and so on.
Chapter 3, Serverless Solutions in AWS, covers serverless solutions in AWS, starting with its flagship FaaS service: Lambda. Then it covers the core serverless services such as Simple Storage Service (S3), Simple Queue Service (SQS), DynamoDB, and so on. The chapter also delves into other serverless backends such as Simple Notification Service (SNS), EventBridge, Step Functions, and Cognito.
Chapter 4, Serverless Solutions in Azure, covers the Microsoft Azure cloud’s serverless offering. The most important service is the FaaS offering: Azure Functions. This chapter also covers other critical services such as Azure Cosmos DB, Logic Apps, Event Grid, Event Hubs, and so on.
Chapter 5, Serverless Solutions in GCP, covers the most important serverless services that Google Cloud offers. The chapter starts by covering in detail Google Cloud Functions, followed by the critical serverless backends such as Pub/Sub, Cloud Storage, Workflows, and so on. It also touches upon the newer serverless services such as Cloud Run, Eventarc, Cloud Scheduler, and many database services.
Chapter 6, Serverless Cloudflare, talks about how Cloudflare has a unique position among the serverless vendors by offering a number of services in its core role as a network and edge services vendor. Its FaaS platform – Cloudflare Workers – was brought in to supercharge its edge services. From that, Cloudflare’s serverless portfolios have evolved to add more services such as Workers KV, Cloudflare Pages, R2, and so on. This chapter covers all these services with examples and code snippets.
Chapter 7, Kubernetes, Knative, and OpenFaaS, covers the most cloud-native serverless solutions – based on Kubernetes. Knative is a cloud-native FaaS implementation that can be deployed in any Kubernetes cluster, which also powers Google Cloud Functions behind the scenes. This chapter covers its implementation with examples using a Kubernetes cluster. OpenFaaS is another open source platform that can be run on Kubernetes or on virtual machines, and the chapter covers the architecture as well as usage with examples.
Chapter 8, Self-Hosted FaaS with Apache OpenWhisk, talks about Apache OpenWhisk, which is an open source FaaS platform hosted and maintained by the Apache Foundation. It powers the FaaS platforms for IBM Cloud, Adobe I/O Runtime, and so on. This chapter covers its architecture and implementation with examples.
Chapter 9, Implementing DevOps Practices for Serverless, covers multiple frameworks that are helpful to implement your serverless story. It starts with the coverage of “the Serverless Framework,” followed by another framework called Zappa – both of which make serverless development easy. This chapter also talks about Infrastructure as Code (IaC) and its implementation with Terraform and Pulumi.
Chapter 10, Serverless Security, Observability, and Best Practices, talks about serverless security, which I find is a topic that is not given enough attention, where most of the security responsibility is offloaded to the vendor. This chapter examines the cloud responsibility matrix and the security best practices laid out by different organizations. It also talks about observability for serverless services and closes the chapter with industry best practices.
Chapter 11, Architectural and Design Patterns for Serverless, has the central theme of how to design better serverless solutions. To help with this, this chapter starts by giving an introduction to software design patterns followed by cloud architecture patterns. Then, this chapter discusses the Well-Architected Framework and patterns for serverless applications.