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

Scripting Docker with Golang


When it comes to operating and administrating Docker, we could do everything by controlling the cluster via the docker CLI using the jq command. Another powerful and very flexible way is to control the cluster via scripting. The most suitable programming language for scripting Docker cluster is, of course, Golang.

Why not Python? How could Golang, a statically compiled language, come to fit scripting?

  • First, Go is the language that Docker is written in. The Docker library written in the Go language is the same piece of codes used by Docker itself. So, the scripts written using this library will be naturally in high quality and greatly reliable.
  • Second, the language constructs and the idioms fit the way Docker works. For example, the Go programming language has the channel construct and it fits nicely for processing event messages emitted by the Docker cluster.
  • Third, the Go compiler is incredibly fast. Also, once all related libraries get compiled, the compilation...