The Qinling project consists of the following components:
A WSGI app that authenticates and routes requests to qinling-engine after a preliminary handling for the request.
A standalone service whose purpose is to process operations such as runtime maintenance, function execution operations, function autoscaling, etc.
Qinling uses kubernetes as the default backend orchestrator, in order to manage and maintain the underlying pods to run the functions.
Qinling needs to interact with the database(usually MySQL) to store and retrieve resource information.
etcd is a distributed key-value store that provides fast read/write operations for some specific internal resources in Qinling such as the mapping from functions to the function services, mapping from function to the workers, etc. In addition, etcd provides the locking mechanism in Qinling.
- Messaging queue
Routes information between the Qinling processes.