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

Wrapping a legacy with a function


In this section, we will demonstrate how to write a wrapper function for a legacy web-based system. To achieve this, we use the chromeless library (https://github.com/graphcool/chromeless) to connect to a headless Chrome instance. Then the chromeless script drives the Chrome browser to do the rest for us.

The following diagram shows the working mechanism of this part of the system:

Figure 8.11: Diagram of implementing an OpenFaaS function to wrap around a UI-based ERP

What does chromeless do? chromeless is a Node.js library that can be used to perform browser automation, similar to PhantomJS or Selenium. But it is really fast. Together with headless Chrome instances, chromeless yields a very fast performance. So it could be used as a serverless function.

We start by using FaaS CLI to create a project. We call this functionhivectl, a program to control an ERP program built with the Moqui framework, HiveMind. We will talk about HiveMind shortly after setting up...