Home

Awesome

The openfaas-workshop was written in 2017/2018, however more appropriate and recent materials now exist:

openfaas-workshop

This is a self-paced workshop for learning how to build, deploy and run serverless functions with OpenFaaS.

In this workshop you begin by deploying OpenFaaS to your laptop or a remote cluster with Docker for Mac or Windows. You will then kick the tires with the OpenFaaS UI, CLI and Function Store. After building, deploying an invoking your own Serverless Functions in Python you'll go on to cover topics such as: managing dependencies with pip, dealing with API tokens through secure secrets, monitoring functions with Prometheus, invoking functions asynchronously and chaining functions together to create applications. The labs culminate by having you create your very own GitHub bot which can respond to issues automatically. The same method could be applied by connecting to online event-streams through IFTTT.com - this will enable you to build bots, auto-responders and integrations with social media and IoT devices.

Finally the labs cover more advanced topics and give suggestions for further learning.

Translations

Learn for free, show your appreciation as a GitHub Sponsor

OpenFaaS along with these materials are provided for free and require time and effort to maintain.

Requirements:

We walk through how to install these requirements in Lab 1. Please do Lab 1 before you attend an instructor-led workshop.

Docker:

Note: As a last resort if you have an incompatible PC you can run the workshop on https://labs.play-with-docker.com/.

Instructor-led workshops

If you're taking an instructor-led workshops then a link will be shared to join the OpenFaaS Slack community. Use the designated channel for the workshop to discuss comments, questions and suggestions.

Pick your track

In Lab 1 you will pick your track and then throughout the labs look out for any special commands needed for the container orchestrator for your track.

Kubernetes

You can also learn about Serverless on Kubernetes using OpenFaaS.

The recommendation from the OpenFaaS community is that you run Kubernetes in production, but all the knowledge you can is transferrable and functions do not have to be rebuilt.

Lab 1 - Prepare for OpenFaaS

Lab 2 - Test things out

Lab 3 - Introduction to Functions

Lab 4 - Go deeper with functions

Lab 5 - Create a GitHub bot

Build issue-bot - an auto-responder for GitHub Issues

Lab 6 - HTML for your functions

Lab 7 - Asynchronous Functions

Lab 8 - Advanced Feature - Timeouts

Lab 9 - Advanced Feature - Auto-scaling

Lab 10 - Advanced Feature - Secrets

Lab 11 - Advanced feature - Trust with HMAC

You can start with the first lab Lab 1.

Tear down / Clear up

You can find how to stop and remove OpenFaaS here

Next steps

If you're in an instructor-led workshop and have finished the labs you may want to go back through the labs and edit/alter the code and values or carry out some of your own experiments.

Here are some ideas for follow-on tasks / topics:

OpenFaaS Cloud

Try the multi-user, managed experience of OpenFaaS - either on the Community Cluster, or by hosting your own OpenFaaS Cloud.

TLS

CI/CD

Setup Jenkins, Google Cloud Build or GitLab and build and deploy your own functions using the OpenFaaS CLI:

Storage / databases

Instrumentation / monitoring

Additional blog posts and tutorials

Appendix

The appendix contains some additional content.

Acknowledgements

Thanks to @iyovcheva, @BurtonR, @johnmccabe, @laurentgrangeau, @stefanprodan, @kenfdev, @templum & @rgee0 for contributing to, testing and translating the labs.