You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shardingsphere.apache.org by KimmKing <ki...@apache.org> on 2020/08/24 10:38:30 UTC

[DISCUSS]Consider about structure of Orchestration&Control-Panel projects

Hello, Community. It's time to discuss about the structure of control panel now. In recent project repo, control-panel with five modules:


shardingsphere-control-panel

├── shardingsphere-cluster

│   ├── shardingsphere-cluster-configuration

│   ├── shardingsphere-cluster-facade

│   ├── shardingsphere-cluster-heartbeat

│   ├── shardingsphere-cluster-state

├── shardingsphere-control-panel-spi

├── shardingsphere-metrics

│   ├── shardingsphere-metrics-configuration

│   ├── shardingsphere-metrics-facade

│   ├── shardingsphere-metrics-prometheus

│   ├── shardingsphere-metrics-spi

├── shardingsphere-opentracing

├── shardingsphere-orchestration

│   ├── shardingsphere-orchestration-core

│   │   ├── shardingsphere-orchestration-core-common

│   │   ├── shardingsphere-orchestration-core-config

│   │   ├── shardingsphere-orchestration-core-facade

│   │   ├── shardingsphere-orchestration-core-metadata

│   │   ├── shardingsphere-orchestration-core-registry

│   │   ├── shardingsphere-orchestration-core-schema

│   ├── shardingsphere-orchestration-repository

│   │   ├── shardingsphere-orchestration-repository-api

│   │   ├── shardingsphere-orchestration-repository-provider

And obviously there are some details need to clearify here:

·        control-panel is a logic component, not an entity

·        orchestration is not clear for config and registry center, governance is more accurate

·        cluster and heartbeat modules shoule be a part of governance module

·        opentracing is an implementation of tracing, and metrics/tracing are parts of observability

So we will refactor control-panel to two first level module of ShardingSphere:

shardingsphere-observability

├── shardingsphere-observability-spi

├── shardingsphere-observability-metrics

│   ├── shardingsphere-observability-metrics-configuration

│   ├── shardingsphere-observability-metrics-facade

│   ├── shardingsphere-observability-metrics-prometheus

│   ├── shardingsphere-observability-metrics-spi

├── shardingsphere-observability-tracing

│   ├──shardingsphere-observability-opentracing

shardingsphere-governance

├── shardingsphere-governance-spi

├── shardingsphere-governance-core

│   ├── shardingsphere-governance-core-common

│   ├── shardingsphere-governance-core-config

│   ├── shardingsphere-governance-core-facade

│   ├── shardingsphere-governance-core-metadata

│   ├── shardingsphere-governance-core-registry

│   ├── shardingsphere-governance-core-schema

├── shardingsphere-governance-repository

│   ├── shardingsphere-governance-repository-api

│   ├── shardingsphere-governance-repository-provider

├── shardingsphere-governance-cluster

│   ├── shardingsphere-governance-cluster-configuration

│   ├── shardingsphere-governance-cluster-facade

│   ├── shardingsphere-governance-cluster-heartbeat

│   ├── shardingsphere-governance-cluster-state

And after this refactoring, we should uniform Callback/EventBus mechanism, and ensure to use SPI/Facade to integration with other module.

Task list:

·        Consider about structure of Orchestration&Control-Panel projectshttps://github.com/apache/shardingsphere/issues/6653

·        Consider about merge Callback and OrchestrationEventBushttps://github.com/apache/shardingsphere/issues/6585

·        Consider about redesign metrics configurationhttps://github.com/apache/shardingsphere/issues/6577

·        Consider about merge OrchestrationFacade and ControlPanelFacadehttps://github.com/apache/shardingsphere/issues/6572

·        Use SPI to introduce ClusterConfiguration in OrchestrationShardingSphereDataSourcehttps://github.com/apache/shardingsphere/issues/6547

·        Should use SPI to introduce metrics in SingletonFacadeEngine.buildMetrics which calling on FrontendChannelInboundHandlerhttps://github.com/apache/shardingsphere/issues/7013

 

Re: [DISCUSS]Consider about structure of Orchestration&Control-Panel projects

Posted by zhaojun <zh...@apache.org>.
+1, nice job!

Regards,
cherrylzhao
-------------------------------------------------------
Email:zhaojun@apache.org
Jun Zhao(cherrylzhao) Apache ShardingSphere


KimmKing <ki...@apache.org> 于2020年8月24日周一 下午6:38写道:

