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

A stream processor


Another use case of a function is to use it as a processor for data streams. A stream may be sent out from any kind of sources, such as data buses or event buses. Kafka, Twitter, or blockchain (in our case, Ethereum) could be a source of data streams. An Ethereum blockchain could emit events specific to some smart contracts when a certain action is taken.

To observe these events in the form of data streams efficiently, we need to use a kind of reactive client. RxJava is one of them. Fortunately, web3j, the Ethereum client we are using, already has RxJava observables to receive streaming data from an Ethereum blockchain.

We call this component listener. The following diagram shows what we will implement around the Event Listener:

Figure 8.13: Diagram illustrating relations around the Event Listener

A requirement is that we run the agent (Event Listener) as a container on the same network as the blockchain. We use the agent to divert each transaction information to other endpoints...