Welcome to the Complete Developer’s Guide to Serverless Apps. This guide is focused on all things related to serverless apps, including serverless functions, Functions-as-a-Service, cloud functions, edge functions, lambda functions, and serverless WebAssembly (Wasm).
If this list sounds unfamiliar, this guide is for you. Throughout the guide, we define serverless and its many related terms, dive into details about how serverless apps work and give examples for building your serverless apps. Wasm is a new technology in the serverless space, and this guide discusses how Wasm is changing the serverless landscape.
About The Complete Developer’s Guide to Serverless Apps
This guide dives into the topic of serverless application development. The guide begins with an introduction to serverless development. To get the most out of serverless apps, it is useful to know what the term “serverless” means, how it relates to application building, and how it relates to serverless functions (also called Functions-as-a-Service or Cloud Functions). Wasm is a new enabling technology for serverless apps. This guide introduces Wasm and explains why it is the key to the future of serverless applications.
From there, the guide turns toward more practical matters. We cover the conceptual model that serverless applications use. There are advantages and disadvantages of serverless functions, and we cover those as well. Finally, the section closes off with some useful serverless tools. Fermyon has developed the Spin tool to get you started with Wasm-based serverless applications; we will introduce Spin and other tools.
This guide also discusses serverless functions, focusing more on the programming model than the application structure. We talk about the purpose of serverless functions, the best practices for writing functions, and also why Wasm is the emerging trend in the serverless world.
We briefly touch on the discussion about edge and cloud. In the last few years, edge functions have appeared as a stripped-down version of serverless apps. We cover the basics of edge computing and compare edge and cloud.
Once we have established the fundamentals from above, we dive into the practical matters of creating serverless applications. It is useful to think of serverless applications as using the familiar language of design patterns. We talk about choosing a programming language (or languages, since serverless apps can use multiple languages) and then dive into an example. We show you how to use Spin and the free tier of Fermyon Cloud to build and deploy a serverless app. We also consider what is required in the day-to-day operation of a serverless app. (Spoiler: Not much!)
We help you leverage serverless apps by describing the different problems that can be efficiently solved using serverless apps. Not all applications ought to be (or even can be) written as serverless apps. But there are tremendous advantages to writing web applications, microservices, event responders, and other programs as serverless apps. As you read on you will discover which application types are good for serverless apps, and why this is the case.
This guide will draw on your inner platform engineer whilst looking at the infrastructure beneath serverless apps. With a devops mindset, it will become clear that there are different ways in which serverless application platforms have been built, and what the strengths and weaknesses of each are. Again, we will return to Wasm as the best way to implement a serverless application platform, and explain why we built Fermyon Cloud as a Wasm serverless application platform.
To close off the book, we will conclude with a look into the future. Serverless apps are changing rapidly, and good things are coming in the not-so-distant future. Now that Wasm has emerged as an enabling technology, serverless applications will evolve at a rapid pace. And we’re excited about what the future holds in store.
While this is not a tutorial for writing serverless apps, the text has many links to resources to get you started writing serverless functions and applications.Browse Chapters