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

FaaS and Docker reviews


In this book, we introduced serverless, the FaaS platforms, and how Docker is relevant to this technology. We learned together about how to set up Docker Swarm clusters on production.

The book discussed three well-known FaaS platforms, which are OpenFaaS, OpenWhisk, and the Fn Project. OpenFaaS uses the Swarm-based orchestrator, while OpenWhisk and Fn used their own scheduling techniques on plain Docker.

Then, we demonstrated a project in Chapter 8, Putting Them All Together, to present how we can link all of these three platforms together, by running them on the same network of a Docker cluster. The project was demonstrated on how we could invoke the services of other FaaS platforms. Functions written in several programming languages were presented including Java, Go, and JavaScript (Node.js).

We used Java to write a simple function. For modern programming models, we could use the RxJava library to help writing Java programs in the reactive style, which fit very nicely...