Leveraging Go to Build a FaaS Platform
This will be a step-by-step talk on building a FaaS platform for executing Go functions from packages exposed via Git and a REST API to trigger function execution. The system will utilize the Go build system internally, text templates, GOPATH, and the Go standard library atop FreeBSD Jails and ZFS. Function as a service (FaaS) is a type of cloud computing that allows a consumer of the service the ability to run discrete, specific pieces of code rather than building a full application or integrating that functionality into a larger application. This approach allows for potentially less code, cheaper computing costs, and faster development. These systems are quickly becoming integral components of modern architectures. Most of the major cloud providers have incorporated some form of FaaS into their service offering. One of the biggest benefits to using one of these services is that you have access to the catalog of other services they offer which allows for building powerful applications quickly with less code. This talk will go through the steps necessary to build your own FaaS system that will be able to execute Go functions in packages accessible via Git. We’ll begin with a high level review of what FreeBSD Jails are, how they’re used traditionally and how they’ll be used by our system. Then a high level review of ZFS, more from the perspective of our use case which will include zpools, datasets, snapshots, and clones and how they’ll provide us with our filesystems. Once the base system components are understood, we’ll take a look at why Go is a great choice to build this system. At the heart of what binds these components together is Go’s text template system, the compiler, GOPATH, and the standard library. The talk will also cover building an extremely simple DHCP server embedded into the application as well as a REST API for triggering function execution and a means of administration. The goal, By the end is to have the audience understand how Go makes building a FaaS platform easy with real world, practical examples, and a reference implementation to use for inspiration or to build from.
About the session
The session is approved.
The presenter will not allow another presenter.
There are 29 people interested in this session.
Scheduled
- Room
- IRN-125
- Time
- 2:15 PM - 3:15 PM
- Calendar File
- Download
Edit Session