沐鸣娱乐


        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        《开源精选》是我们分享Github、gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的 WeCube是一套开源的 ,一站式IT架构管理和运维管理工具,主要用于简化分布式架构IT管理,并可以通过插件进行功能扩展 。

        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        项目起源

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

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

        • 菜单布局:WeCube提供前端UI基座和前端开发规范,使各个插件的前端交互能够无缝集成到WeCube ,进而形成一个统一平台 。
        • 权限模型:WeCube的权限模型提供“用户-角色-菜单”三级权限模型,并提供统一认证方案 。数据权限及API权限,由插件自身控制。
        • 流程编排:WeCube内置一套标准的BPMN流程引擎 ,可以通过客户自定义编排驱动插件协同工作,减少人工干预 。编排设计详见“编排设计” 。
        • 数据模型 :插件需要将自身需要提供给其他插件使用的数据模型注册到WeCube的统一数据模型,然后通过标准的CRUD接口提供数据访问服务。
        • 系统参数 :WeCube的全局参数、插件需要客户修改 、插件需要暴露给其他插件使用的参数,需要注册到WeCube的系统参数内。

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

        • 任务:汇聚多种类型任务 ,形成一体化的工作平台 。工作内容清晰可见 ,轻重缓急一目了然。
        • 设计:定义模型和规范 ,形成标准化设计语言。通过规范化设计及图形化展示 ,清晰、准确地描绘出对分布式架构的期望。
        • 执行:通过各类自动化 、标准化任务的执行 ,将分布式架构的期望设计变成现实存在 ,消除人员能力参差不齐导致的实现差异。
        • 监测:定义全方位的监测项指标,通过持续收集监测数据,精确反映现状,并发现现实与期望的差异项 。
        • 智慧:应用机器学习等技术 ,赋予智慧能力。通过数学建模,制定应对监测发现的差异项的处理策略。
        • 调整:通过执行处理策略来不断进行动态调整,最终保持现实与期望的对等,进而使系统稳定运行 。

        技术实现

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

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

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

        系统架构

        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        组件间详细关联图

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

        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 :插件访问外部资源的代理服务器,按域名放通白名单。在安全要求较高的时建议部署 。

        主要功能简介

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

        • 系统系统参数:管理WeCube Platform运行所需的系统参数。
        • 协同插件注册:选择插件包上传,插件包需声明本插件的依赖、所需菜单 、数据模型、系统参数、权限设定及运行资源 ,注册后通过容器运行,支持多实例,可以查看插件运行的日志 。
        • 设计(WeCMDB插件提供)规划设计:用于设计机房结构。资源规划 :用于实例化一个机房 ,特别是两地三中心结构 。
        • 执行编排任务执行  :在选择编排后可对选择目标对象执行编排 ,支持灰度操作。
        • 任务(Service-Management插件提供)模板管理:服务目录管理, 服务请求模板管理;服务管理:服务请求管理 ,任务管理;
        • 监测(Open-Monitor插件提供)Agent管理: 注册、启动 、停止 ;数据管理: 提供数据采集配置, 数据查询等功能 ;告警管理: 提供阈值配置、日志监控、告警触发等功能 ;视图管理: 提供图形配置和自定义视图功能 ;
        • 调整(规划中)
        • 智慧容量建模:通过多元回归分析建模 ,获取业务量指标和资源消耗之间的系数关系。容量预测:将预测的业务量指标输入到模型中 ,获取合理的资源容量配置建议。

        核心流程时序

        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        插件注册时序图

        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        WeCube编译过程

        1.通过github拉取代码

        切换到本地仓库目录, 执行命令

        cd /data git clone https://github.com/WeBankPartners/wecube-platform.git

        根据提示输入github账号密码 , 即可拉取代码到本地。 拉取完成后 , 可以在本地目录上看到wecube-platform目录, 进入目录,结构如下:

        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        2.编译

        maven配置文件在build目录下的maven_setting.xml文件,默认配置如下:

        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        编译过程中会从外网拉取maven包和npm包,如果有更快的maven源 ,可修改该文件中的配置 。

        在代码根目录下执行

        make build

        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        3.制作镜像

        编译完成后,在代码根目录下执行

        make image

        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        将制作WeCube的运行镜像 。

        如果还需要制作WeCube的数据库镜像 ,执行以下命令:

        cd build/dbchmod x build-image.sh./build-image.sh

        镜像制作完成后, 执行命令:

        docker images

        可查看镜像列表

        一站式IT架构管理和运维管理工具WeCub(一站式运维平台)

        4.镜像保存

        执行以下命令将镜像保存到linux目录:

        docker save -o wecube-platform.tar wecube-platformdocker save -o wecube-db.tar wecube-db

        相关新闻

        联系我们
        联系我们
        分享本页
        返回顶部

          XML地图