WeBankPartners / wecube-platform

WeCube Platform
Apache License 2.0
365 stars 85 forks source link
apache java ops-tools vue

WeCube

build status

中文 / English

引言

WeCube 是一套开源的,一站式 IT 架构管理和运维管理工具,主要用于简化分布式架构 IT 管理,并可以通过插件进行功能扩展。 Releases 快速入口

功能体验

功能的体验可参照:WeCube 全量体验过程说明 搭建私有环境

起源

微众银行在分布式架构实践的过程中,发现将银行核心系统构建于分布式架构之上,会遇到一些与传统单体应用不同的痛点(例如,服务器增多,部署难度大;调用链长,全链路跟踪困难; 系统复杂,问题定位时间长等),在逐步解决这些痛点的过程中,总结了一套 IT 管理的方法论和最佳实践,并研发了与之配套的 IT 管理工具体系。WeCube 就是将该套方法论和最佳实践,从微众内部众多 IT 管理工具体系中提炼出来,整合成一套开箱即用的 IT 管理解决方案。

设计理念

WeCube 的设计理念与 IT 系统生命周期管理基本一致。可以通过“六个维度和一个核心”来阐述。

一个核心:通过注册新插件持续扩展 WeCube 的功能,通过如下 5 个能力实现插件注册及协作。插件注册详见“插件注册”。

六个维度:通过定义六个维度的菜单,并将插件功能有组织性的插入这六个维度菜单中,形成对 IT 系统全生命周期的有效管理。

技术实现

WeCube 分为核心功能模块和插件模块。

核心功能模块使用 Java/MySQL/VUE 开发,主要负责工作流程,可视化和核心数据存储。

插件模块用于功能扩展,分为资源管理、数据整合、功能增强三类插件。对于插件,WeCube 定义了一套接口规范,插件开发者可以在遵循规范的前提下,自行选择开发语言。目前已有的插件使用的开发语言包括 GO 语言和 Java。

系统架构

WeCube 2.x 版本

WeCube2.0功能架构

组件间详细关联图:

WeCube2.0组件间详细关联图

1, Portal web:浏览器客户,客户与 WeCube 交互的入口。
2, Portal nginx:接收客户端访问请求,如果请求静态资源,返回 Core 或插件的静态资源文件。如请求动态服务,转发到后端 API gateway。Portal nginx 建议采用负载均衡实现高可用,也可以使用 keepalived 做主从高可用。
3, API gateway:负责 Portal nginx 或其他外部系统的动态服务请求的路由分发。

建议负载均衡实现高可用,也可以使用 keepalived 做主从高可用。
APIGateway 启动时通过 Core 获取插件实例列表,并建立路由规则。
同时 APIGateway 会监测 Core、Auth Server、Plugins 的状态,实现 Core、Auth server、Plugins 实例的主从类型的高可用。

4, Auth server:主要负责用户认证服务,并返回含有用于认证的 token。由 API gateway 实现主从类型的高可用。
5, Core:WeCube 的核心模块。提供插件注册、编排设计、权限管理、批量任务、插件运行资源管理、数据模型、系统参数等核心功能。 由 API gateway 实现主从类型的高可用。
6, MYSQL:WeCube Core 和 Auth server 的数据库实例。建议 MYSQL 主从实现高可用。
7, S3:插件包镜像文件的存储。插件注册是写入镜像文件,插件实例启动时读取镜像文件。
8, Plugin instance-Docker:插件运行的容器母机,可以配置多台母机,运行多个插件实例,提供高可用。
9, Plugin instance-MYSQL:插件运行所需要的数据库实例,为每个需要数据库的插件建立独立数据库。建议 MYSQL 主从实现高可用。
10, Plugin instance-S3:插件运行所需要的对象存储,为每个需要存储文件的插件分配单独的桶。
11, Plugin instance-Squid:插件访问外部资源的代理服务器,按域名放通白名单。在安全要求较高的时建议部署。
以上 11 个组件组成 WeCube Platform。

主要功能简介

WeCube 的功能菜单设计与设计理念保持一致。分别是任务、设计、执行、监测、智慧、调整、协同、系统。

核心流程时序说明:

插件注册时序图:
插件注册时序图

编排任务执行:
编排任务执行

快速入门

WeCube 采用容器化部署。

如何编译 WeCube,请查看以下文档 WeCube 编译文档

如何安装 WeCube, 请查看以下文档 WeCube 部署文档@GitHub WeCube 部署文档@Gitee

用户手册

更多关于 WeCube 的使用和操作说明, 请查看以下文档 WeCube 用户手册@GitHub WeCube 用户手册@Gitee

开发者文档

WeCube 使用 Java 和 VUE 进行开发,数据存储于 MySQL,并依赖 Tomcat Web 容器运行。

请参考以下文档进行开发环境配置WeCube 开发环境配置 请参考以下文档进行插件开发WeCube-Platform 插件开发规范

License

WeCube 是基于 Apache License 2.0 协议, 详情请参考 LICENSE

社区