# xcloud-dopaas
**Repository Path**: dingjunjun_codeSpace/xcloud-dopaas
## Basic Information
- **Project Name**: xcloud-dopaas
- **Description**: 一站式基于DevSecOps的PaaS平台解决方案
---
基于SpringCloud/Docker/K8s/ServiceMesh(Istio),主要集成模块:CMDB、统一持续交付CI/CD(分布式编译和部署)、IAM认证中心、统一监控中心、统一配置中心、统一分布式调度中心、统一文档、统一开发者中心(AutoGenerator),统一私有对象存储管理、统一源/包/映像库管理、Shell-Cli组件、各种工具链(如HBase/OSS运维)、即时通讯、轻量级风控等
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 184
- **Created**: 2022-10-13
- **Last Updated**: 2022-10-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# XCloud DoPaaS

[中文文档](README_CN.md) | English version goes [here](README.md)
注:当前完全分布式版正在孵化中,不建议在生产环境使用!
## 一站式基于DevSecOps的PaaS平台解决方案
> 基于SpringCloud/Docker/ServiceMesh(istio),主要模块:统一资产管理中心(CMDB)、统一持续交付中心(分布式编译CI/CD)、IAM认证中心(rbac/oauth2/oidc/[saml2])、统一监控中心(sba/zipkin/promethous)、统一配置中心、统一作业中心(elasticjob/spark/flink/mr)、统一文档中心(swagger/rap)、统一开发中心(lcdp/autoGen),统一私有对象存储管理、统一库管理(git/nexus(maven/image))、Shell-Cli、多种工具链(hdfs/hbase/phoenix/oss)、即时通讯、轻量级风控等
[](https://travis-ci.org/wl4g/xcloud-dopaas)

[](https://github.com/wl4g/xcloud-dopaas)
[](https://github.com/wl4g/xcloud-dopaas)
[](https://github.com/wl4g/xcloud-dopaas)
[](https://github.com/wl4g/xcloud-dopaas)
[](https://github.com/wl4g/xcloud-dopaas)
[](https://github.com/wl4g/xcloud-dopaas)
[](https://github.com/wl4g/xcloud-dopaas)
[](https://shang.qq.com/wpa/qunwpa?idkey=0343b06591d19188d86dc078912adfc5c40f023c8ec5a0d1eda5bdfc35ab40d0)
[](https://github.com/wl4g/xcloud-dopaas)
[](https://gitee.com/wl4g/xcloud-dopaas)
[](https://gitee.com/wl4g/xcloud-dopaas)
[](https://gitee.com/wl4g/xcloud-dopaas)
## 1. 开发及运行时技术栈(主要)
本项目主要基于 SpringBoot/Cloud/Dubbo 开发,支持传统单体 (`standalone`) 模式 和 完全分布式微服务 (`cluster`) 模式运行,源码结构被精心设计为 既是平台又是框架的示范.
- 必须依赖:
Spring Boot:2.3 +
Spring Cloud:Hoxton.x +
Eureka:1.10 +
Zipkin:2.15 +
Jdk:8 +
Maven:3.5 +
Mysql:5.6 +
- 可选依赖:
Kafka:2.3.1 +
Zookeeper:3.6.0 +
DockerCE:18.06 +
CoreDNS:1.7.0 +
MinIO:latest
Elasticsearch(EFK):6.2.3 +
Shardingsphere-Elasticjob:3.0.0 +
- [二次开发指南](README_DEVEL_CN.md)
## 2. 部署与搭建
### 2.1 一键自动部署
适用于主机快速部署,部署脚本会自动探测安装包括:jdk、nginx、git、maven、node、eureka、zookeeper、及所有SpringBoot apps,但不包括 redis/redis cluster(选其一)、Mysql服务,这些需要您自行手动安装.
```
bash -c "$(curl -L https://raw.githubusercontent.com/wl4g/xcloud-dopaas/master/script/deploy/deploy-boot.sh)"
# 或
bash -c "$(curl -L https://gitee.com/wl4g/xcloud-dopaas/raw/master/script/deploy/deploy-boot.sh)"
```
- 请注意按脚本提示,修改 [`deploy-env.sh`](script/deploy/deploy-env.sh) 自定义环境配置然后重新执行 [`./deploy-boot.sh`](script/deploy/deploy-boot.sh) , 由于是从源码编译部署, 请耐心等待大约 8~20min (第一次因需下载代码和依赖库会比较慢, 后续如需重新部署可根据实际情况设置 `export buildForcedOnPullUpToDate=true` 或 `export deployFrontendSkip=true` 来跳过后端编译和前端等来加速).
- 部署前先检查目标主机上是否已安装 nginx/zookeeper/eureka 等, 若有则建议先停止, 因为自动部署也会部署避免冲突.
集群管理工具:
[`./dopaas-ctl.sh`](script/deploy/dopaas-ctl.sh)
```
Usage: {start-all|stop-all|restart-all|status-all| }
start-all Start all remote nodes apps.
stop-all Stop all remote nodes apps.
restart-all Restart all remote nodes apps.
status-all Query status all remote nodes apps.
for example: {cmdb-facade restart}
Restart only the cmdb-facade application of all remote nodes,
The optionals are: zookeeper/eureka-server/iam-web/iam-facade/iam-data/cmdb-facade/cmdb-manager/... etc.
```
建议配置
| 运行模式 | 最低配置要求 | 说明 |
| ---- | ---- | ---- |
| cluster | CentOS7+ / Ubuntu18+ (4C+8G+) | 当只有1台机时即为伪集群 |
| standalone | 2C+4G+ | 单体应用 |
### 2.2 手动编译部署
适用于本地二次开发环境的搭建
#### 2.2.1 修改 .m2/settings.xml
```xml
nexus-aliyun
central
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
```
#### 2.2.2 后端编译
> 按项目依赖顺序进行编译, 其中 `mvn -P` 选项有:`springExecJar` (打包为单个可执行jar)、`mvnAssTar` (打包为通用软件发布包),默认
```
git clone https://github.com/wl4g/xcloud-component.git # 上游较新(推荐)
或者 git clone https://gitee.com/wl4g/xcloud-component.git
mvn -f xcloud-component -U clean install -DskipTests -T 2C
git clone https://github.com/wl4g/xcloud-iam.git # 上游较新(推荐)
或者 git clone https://gitee.com/wl4g/xcloud-iam.git
mvn -f xcloud-iam -U clean install -DskipTests -T 2C
git clone https://github.com/wl4g/xcloud-dopaas.git # 上游较新(推荐)
或者 git clone https://gitee.com/wl4g/xcloud-dopaas.git
mvn -f xcloud-dopaas -U clean install -DskipTests -T 2C
```
#### 2.2.3 前端编译
```
git clone https://github.com/wl4g/xcloud-dopaas-view.git # 上游较新(推荐)
或者 git clone https://gitee.com/wl4g/xcloud-dopaas-view.git
npm run dev # 开发调试
npm run build # 生产打包
```
### 2.3 初始数据库:首先准备一台MySQL5.6+实例,创建名为dopaas(utf8/utf8_bin)的库,再[初始数据库](../../../xcloud-dopaas-db)。
> 注:sql脚本需与源码版本对应,我们会定期更新,建议都使用最新
### 2.4 配置DNS虚拟解析(C:\Windows\System32\drivers\etc 或 vim /etc/hosts):
[Standalone模式Hosts解析示例](dns/hosts.standalone.tpl)
[Cluster模式Hosts解析示例](dns/hosts.cluster.tpl)
> 注:对外的服务使用的域名在不同环境下请对应`sys_cluster_config.extranet_base_uri`表
### 2.5 快速搭建redis/docker集群(或自行搭建)
[https://github.com/wl4g/docker-redis-cluster](https://github.com/wl4g/docker-redis-cluster) 或
[https://gitee.com/wl4g/docker-redis-cluster](https://github.com/wl4g/docker-redis-cluster)
### 2.6 启动与测试访问
说明:
a. 尝试启动时无需指定任何jvm参数(即, 都使用默认配置), 如:默认仅会激活 `dev` 环境的配置;
b. 无论是运行 `standalone` 模式还是 `cluster` 模式,都可以分别对应(`dev`/`fat`/`uat`/`pro`)4种环境。
#### 2.6.1 以 `standalone` 模式启动
只需运行以下启动类:
```
com.wl4g.StandaloneDopaas
com.wl4g.StandaloneIam
```
#### 2.6.2 以 `cluster` 模式启动
请运行以下启动类:
```
com.wl4g.EurekaServer
com.wl4g.IamWeb
com.wl4g.IamFacade
com.wl4g.IamData
com.wl4g.CmdbFacade
com.wl4g.CmdbManager
com.wl4g.HomeFacade
com.wl4g.HomeManager
com.wl4g.LcdpFacade
com.wl4g.LcdpManager
com.wl4g.UciFacade
com.wl4g.UciServer
com.wl4g.UdmFacade
com.wl4g.UdmManager
com.wl4g.UdsFacade
com.wl4g.UdsManager
com.wl4g.UmcFacade
com.wl4g.UmcManager
com.wl4g.UmcTracker
com.wl4g.UmcCollector
com.wl4g.UosFacade
com.wl4g.UosManager
com.wl4g.UrmFacade
com.wl4g.UrmManager
```
#### 2.6.3 测试访问(推荐Chrome)
http://wl4g.debug 默认账号密码:root/wl4g.com
### 2.7 部署成功示例部分截图
> 提示:截图可能由于版本演变存在略微差异,如有问题请加交流群(联系在后面部分)

- [更多截图](shots/)
## 3. 子模块文档
- [UCI](../../blob/master/xcloud-dopaas-uci/README_CN.md) (Unified Continuous Integration)统一持续集成交付服务, CI/CD等
- [UMC](../../blob/master/xcloud-dopaas-umc/README_CN.md) (Unified Monitoring and Operation Center)统一监控运维中心, 应用健康实时监控、实时追踪、实时告警、ELK日志分析等
- [URM](../../blob/master/xcloud-dopaas-urm/README_CN.md) (Unified Repository Management)统一仓库管理, 源码仓库、构建包仓库、镜像仓库等
- [UCM](../../blob/master/xcloud-dopaas-ucm/README_CN.md) (Unified Config Management)统一配置管理服务, 在线配置热更新如:DataSource、RedisClient等
- [CMDB](../../blob/master/xcloud-dopaas-cmdb/README_CN.md) (Configuration Management Database)统一资产管理, 主机、密钥、审计、DNS等基础设施资产管理等
- [UDM](../../blob/master/xcloud-dopaas-udm/README_CN.md) (Unified Document Management)统一文档管理, API/Swagger在线文档/Office/Pdf等
- [LCDP](../../blob/master/xcloud-dopaas-lcdp/README_CN.md) (Low Code Development Platform)低代码开发中心, 多种语言/架构完整项目自动生成(如springcloud/dubbo/golang/python/vue/angularjs等)、WebIDE、及各种开发者工具链等
- [UDS](../../blob/master/xcloud-dopaas-uds/README_CN.md) (Unified Distributed Scheduler)统一分布式调度管控中心, 如 支持ElasticJob任务、spark/flink任务等
- [UOS](../../blob/master/xcloud-dopaas-uos/README_CN.md) (Unified Object Storage)统一对象存储服务,基于springcloud开发支持NativeFS、HDFS、Aliyun OSS、AWS S3、GlusterFS等, Aliyun OSS, AWS S3, GlusterFS 等
- [UIM](../../blob/master/xcloud-dopaas-uim/README_CN.md) (Unified Instant Messaging)统一的即时通讯服务,方便项目人员及时沟通,安全分发内部资料.
## 4. 其他相关应用/组件文档
- [SHELL](xcloud-dopaas-shell/README_CN.md) Shell Cli, 给应用添加类似hbase-shell的控制台功能
- [IAM](xcloud-iam/README_CN.md) 统一身份识别与访问管理服务,支持SSO/CAS、oauth2、opensaml等,同时支持多种部署模式(local/cluster/gateway)
- [Gateway](xcloud-gateway/README_CN.md) 基于spring-cloud-gateway的企业级微服务网关, 可与CI整合实现金丝雀部署等等高级特性.
## 5. 如何交流、反馈、参与贡献?
- 点击入群 [](https://shang.qq.com/wpa/qunwpa?idkey=0343b06591d19188d86dc078912adfc5c40f023c8ec5a0d1eda5bdfc35ab40d0)
- 
- GitHub:https://github.com/wl4g/xcloud-dopaas
- 开源中国:https://gitee.com/wl4g/xcloud-dopaas
- 一个人的个人能力再强,也无法战胜一个团队,希望兄弟姐妹的支持,能够贡献出自己的部分代码,参与进来共同完善它(^_^)。
[如何共享代码](https://www.cnblogs.com/wenber/p/3630921.html)