Masakari System Architecture¶
Masakari comprises of two services api and engine, each performing different functions. The user-facing interface is a REST API, while internally Masakari communicates via an RPC message passing mechanism.
The API servers process REST requests, which typically involve database reads/writes, sending RPC messages to other Masakari engine, and generating responses to the REST calls. RPC messaging is done via the oslo.messaging library, an abstraction on top of message queues. The Masakari engine will run on the same host where the Masakari api is running, and has a manager that is listening for RPC messages. The manager too has periodic tasks.
Below you will find a helpful explanation of the key components of a typical Masakari deployment.
DB: sql database for data storage.
API: component that receives HTTP requests, converts commands and communicates with masakari engine via the oslo.messaging queue.
Engine: Executes recovery workflow and communicates with nova via HTTP.