-
Notifications
You must be signed in to change notification settings - Fork 6
Architecture
Ivan Krutov edited this page Mar 27, 2016
·
4 revisions
Perspective consists of several applications (daemons):
- Storage - an in-memory storage application. Stores various information such as: a list of cloud projects, instances, images; message queues used for interaction between workers and API.
- REST API - standard web-application providing REST API. For read (GET) requests - reads data written by workers from the storage. For modification (POST, PUT, DELETE) - modifies data directly in the storage and adds tasks for workers to respective queues in the storage.
- Worker - processing unit for one cloud type, e.g. Openstack or Docker. Synchronizes information about existing instances, images, volumes, networks and so on with selected cloud API. Fetches information from cloud API and saves to storage. Applies tasks (e.g. reboot instance or create image) coming from the API by listening to storage queue.
- Client - any application that connects to the API. Default implementations include console and HTML versions.
Perspective architecture allows to launch multiple instances of each component in different data centers. From one side this delivers high-availability because in case of failure in one data center Perspective continues to work using launched instances from another data centers. From the other side such approach is scalable because adding more worker and REST nodes increases the total number of requests per second Perspective can process.