Commit 7d4ad113 authored by yolandawang(王秀兰)'s avatar yolandawang(王秀兰)
Browse files

update docs

parent 86601bb0
No related merge requests found
Showing with 361 additions and 2 deletions
+361 -2
LICENSE 0 → 100644
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
\ No newline at end of file
# wecube-platform
WeCube Platform
# WeCube
## 引言
WeCube是一套开源的,一站式IT架构管理和运维管理工具,主要用于简化分布式架构IT管理,并可以通过插件进行功能扩展。
## 起源
微众银行在分布式架构实践的过程中,发现将银行核心系统构建于分布式架构之上,会遇到一些与传统单体应用不同的痛点(例如,服务器增多,部署难度大;调用链长,全链路跟踪困难; 系统复杂,问题定位时间长等),在逐步解决这些痛点的过程中,总结了一套IT管理的方法论和最佳实践,并研发了与之配套的IT管理工具体系。WeCube就是将该套方法论和最佳实践,从微众内部众多IT管理工具体系中提炼出来,整合成一套开箱即用的IT管理解决方案。
## 设计理念
![WeCube设计理念](wecube-wiki/images/wecube_design.png)
WeCube的设计理念与IT系统生命周期管理基本一致。可以通过“六个维度和一个核心”来阐述。
- 第一个维度:Workbench,汇聚任务、统一平台。就是将需要人员执行的任务全部汇聚在一个平台上。这样工作内容清晰可见,轻重缓急一目了然。 类似ITSM。
- 第二个维度:Expectation,规划设计、描绘期望。就是定义模型和规范,形成标准化设计语言。通过规范化设计及图形化展示,清晰、准确描绘出对分布式架构的期望。
- 第三个维度:Execution,自动执行、驱动实现。就是通过各类自动化、标准化任务的执行,将期望设计变成现实存在,消除人员能力参差不齐导致的实现差异。
- 第四个维度:Watching,继续监测、发现差异。就是定义全方位的监测项指标,通过持续收集监测数据,精确反映现实存在的现状,并发现现实与期望的差异项。
- 第五个维度:Wisdom,赋予智慧、制定策略。就是应用机器学习等技术,赋予We3智慧的能力。通过数学建模,制定应差异项的处理策略。 比如资源扩容策略、故障处理策略。
- 第六个维度:Equilibration,不断调整、保持对等。就是通过执行处理策略来不断进行动态调整,最终保持现实与设计的对等,进而使系统稳定运行。
- 一个核心:Workflow Engine,流程引擎、协同驱动。通过工作流引擎赋予We3协同驱动能力,从而高效组织以上六个维度组件的协同运行,减少人工处理环节,提高团队工作效率。
## 技术实现
WeCube分为核心功能模块和插件模块。核心功能模块使用Java/MySQL/VUE开发,主要负责工作流程,可视化和核心数据存储。插件模块用于功能扩展,分为资源管理、数据整合、功能增强三类插件。对于插件,WeCube定义了一套接口规范,插件开发者可以在遵循规范的前提下,自行选择开发语言。目前已有的插件使用的开发语言包括GO语言和Java。
## 主要功能
WeCube的功能菜单设计与设计理念保持一致。分别是任务、设计、执行、监测、智慧、调整、协同、系统。
- 系统
    CMDB模型设计, 是系统管理的核心功能,目前WeCube的CMDB模型设计支持完全自定义和图形化展示。
    权限管理,数据权限控制增删改查执行,并且数据权限控制到行。比如DBA只能有数据库主机的权限,主机只需要一个CI模型就可以了。
    基础数据,是一些系统参数。
- 协同
    插件注册,选择插件包上传,并通过容器运行,支持多实例,可以查看插件运行的日志。选择插件,通过插件运行的参数关联CMDB模型的属性值,形成注册。插件包更新历史关联会自动回填。降低升级成本。目前已经有腾讯云资源管理和应用部署服务的插件。
    任务编排,比如设计一个VPC创建的编排。包括创建VPC、创建子网、创建VM。
流程的每个执行节点需要关联插件。
    服务通道
- 设计
    规划设计,用于设计机房结构。
    资源规划,用于实例化一个机房,特别是两地三中心结构。
    应用架构设计,用于设计一个应用的逻辑架构。
    应用部署设计,用于实际部署一个应用。支持灰度发布。
    CI数据管理/查询,通过模型图形进入单个数据管理以及查询。
    CI综合查询管理/数据综合查询,用于配制多CI属性报表。比如一个应用使用到了哪些主机。
    枚举数据管理/查询,通过对公共枚举和私有枚举进行管理以及查询。
- 执行
    物料管理,管理应用程序的包。可以定义各种文件,可以配置环境差异导致的变量替换规则,不需要人工处理。
    应用部署,查看部署过程及异常,并作重试处理。
    批量执行,通过综合查询选择目标。在通过特定插件来执行任务。比如某个应用的所有主机,执行一个用户权限变更。
    高危命令配置,定义一些高危指令(如rm -rf),阻止执行或触发审批流程。
    编排任务执行,应该一般任务。比如重启某个资源集的5台主机。
