Project

General

Profile

Actions

Feature #38246

open

mgr/dashboard: ideas to speed-up/unlock dashboard development

Added by Ernesto Puerta about 5 years ago. Updated about 2 years ago.

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

0%

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

Description

This is a tracking issue to collect ideas on how to speed-up Ceph-dashboard development in order to keep pace with core Ceph, as well as to identify blocking issues.

Problem: "Ceph Dashboard does not expose lots of features from Ceph core"

  • Are new features/improvements designed and implemented dashboard-friendly?
    • Are other Ceph teams Dashboard-aware?
      • Do they try Dashboard regularly? Ever?
      • Are other Ceph team members regularly involved in Dashboard activities/PRs/etc?
      • Are Dashboard members regularly involved in other teams activities?
        • Would it help to share a checklist of guidelines to make new features/improvements dashboard-friendly.
    • Can we make dashboard development so easy that other team members can do it on their own?
  • Is dashboard easy to extend?
    • What are the pain points for a new and a regular contributor to Dashboard?
    • Can we lower the entry barrier?
      • Can we reduce 2-3 programming languages (Python, Typescript+Angular, potentially C++) to 1 (e.g.: Python)?
        • Can we convert the front-end UI into a generic presentation layer fully built up from back-end config, so that creating/extending a Ceph feature only requires Python coding 90% time?
          • Can Ceph-dashboard be broken down to a bunch of generic widgets? Tables, Forms, Modals, Charts?
    • Can we speed up daily work?
      • Can building be sped up?
        • What about a "make dashboard" that builds everything needed for running Ceph-mgr + dashboard?
      • Can we share ready-to-use IDE defaults & recommendations?
        • VisualStudio Code? Atom? Vim/Emacs? Packages to install?
      • Can testing feedback loop be automated/reduced?
        • Quick Jenkins job running tests that do not need Ceph built?
      • Can debugging be improved?
        • DEBUG flag enabled Ceph-Mgr wide? Or dashboard-only?
    • Can we extend collaboration beyond Ceph and gaining external contributions?
      • Can we increase the use of ready-to-use components? Angular NPM? Python PIP?
        • Can we contribute our improvements back to those projects?
        • Is it easy for us to use latest versions of components/libraries?
          • Yes with Angular. No with Python.
    • Can we reduce architecture complexity?
      • Can we simplify the end-to-end interface hops? Ceph component <-> Mon <-> Mgr C++ <-> Mgr Python API <-> Dashboard Python REST back-end <-> Dashboard Angular front-end? (Different for RGW)
        • Can new features be discovered and exposed from Ceph core metadata (embedded schemas or self-typed or variant-like)?
        • Can Ceph interfaces be inferred from metadata?
        • Can we extend Ceph-mgr polling/caching to make it work for new data structures on demand?
    • Can we reduce code complexity?
      • Are we measuring and tracking code duplication, cyclomatic complexity (pylint?), etc?
      • Can we replace Ceph-Mgr Python C API with something simpler/safer?
Actions #1

Updated by Ernesto Puerta about 5 years ago

  • Description updated (diff)
Actions #2

Updated by Ernesto Puerta almost 5 years ago

  • Private changed from Yes to No
Actions #3

Updated by Ernesto Puerta about 3 years ago

  • Project changed from mgr to Dashboard
Actions #4

Updated by Ernesto Puerta about 2 years ago

  • Category set to General
Actions

Also available in: Atom PDF