In Serverless for Everyone Else, you'll learn practical use-cases for Serverless Functions, how to build and deploy your own functions that you can run anywhere at a low, predictable cost.
The faasd project makes it quick and easy way to start building and deploying functions, within the first few hours of trying out the project. You'll write practical functions in JavaScript using the Node.js template which makes it quick and easy to take a few lines of code, and to transform that into a HTTP endpoint.
Once you have the basics under your belt, you'll learn how to do more advanced tasks like scheduled tasks, running functions in the background, CI/CD, and adding a database to your host.
You can run everything on your laptop using a VM, in the cloud using a 5 USD / mo DigitalOcean Droplet, or even a Raspberry Pi.
Almost all the examples are compatible with OpenFaaS on Kubernetes or K3s from building functions in Node.js, to setting up multi-arch CI/CD with GitHub Actions.
Practical use-cases
Functions can help you extend an existing product or system, by writing code that is triggered by events. You can then automate all kinds of internal systems, marketing, sales, social media and more.
You'll learn how to deploy code in any language, lift and shift Dockerfiles, run requests in queues, write background jobs and to integrate with databases. faasd packages the same code as OpenFaaS, so you get built-in metrics for your HTTP endpoints, a user-friendly CLI, pre-packaged functions and templates from the store and a UI
"OpenFaaS is my favourite serverless framework as it integrates seamlessly into your workflow and faasd is the simplest way of starting to use it. This book really opens your eyes up to the things you can achieve with it for almost no overhead." - Simon Emms
Topics include:
Getting started and building function
How to use the book
Should you deploy to a VPS or Raspberry Pi?
When should you use faasd over OpenFaaS on Kubernetes?
What is included in the faasd stack?
Deploying your server with bash, cloud-init or terraform
Exploring your faasd instance through the REST API, CLI and UI
Using a private container registry
Finding functions in the store
Building your first function with Node.js
Using environment variables for configuration
Using secrets from functions, and enabling authentication tokens
Using Postgresql and databases from functions
Monitoring and operations:
Understanding how function templates work and how to customise them
Monitoring your functions with Grafana and Prometheus
Scheduling invocations and background jobs
Tuning timeouts, parallelism, running tasks in the background
Adding TLS to faasd and custom domains for functions
Getting remote access to self-hosted faasd with inlets
Advanced:
Adding a database for storage with InfluxDB, Postgresql and Redis
Exploring faasd resource consumption
Troubleshooting faasd, functions and getting logs
Upgrading and updating faasd
Multi-arch CI/CD with GitHub Actions
Taking things further, community resources and case-studies
Options for scaling up with faasd, or OpenFaaS on Kubernetes.
You can see the full table of contents by clicking the image preview carousel.
"Do you need to try Serverless functions but you simply do not want to lose time with the "hosting technicalities"? Then faasd is definitively for you and how best to understand it if not by its creator directly" - Nuno do Carmo
Watch and learn with the 50min video workshop
In the workshop I walk through deploying faasd, using the OpenFaaS UI, CLI, Function and Template store, and then go on to show you how to build the first few examples using Node.js. At the end I'll give you a few more ideas for use-cases and show you how to monitor rate of execution, duration and errors in your functions with Grafana.
What people are saying about the video workshop
"Congrats Alex, Very good hands-on video as the perfect complement to your book! I really like the use cases approach and the related deployment option strategy" - Philippe Ensarguet, Group CTO, Orange Business Services
"Very slick, Alex! The green screen helps keep a personal touch. I hadn't heard of multipass. Thank you. From a continuing learning perspective, this helps me professionally to (1) know what's out there and (2) see it in action." - Kyle Brennan
The workshop is available in the Learner and Team Player tiers.
We're a community:
This is the perfect way to learn about containers and functions over a long weekend.
Even if you've never written code before, you will be able to copy and paste the examples and see how each part works. The main examples are written in Node.js, but the concepts carry over and you can also write in many other languages like Python, C#, Golang and bash.
Once you've purchased, feel free to join me and the community in the #serverless-book channel on OpenFaaS Slack .
Please leave a rating for the book after purchase. If you're not completely satisfied with the eBook, then email me within 7 days to request a no hassle refund.
64-page PDF and ePub:
You'll get the 64-page PDF and the ePub version today, with everything listed above.
Revision 6 is already out!
Add Postgresql to your installation for storing data with a full CRUD example with a schema
New introduction to the OpenFaaS Slack and what each piece does
New screenshots and examples of adding external services into your faasd cluster
Brand new rev3 PDF created with pandoc
Redis service add-on example added
Sub-chapter breaks removed to make the book more dense
50m video workshop for Learner and Team player tiers
Rev 6 - Detailed instructions for CI/CD with GitHub Actions
Rev 6 - Check system resources and consumption on your faasd instance
Rev 6 - ePub format added, along with PDF
Rev 7 - fix for npm install pq (now pg)
Rev 7 - unit testing functions with mocha
Rev 7 - update accessing core services
Coming soon:
MongoDB service add-on example
Suggest something you'd like to know about?
What people are saying
"Only been playing with it for a day now, but really amazing bit of kit...makes me wonder why not everyone is talking about it. It is to faas, as sqlite is to MySQL . You get 90% of the power, at 0.5% of the overhead" - Nic Grobler
"Once you have deployed faasd, it's one command to push your function into production. From there it's up to you what you like to build. It builds the container, publishes, and deploys your function code ready-to-use in seconds." - Peter Thaleikis
"Some of my functions are literally quick and dirty hacks that just work and drive value. I can rewrite/optimise later but surprisingly dockerfile or bash template have most of the power I need" - Tomasz Miklas
"After collecting too much dust my Raspberry Pi has found it’s purpose as a “Function-as-a-service” Box (like AWS Lambda), all with open source software by Alex Ellis with faasd for the FaaS and inlets for Ingress." - Chris Dietrich
"Finally got around fixing should-i-watch-this.com. Ditched my fully fledged k8s cluster (which was overly expensive) in favor of a simple faasd droplet for my openfaas backend. thanks Alex, works nicely!" - Alexis Reigel
"Alex, I just received the book and I really appreciate your effort to make faasd easy to understand." - Mohammad Sadegh Aslanpour
"Tonight I built an openfaas function with Python Flask that connects SMS with Twilio to Slack for bidirectional chat. It’s running on faasd that was deployed to a $5/month droplet via Terraform. This is just cool!" @technicalissues