Documentation #36376
Updated by Ernesto Puerta over 5 years ago
This is a try to provide a comprehensive graphical depiction of the current architecture of the ceph-dashboard, including a flows to/from other components.
Main goals are:
* Exposing the interaction with Ceph-Mgr and consumed API calls. No other than the exposed calls are consumed by Ceph-dashboard.
* Exposing the seperation of concerns: back-end layer running in cluster vs. front-end layer running in client-side browser.
* Enumerating (most of) the endpoints both at back-end (REST API) and front-end.
* Exposing interactions out of the Ceph-Mgr module API: RGW RestClient, auth session storage and Grafana integration.
* Serve as a base for non-functional assessments: bottleneck identification, performance and scale test planning, security audits, etc.
* Keep consistency with existing Ceph graphical assets (colours, typography, etc., have been taken from Inktank/Ceph branding guidelines).
Weak points/possible improvements:
* Lacks indication of protocols involved (HTTPS for front-end/back-end and RGW, HTTP for Grafana, Msgr for Ceph).
* Front-end becomes excessively redundant (e.g.: host/ -> HostService -> HostListComponent -> /hosts).
Open points:
* How to maintain this? Currently it's a LucidChart diagram. It can be easily exported to SVG.
* It covers HLD, but more detailed info is still missing (Swagger provides a complete description of back-end REST API - can be found at /docs endpoint): Python or Angular (http://tracker.ceph.com/issues/36243).
!https://www.lucidchart.com/publicSegments/view/d9e6aec8-d2f7-45e7-aed4-8bc0e13e6edc/image.png!