- 任务(2019年下半年)
- 监测(2019年下半年)
- 调整(2019年下半年)
- 智慧(2019年下半年)
## 快速入门
WeCube采用容器化部署。
如何编译WeCube,请查看以下文档
[WeCube编译文档](wecube-wiki/docs/install/wecube_compile_guide.md)
如何安装WeCube, 请查看以下文档
[WeCube部署文档](wecube-wiki/docs/install/wecube_install_guide.md)
## API说明
更多关于WeCube的使用和操作说明, 请查看以下文档
[WeCube API手册](wecube-wiki/docs/api/wecube_api_guide.md)
## 用户手册
更多关于WeCube的使用和操作说明, 请查看以下文档
[WeCube用户手册](wecube-wiki/docs/manual/wecube_user_guide.md)
## License
WeCube是基于 Apache License 2.0 协议, 详情请参考
[LICENSE](LICENSE)
## 社区
- 如果您想得到最快的响应,请给我们提issue,或者关注微信公众号: ,或者您也可以扫码进群:
- 联系我们:wecube@webank.com
# WeCube API Guide
Coming soon.
\ No newline at end of file
wecube-wiki/docs/images/wecube_design.png

205 KB

# WeCube Compile Guide
## 编译前准备
1. 准备好一台主机最少资源配置为4核8GB。
2. 操作系统版本可以为ubuntu16.04以上或centos7.3以上。
3. 建议网络可通外网(需从外网下载docker运行镜像)。
4. 安装docker1.17.03.x以上。
## 编译过程
1. 通过github拉取WeCube代码。
2. 进入代码目录,执行make build 等待编译完成,make build过程中会从外网拉取maven包和npm包,如果有更快的mvn源,建议修改build目录下的maven_setting.xml文件。
3. 编译完成后,执行make image,将制作WeCube的运行镜像。
# WeCube Install Guide
## 安装前准备
1. 准备好一台主机最少资源配置为4核8GB。
2. 操作系统版本可以为ubuntu16.04以上或centos7.3以上。
3. 建议网络可通外网(需从外网下载docker运行镜像)。
4. 安装docker1.17.03.x以上。
5. 安装docker-compose命令。
## 安装过程
1. 通过github拉取WeCube代码。
2. 进入代码目录,编辑wecube-core.cfg文件,其中的配置项如下,根据主机环境替换掉相关的值:
配置项 |说明
---------------------------|--------------------
wecube_core_external_port |wecube-core的外部访问端口
wecube_core_exteranl_ip |wecube-core的外部访问ip
wecube_image_name |wecube-core的docker镜像名称
wecube_plugin_hosts |wecube-core部署插件的容器主机IP
wecube_plugin_host_port |wecube-core部署插件主机的ssh端口
wecube_plugin_host_user |wecube-core部署插件主机的ssh用户
wecube_plugin_host_pwd |wecube-core部署插件主机的ssh密码
cmdb_url |wecube-core操作的cmdb url
database_image_name |wecube-core依赖的数据库镜像
database_user_password |wecube-core依赖的数据库初始化密码
cas_url |wecube-core对应的cas地址
s3_endpoint |wecube-core依赖的s3对象存储服务器地址,docker-compose.tpl中已经包含minio的S3服务,此处用部署主机的ip
s3_access_key |minio S3对象存储访问的access_key
s3_secret_key |minio S3对象存储访问的secret_key
3. 执行如下命令,通过docker-compose拉起WeCube服务
```
/bin/bash ./install.sh
```
4. 安装完成后,访问WeCube的url http://ip:port 确认页面正常显示。
wecube-wiki/docs/manual/images/CIdata_main.png

102 KB

wecube-wiki/docs/manual/images/CIdata_management.png

55.6 KB

wecube-wiki/docs/manual/images/CIdata_query_data.png

71.5 KB

wecube-wiki/docs/manual/images/CIdata_query_main.png

102 KB

wecube-wiki/docs/manual/images/CMDB_modle_CItype.png

62.5 KB

wecube-wiki/docs/manual/images/CMDB_modle_apply.png

85.9 KB

wecube-wiki/docs/manual/images/CMDB_modle_layer.png

61.4 KB

wecube-wiki/docs/manual/images/CMDB_modle_main.png

75.9 KB

wecube-wiki/docs/manual/images/CMDB_modle_new_attr.png

86.5 KB

wecube-wiki/docs/manual/images/CMDB_modle_new_attr_detail.png

58.1 KB

wecube-wiki/docs/manual/images/app_design_deploy_review.png

46.1 KB

wecube-wiki/docs/manual/images/app_design_deploy_run.png

29.5 KB

wecube-wiki/docs/manual/images/app_design_logic.png

26.9 KB

Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment