Architecture

The following diagram in Figure 6.2 shows the overall architecture of OpenWhisk:

Figure 6.2: The overview architecture of OpenWhisk.

The edge component is the API gateway built on top of NGINX and OpenResty. The API gateway optionally uses Redis for caching. The API gateway sits in front of one or more controllers. The controller stores all configuration in a CouchDB cluster. Behind the controller, there is a Kafka cluster coordinated by a ZooKeeper quorum. The Kafka cluster is very important; every invocation is guaranteed to be executed. Kafka acts as a resilient buffer between controllers and invokers. Each invoker is responsible for invoking real implementations of functions, in this case Docker containers. Therefore, an invoker requires a special privilege to connect to the host's Docker socket. An invoker is optionally able to use docker-runc to improve the performance of the invocation process. Every single component of OpenWhisk is able to run inside a container, such as when we deployed it with Docker Compose.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset