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

An event state machine with a blockchain


We use an Ethereum blockchain as the event state machine for the money transfer system. A blockchain in this role is used for storing the following:

  • The mapping between telephone numbers and bank accounts
  • The overall state of each transfer transaction

Inside the blockchain, there are two kinds of smart contracts. The first one implements the repository pattern, and the second one implements the entity model.

We use Truffle (http://truffleframework.com/) to create this event state machine. Look at the subproject named eventmachine in the GitHub repository (https://github.com/chanwit/eventmachine).

Here's a smart contract under the entities/ directory, TransferState.sol. This smart contract maintains the states of each transfer transaction. Each transaction is initialized with NONE, then STARTED, PENDING, and finally COMPLETED. The following diagram illustrates the smart contractTransferState working together with its repository implementation:

Figure 8.10...