Project

General

Profile

Documentation #36376

mgr/dashboard: High-level Design/Architecture diagram

Added by Ernesto Puerta over 5 years ago. Updated almost 3 years ago.

Status:
New
Priority:
Normal
Category:
General
Target version:
-
% Done:

0%

Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

This is a try to provide a comprehensive graphical depiction of the current architecture of the ceph-dashboard, including 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 separation 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).
  • [rdias:] Detail asynchronous task workflow: some operations (rbd image removal) usually take longer to complete than a responsive WebApp can afford. Thus, those ops return immediately and launch a background task (async) to track completion.
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).

History

#1 Updated by Ernesto Puerta over 5 years ago

  • Description updated (diff)

#2 Updated by Ernesto Puerta over 5 years ago

  • Description updated (diff)

#3 Updated by Ernesto Puerta over 5 years ago

Notes by Ricardo Dias from standup:
  • Detail asynchronous task workflow: some operations (rbd image removal) usually take longer to complete than a responsive WebApp can afford. Thus, those ops return immediately and launch a background task (async) to track completion.

#4 Updated by Ernesto Puerta over 5 years ago

  • Description updated (diff)

#5 Updated by Ernesto Puerta over 5 years ago

  • Subject changed from High-level Design/Architecture diagram to mgr/dashboard: High-level Design/Architecture diagram

#6 Updated by Patrick Donnelly over 4 years ago

  • Status changed from 4 to New

#7 Updated by Ernesto Puerta almost 3 years ago

  • Project changed from mgr to Dashboard
  • Category changed from 132 to General

Also available in: Atom PDF