terrymanu opened a new issue #1690:
URL: https://github.com/apache/shardingsphere-elasticjob/issues/1690


   1. Production Design
   
   The current ElasticJob is an distributed job scheduler middleware and 
support resource management in ElasticJob-Cloud.
   The new ElasticJob may split the feature into 3 independent modules: Job 
Trigger, Resource Management and Job Governance.
   
   **Job Trigger** is required module, other two are optional. It just like a 
standard QuartZ if use Job Trigger only.
   **Job Trigger + Job Governance** can be understood as current ElasticJob. 
There are sharding and HA features in scheduled job, we can add job 
orchestration such as DAG into this module in future.
   **Job Trigger + Resource Management** can be understood as mechanism of 
operation system's scheduler. It will rebalance jobs and resources, it the 
resources is not enough, the job should be in queue. Resource Management can 
integrate with Kubernetes and Apache Mesos.  The current ElasticJob-Cloud is 
Job Trigger + Resource Management (with Apache Mesos only).
   **Job Trigger + Job Governance + Resource Management** is all abilities for 
ElasticJob in future.  ElasticJob-Lite and ElasticJob-Cloud is for different 
deploy architect only.
   
   2. Architect Design
   
   ElasticJob hope to build a `Flexible & Embeddable & Extensible` architect, 
which can permit developers weave their own implementation via SPI. For the 3 
main modules, the details are:
   
   **Job Trigger: ** Based on CRON expression and One-Off job for now. It is 
better to adjust as Trigger SPI + Trigger Impl (CRON, One-Off and so on).
   **Resource Management: ** There is no independent resource management domain 
abstraction for now. It is better to add Resource Management SPI, and add 
Apache Mesos, Kubernetes and NoDep's implementation in the meanwhile.
   **Job Governance: ** There are sharding and HA modules for now. It is better 
to add Job Governance SPI, and adapt the current modules as sub-modules, and 
add DAG module in future. The sub-modules of Job Governance should be overlying 
and isolated each other.
   
   3. Adjust of ElasticJob-Lite and ElasticJob-Cloud
   
   The only different of ElasticJob-Lite and ElasticJob-Cloud are deploy 
architect.
   ElasticJob-Lite is centre-less jar with spring integration, it is suitable 
for lightweight applications.
   ElasticJob-Cloud deploy a clustered job-server , it is suitable for job 
cloud management platform.
   
   4. Module Planing
   
   Job Trigger
     - Trigger API
     - Trigger SPI
     - Trigger Kernel
     - CRON Trigger
     - One-Off Trigger
     - Customized Trigger
   
   Resource Management
     - Resource Management API
     - Resource Management SPI
     - Resource Management Kernel
     - NoDep Resource Management
     - Mesos Resource Management
     - Kubernetes Resource Management
   
   Job Governance
     - Job Governance API
     - Job Governance SPI
     - Job Governance Kernel
     - Sharding Job
     - HA Job
     - DAG Job
   
   Production
     — ElasticJob-Lite Adjustment
     — ElasticJob-Cloud Adjustment
     — Remove Apache Mesos dependency from ElasticJob-Cloud


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to