> Hello, Community. It's time to discuss about the structure of control
> panel now. In recent project repo, control-panel with five modules:
>
>
> shardingsphere-control-panel
>
> ├── shardingsphere-cluster
>
> │   ├── shardingsphere-cluster-configuration
>
> │   ├── shardingsphere-cluster-facade
>
> │   ├── shardingsphere-cluster-heartbeat
>
> │   ├── shardingsphere-cluster-state
>
> ├── shardingsphere-control-panel-spi
>
> ├── shardingsphere-metrics
>
> │   ├── shardingsphere-metrics-configuration
>
> │   ├── shardingsphere-metrics-facade
>
> │   ├── shardingsphere-metrics-prometheus
>
> │   ├── shardingsphere-metrics-spi
>
> ├── shardingsphere-opentracing
>
> ├── shardingsphere-orchestration
>
> │   ├── shardingsphere-orchestration-core
>
> │   │   ├── shardingsphere-orchestration-core-common
>
> │   │   ├── shardingsphere-orchestration-core-config
>
> │   │   ├── shardingsphere-orchestration-core-facade
>
> │   │   ├── shardingsphere-orchestration-core-metadata
>
> │   │   ├── shardingsphere-orchestration-core-registry
>
> │   │   ├── shardingsphere-orchestration-core-schema
>
> │   ├── shardingsphere-orchestration-repository
>
> │   │   ├── shardingsphere-orchestration-repository-api
>
> │   │   ├── shardingsphere-orchestration-repository-provider
>
> And obviously there are some details need to clearify here:
>
> ·        control-panel is a logic component, not an entity
>
> ·        orchestration is not clear for config and registry center,
> governance is more accurate
>
> ·        cluster and heartbeat modules shoule be a part of governance
> module
>
> ·        opentracing is an implementation of tracing, and metrics/tracing
> are parts of observability
>
> So we will refactor control-panel to two first level module of
> ShardingSphere:
>
> shardingsphere-observability
>
> ├── shardingsphere-observability-spi
>
> ├── shardingsphere-observability-metrics
>
> │   ├── shardingsphere-observability-metrics-configuration
>
> │   ├── shardingsphere-observability-metrics-facade
>
> │   ├── shardingsphere-observability-metrics-prometheus
>
> │   ├── shardingsphere-observability-metrics-spi
>
> ├── shardingsphere-observability-tracing
>
> │   ├──shardingsphere-observability-opentracing
>
> shardingsphere-governance
>
> ├── shardingsphere-governance-spi
>
> ├── shardingsphere-governance-core
>
> │   ├── shardingsphere-governance-core-common
>
> │   ├── shardingsphere-governance-core-config
>
> │   ├── shardingsphere-governance-core-facade
>
> │   ├── shardingsphere-governance-core-metadata
>
> │   ├── shardingsphere-governance-core-registry
>
> │   ├── shardingsphere-governance-core-schema
>
> ├── shardingsphere-governance-repository
>
> │   ├── shardingsphere-governance-repository-api
>
> │   ├── shardingsphere-governance-repository-provider
>
> ├── shardingsphere-governance-cluster
>
> │   ├── shardingsphere-governance-cluster-configuration
>
> │   ├── shardingsphere-governance-cluster-facade
>
> │   ├── shardingsphere-governance-cluster-heartbeat
>
> │   ├── shardingsphere-governance-cluster-state
>
> And after this refactoring, we should uniform Callback/EventBus mechanism,
> and ensure to use SPI/Facade to integration with other module.
>
> Task list:
>
> ·        Consider about structure of Orchestration&Control-Panel
> projectshttps://github.com/apache/shardingsphere/issues/6653
>
> ·        Consider about merge Callback and OrchestrationEventBushttps://
> github.com/apache/shardingsphere/issues/6585
>
> ·        Consider about redesign metrics configurationhttps://
> github.com/apache/shardingsphere/issues/6577
>
> ·        Consider about merge OrchestrationFacade and
> ControlPanelFacadehttps://github.com/apache/shardingsphere/issues/6572
>
> ·        Use SPI to introduce ClusterConfiguration in
> OrchestrationShardingSphereDataSourcehttps://
> github.com/apache/shardingsphere/issues/6547
>
> ·        Should use SPI to introduce metrics in
> SingletonFacadeEngine.buildMetrics which calling on
> FrontendChannelInboundHandlerhttps://
> github.com/apache/shardingsphere/issues/7013
>
>