初识WeCube¶
WeCube是一套开源的,一站式IT架构管理和运维管理工具,主要用于简化分布式架构的IT管理,并可以通过插件进行功能扩展。
WeCube起源于微众银行对分布式架构的实践过程。当把银行核心系统构建于分布式架构之上时,会遇到一些与传统单体应用不同的痛点,例如:服务器增多,部署难度大;调用链长,全链路跟踪困难;系统复杂,问题定位时间长等。
在逐步解决这些痛点的过程中,我们总结了一套IT架构和运维管理的方法论和最佳实践,并研发了与之配套的IT管理工具体系。WeCube就是将该套方法论和最佳实践,从微众银行内部众多IT管理工具体系中提炼出来,整合成一套开箱即用的IT管理解决方案。
使用场景¶
-
在公有云上从零开始搭建数据中心
您可以在WeCube中设计和规划全新的数据中心以及其中的网络、计算和存储资源,并通过WeCube插件的支持在公有云上以自动化的方式创建出这些资源并完成配置,从而搭建出一个与您的设计规划相符的数据中心基础设施。
只需要录入您的云账号信息,WeCube就可以根据您的设计和规划在公有云上创建出一个完成的数据中心,完成所有资源的创建和配置,自动启用监控并根据预设的预警规则持续监测您的资源情况。
-
接管已有数据中心IT资源的生命周期管理
您可以在WeCube中对IT资源进行建模,形成符合当前已有数据中心情况的配置管理数据模型,通过WeCMDB插件对模型和IT资源的配置项数据进行查询和维护,也可以进一步定制更复杂的数据查询方式和API来满足您的日常运维以及系统集成的需要。
-
强化架构设计信息管理以促进架构合规
您可以在WeCube中维护数据中心基础设施和应用系统的架构设计信息,并可以进一步使用这些信息作为资源创建和应用部署等运维操作的依据,通过引入自动化流程并结合人工审批环节,帮助促进组织内的架构设计合规性管理。
-
实现应用系统从设计、实现、部署直至监测、运维的完整闭环
您可以在WeCube中以应用系统为视角,记录系统的各组件、服务和它们之间的相互关系,管理各系统组件的构建物料包,以自动化的方式对它们进行部署和升级,并享有因此带来的针对应用系统服务和底层资源的自动化监控体系,从而帮助您应对日常运维的挑战。
只需要录入应用系统的架构信息并上传构建物料包,您便可以基于WeCube的任务编排和插件服务实现包括资源准备、应用部署、监控配置在内的一系列自动化运维操作。
设计理念¶
-
开放平台思维
WeCube产品体系是由完全开源的平台、开源社区内共创的插件以及用户生态中衍生发展出的最佳实践构成的。在整个产品体系的设计和研发过程中,我们秉承开放的理念,通过广泛使用开源组件和开放标准,希望建立一个为整个开源社区和最终用户共有、共享、共创的生态系统。
-
插件注册扩展
WeCube平台提供了包括数据模型、流程编排、菜单配置、用户权限、系统参数等核心功能,除此之外,所有应用场景内的功能都通过插件进行实现和扩展。所以,我们根据自身的经验,已经提供了一些可以直接使用的插件;同时,基于WeCube的插件开发规范,您可以通过开发新的插件来实现任何新的功能需求和定制化需求,从而对WeCube平台上的功能和服务进行扩展。
-
流程引擎连接
在自动化和复杂的使用场景中,我们依赖于WeCube平台中提供的流程引擎将相关的插件服务串联起来,从而形成不同功能性插件之间的协作来完成一项应用场景中的任务。流程引擎强大的可配置性可以使您根据自己的场景制定出具有针对性的自动化流程,甚至将手工和审批流程与自动化流程结合起来!
-
设计驱动实现
我们充分理解IT管理中的难题和痛点,因此我们恪守“设计驱动实现”的理念,将数据中心和应用系统的架构信息从设计阶段就纳入WeCube平台,以此作为IT资源创建、变更、销毁等实际运维操作的基础依据,并依赖这种设计阶段与实现阶段的信息一致性来帮助确保组织内架构设计的合规。
功能特性¶
插件注册¶
插件包、插件服务 和 服务方法
WeCube插件是以 插件包 的形式进行封装并交付的,一个 插件包 中通常包含了由某个开发者提供的一组相关的 插件服务;插件 和 插件包 的说法基本上可以互换使用。比如,我们随WeCube平台一同提供了 WeCMDB
插件(包)、Saltstack
插件(包)、Terraform
插件(包)等。
每个 插件服务 通常对应着一种可被管理的IT资源,一个 插件服务 通常又会提供多个 服务方法 来实现对这个IT资源的不同操作。比如,在 Terraform
插件(包)中,我们在最佳实践中提供了对应私有网络资源的 vpc
插件服务和对应云服务器资源的 cvm
插件服务。
每个 服务方法 实际上对应着针对某种IT资源的一项特定操作,多个 服务方法 共同组成了 插件服务 针对这种IT资源提供的功能扩展。比如,之前提到的 vpc
插件服务实际上提供了 apply
和 destroy
这两个服务方法分别来实现私有网络资源的创建和销毁。
您可以通过获取并上传插件包,进一步对插件包中提供的插件服务和服务方法进行配置、注册并启用,从而完成对WeCube平台可提供功能及服务的扩展。
每个插件包中的插件服务都可以进行独立的配置、注册并启用,以便您仅仅选择适合您自己场景的功能来使用。
另一方面,针对不同的使用场景,您也可以为同一个插件服务配置多个配置信息集,并使用它们进行多次注册,这样便可以使用同一插件(包)来满足不同使用场景下或者不同环境中的差异性配置需求(比如与不同安全等级相关的密钥信息、与不同环境相关的差异性配置信息等)。
流程引擎¶
WeCube提供了一套基于标准的BPMN 2.0规范的流程引擎,并使用它来联合所有的插件服务共同实现您的运维操作需求。通过内置的流程编辑器,您可以设计自己的任务编排流程,在流程中使用已注册和配置好的插件服务方法来完成具体的自动化任务。在我们为您提供的最佳实践资源包中,也包含了几个已经设计好的任务编排流程,例如初始化数据中心网络资源、应用系统首次部署和升级部署等标准化的任务编排流程。
通过把您的标准化操作流程固化为WeCube中的任务编排流程,您的操作人员可以在WeCube中方便的选择要执行的任务编排,根据需要选择编排执行对象的数据范围,并可以随时关注任务编排执行的任务进展、执行结果和执行历史。在这里,通过对编排执行对象范围的控制和选择,您可以灵活地完成诸如灰度发布等仅针对部分IT资源的操作。
另外,WeCube也提供了基于流程编辑和执行的访问控制,结合WeCMDB的数据访问控制机制,您就可以灵活地决定组织内的运维操作人员能够对那些IT资源进行哪些标准化的运维流程任务操作。
如果您能顺利地执行我们为您提供的作为最佳实践的任务编排,那么您就可以充分体验到在我们预设场景下如何使用WeCube的流程引擎一键完成资源创建和应用部署等运维任务。
批量执行¶
为了满足您日常临时性或突发性的数据查询和运维操作需求,WeCube提供了批量执行功能。
通过灵活地定义CMDB中配置信息数据的查询方式,您可以根据需要获取到想要的操作对象对应的数据集合。如果需要,您还可以将定义好的查询进行收藏,以便之后重复使用甚至共享给其它人使用。
获取到并选择好操作对象后,您可以选择WeCube平台上注册并配置好的任何一个插件服务方法进行执行。在配置好参数后,WeCube将自动按照您的配置对所有的操作对象进行批处理操作。操作执行结束后,将把所有对象的执行结果进行聚集以便您进行查看和检索。
CMDB¶
WeCube依靠 WeCMDB
插件作为默认的CMDB来实现IT资源配置信息的管理;当然,您也可以根据自己的需要来选择使用其它插件来替换它。
WeCMDB允许您对数据模型进行完全自定义,您可以更改包括模型分层、数据类型、数据属性、数据类型之间的关联关系在内的所有数据模型要素。
WeCMDB在数据管理方面也进行了强化,提供了针对数据属性的自动填充和候选值的过滤提示。您可以在数据模型中为需要的数据属性分别定义这些规则,这样在进行数据的录入和维护时,WeCMDB将根据这些规则为您自动填充数据或提示合法的候选值,我们相信这将有助于您数提升据管理的准确性和效率。
对于数据的图形化展示,我们在WeCMDB中内置了几种常用视图:应用架构、网络架构、资源架构、应用部署等,希望可以帮助您的架构、开发和运维人员更直观和快速地检索到需要的信息。另外,您也可以通过WeCMDB来创建自定义报表的查询方式,从而满足复杂场景下的数据查询需要。
我们为WeCMDB中的数据变更设计了较为完善的保护机制,希望能帮助您尽可能地确保配置信息数据的合法性和正确性。通过数据行级别的访问控制,您可以在比较细的粒度上来决定组织内的哪些角色能够对哪些范围的配置信息数据进行变更。另一方面,无论是针对数据的手工变更还是自动化变更,我们在WeCMDB中内置了一套基于状态机的变更控制机制,仅仅当数据变更中的数据状态满足预设的状态迁移条件时,WeCMDB才会进行数据的更新。
监控功能¶
我们目前为WeCube提供了 Open-Monitor
插件来实现对IT基础资源和应用系统的监控和告警。 它可以针对不同类型的资源对象、进程、日志等进行监控配置并启用监控机制,也支持您针对不同的监控对象或组自定义告警规则。
在我们为您提控的最佳实践包中,资源创建和应用部署的任务编排中会自动调用 Open-Monitor
插件来完成监控对象的配置和启用;另外,我们也在监控仪表盘中为您设计了以应用系统为视角的应用视图,您可以在这里看到某个应用系统占用的所有基础资源和应用服务的监控数据。
物料管理¶
WeCube依靠 Artifacts
插件来帮助您进行应用系统构建物料包的存储与管理,您可以将构建好的物料包进行上传并与某个CMDB中的应用系统部署单元进行关联。这样,WeCube就可以在配置好的任务编排中,依据您提供的构建物料包和CMDB中的应用系统配置信息自动完成应用的部署和升级。
部署管理¶
WeCube依靠 SaltStack
插件来帮助您进行应用系统部署管理,您可以一键安装salt-minion,然后使用插件的部署接口服务完成物料包的传输,差异化配置替换,应用的部署和升级,以及数据库的管理和升级。
容量管理¶
WeCube依靠 Capacity
插件来帮助您进行资源预算预测或应用系统的扩容预测,您可以基于监控系统采集的数据,进行线性回归分析,形成多元一次建模结果;当您需要进行容量预测时,可以根据已有的容量模型,给定数值并计算出预测值。
容器管理¶
WeCube依靠 Kubernetes
插件来提供容器部署管理,您将构建好的应用系统镜像包传输到物料仓库中,然后使用容器插件来为您进行应用部署,插件提供了基于数据模型的数据查询并实时监听POD动态,让系统拥抱快速变化的容器化管理。
终端堡垒机¶
WeCube依靠 Terminal
插件来帮助您进行终端的安全访问,您可以使用WeCube系统的表达式进行终端授权,如将CMDB中的应用系统下所有主机授权给特定角色,控制文件上传/下载权限;堡垒机插件为您确保每次终端操作都会被录屏,并持续进行高危指令监测以保证操作安全性。
高危指令监测¶
WeCube依靠 Itsdangerous
插件来提供高危指令配置和分析,您可以在插件中定制高危操作关键因素,并在编排设计节点中启用高危检测功能,WeCube系统会在检测到高危指令后进行拦截并等待您的确认后再进行操作。