Book Image

Docker for Serverless Applications

By : Chanwit Kaewkasi
Book Image

Docker for Serverless Applications

By: Chanwit Kaewkasi

Overview of this book

Serverless applications have gained a lot of popularity among developers and are currently the buzzwords in the tech market. Docker and serverless are two terms that go hand-in-hand. This book will start by explaining serverless and Function-as-a-Service (FaaS) concepts, and why they are important. Then, it will introduce the concepts of containerization and how Docker fits into the Serverless ideology. It will explore the architectures and components of three major Docker-based FaaS platforms, how to deploy and how to use their CLI. Then, this book will discuss how to set up and operate a production-grade Docker cluster. We will cover all concepts of FaaS frameworks with practical use cases, followed by deploying and orchestrating these serverless systems using Docker. Finally, we will also explore advanced topics and prototypes for FaaS architectures in the last chapter. By the end of this book, you will be in a position to build and deploy your own FaaS platform using Docker.
Table of Contents (15 chapters)
Title Page
Packt Upsell
Contributors
Preface
Index

Preparing a function


Before a function can be deployed and invoked, we need to prepare a binary program and pack it as a function container.

Here are the steps to package your program into a function container:

  1. Create a Dockerfile containing the FROM instruction to derive it from a base image. You can even use the Alpine base image.
  2. Add the function watchdog binary to the image using the ADD instruction. The function watchdog's name is fwatchdog and can be found on the OpenFaaS release page.
  3. Add the function program to the image. We usually use the COPY instruction to do so.
  4. Define the environment variable named fprocess with the ENV instruction to point to our function program.
  5. Expose port 8080 for this container image using the EXPOSE instruction with, of course, port number 8080.
  6. Define an entry point of this container image. We use ENTRYPOINT to point to fwatchdog.

We will do something a bit unusual, but in the proper way, to prepare a function container. We use a Docker feature called multi...