English / 中文
WeCube is an open source, one-stop tool for architecture management and IT operation, which aims to simplify the IT management of distributed architecture. Its features can be easily extended by plugins.
During the implementation of distributed architecture, core banking systems are built in WeBank. Comparing this to traditional monolithic architecture, there are quite a few different pain points, e.g. increasing number of servers, complicated deployment process, difficulties in service tracing and problem diagnosis due to complex systems and long invocation chains.
In the process of finding the solutions for these pain points, we have come up with a set of methodology and best practices for IT management in such scenarios and also developed necessary supporting tools. WeCube is the result of extracting the methodology and best practices form WeBank's internal tools, which is then packaged into an integrated out-of-box solution for IT management.
WeCube's design concept basically matches the lifecycle of IT system management and can be elaborated as "6 aspects with 1 core".
1st aspect: "Workbench", it is an ITSM-like workbench that can aggregates all manual tasks so that their contents, importance and priorities are all clear at first glance.
2nd aspect: "Expectation", it is to plan, to design, to describe the expectations with models and specifications. By using standard and formal design language together with graphic visualizations, we try to make expectations on distributed architecture accurately and clearly.
3rd aspect: "Execution", it is to execute tasks in automated and standardized way so that expectations become realities without introducing errors or deviations caused by people in this process.
4th aspect: "Watching", it is to uncover differences between realities and expectations by defining all-round metrics which can reflect the varying runtime situation, then consistently collecting and keeping track of the information.
5th aspect: "Wisdom", it is to add intelligence into WeCube by means of data modeling and machine learning, so that policies can be developed to deal with errors and deviations, such as policies for trouble shooting, cause analysis, resource scaling.
6th aspect: "Equilibration", it is to ensure that realities are conforming to design expectations by applying policies and making consistent adjustments, so that running systems are stable in a dynamic way.
the core: "Workflow Engine", it is to coordinate tasks and improve collaborations in those 6 aspects, so that manual intervention is reduced and team efficency is increased.
WeCube is composed of the core framework and plugins for feature exetnsions.
The core framework is developed with Java/MySQL/Vue.js and reponsible for workflow management, data visualization and core data persistence.
Plugins are introduced for feature extensions, they can be grouped into 3 categories: resource management, data integration and practice enhancement. By conforming to the interface specification defined by WeCube, plugin developers can choose their preferred programing languages. Existing plugins commonly use Go and Java.
WeCube version 1.0 is released, its architecture is elaborated as follows:
Implemented features in WeCube Version 1.0:
WeCube Version 2.0 is under active development and will come soon.
The main menu of WeCube matches its design concept, including Workbench, Expectation, Execution, Watching, Wisdom, Equilibration, Workflow and System.
Tasks (Service-Management plugin)
Watching (Open-Monitor plugin)
Equilibration (On Planning)
Wisdom (On Planning)
WeCube is using containerized deployment.
PLease refer to WeCube Compilation Guide on how to compile WeCube.
PLease refer to WeCube Installation Guide on how to install WeCube.
Please refer to the WeCube User Guide for guides on WeCube usage and operation.
WeCube is developed with Java and Vue.js, it uses MySQL for data persistence and relies on Tomcat as the web application container.
Please refer to the WeCube Developer Guide on how to set up the development environment.
WeCube is licensed uner the Apache License Version 2.0, please refer to LICENSE for details.