中文文档 | English version goes here
注:当前完全分布式版正在孵化中,不建议在生产环境使用!
基于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)、即时通讯、轻量级风控等
本项目主要基于 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 +
适用于主机快速部署,部署脚本会自动探测安装包括:jdk、nginx、git、maven、node、eureka、zookeeper、及所有SpringBoot apps,但不包括 redis/redis cluster(选其一)、Mysql服务,这些需要您自行手动安装.
bash -c "$(curl -L https://raw.githubusercontent.com/wl4g/dopaas/master/script/deploy/deploy-boot.sh)"
# 或
bash -c "$(curl -L https://gitee.com/wl4g/dopaas/raw/master/script/deploy/deploy-boot.sh)"
- 请注意按脚本提示,修改
deploy-env.sh
自定义环境配置然后重新执行./deploy-boot.sh
, 由于是从源码编译部署, 请耐心等待大约 8~20min (第一次因需下载代码和依赖库会比较慢, 后续如需重新部署可根据实际情况设置export buildForcedOnPullUpToDate=true
或export deployFrontendSkip=true
来跳过后端编译和前端等来加速). - 部署前先检查目标主机上是否已安装 nginx/zookeeper/eureka 等, 若有则建议先停止, 因为自动部署也会部署避免冲突.
集群管理工具:
./dopaas-ctl.sh
Usage: {start-all|stop-all|restart-all|status-all|<appName> <start|stop|restart|status>}
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.
<appName> <start|stop|restart|status> 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+ | 单体应用 |
适用于本地二次开发环境的搭建
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public<url>
</mirror>
按项目依赖顺序进行编译, 其中
mvn -P
选项有:springExecJar
(打包为单个可执行jar)、mvnAssTar
(打包为通用软件发布包),默认
git clone https://github.com/wl4g/component.git # 上游较新(推荐)
或者 git clone https://gitee.com/wl4g/component.git
mvn -f component -U clean install -DskipTests -T 2C
git clone https://github.com/wl4g/iam.git # 上游较新(推荐)
或者 git clone https://gitee.com/wl4g/iam.git
mvn -f iam -U clean install -DskipTests -T 2C
git clone https://github.com/wl4g/dopaas.git # 上游较新(推荐)
或者 git clone https://gitee.com/wl4g/dopaas.git
mvn -f dopaas -U clean install -DskipTests -T 2C
git clone https://github.com/wl4g/dopaas-view.git # 上游较新(推荐)
或者 git clone https://gitee.com/wl4g/dopaas-view.git
npm run dev # 开发调试
npm run build # 生产打包
2.3 初始数据库:首先准备一台MySQL5.6+实例,创建名为dopaas(utf8/utf8_bin)的库,再初始数据库。
注:sql脚本需与源码版本对应,我们会定期更新,建议都使用最新
Standalone模式Hosts解析示例
Cluster模式Hosts解析示例
注:对外的服务使用的域名在不同环境下请对应
sys_cluster_config.extranet_base_uri
表
https://github.com/wl4g/docker-redis-cluster 或
https://gitee.com/wl4g/docker-redis-cluster
说明:
a. 尝试启动时无需指定任何jvm参数(即, 都使用默认配置), 如:默认仅会激活 dev
环境的配置;
b. 无论是运行 standalone
模式还是 cluster
模式,都可以分别对应(dev
/fat
/uat
/pro
)4种环境。
只需运行以下启动类:
com.wl4g.StandaloneDopaas
com.wl4g.StandaloneIam
请运行以下启动类:
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
http://wl4g.debug 默认账号密码:root/wl4g.com
提示:截图可能由于版本演变存在略微差异,如有问题请加交流群(联系在后面部分)
- UCI (Unified Continuous Integration)统一持续集成交付服务, CI/CD等
- UMC (Unified Monitoring and Operation Center)统一监控运维中心, 应用健康实时监控、实时追踪、实时告警、ELK日志分析等
- URM (Unified Repository Management)统一仓库管理, 源码仓库、构建包仓库、镜像仓库等
- UCM (Unified Config Management)统一配置管理服务, 在线配置热更新如:DataSource、RedisClient等
- CMDB (Configuration Management Database)统一资产管理, 主机、密钥、审计、DNS等基础设施资产管理等
- UDM (Unified Document Management)统一文档管理, API/Swagger在线文档/Office/Pdf等
- LCDP (Low Code Development Platform)低代码开发中心, 多种语言/架构完整项目自动生成(如springcloud/dubbo/golang/python/vue/angularjs等)、WebIDE、及各种开发者工具链等
- UDS (Unified Distributed Scheduler)统一分布式调度管控中心, 如 支持ElasticJob任务、spark/flink任务等
- UOS (Unified Object Storage)统一对象存储服务,基于springcloud开发支持NativeFS、HDFS、Aliyun OSS、AWS S3、GlusterFS等, Aliyun OSS, AWS S3, GlusterFS 等
- UIM (Unified Instant Messaging)统一的即时通讯服务,方便项目人员及时沟通,安全分发内部资料.
- SHELL Shell Cli, 给应用添加类似hbase-shell的控制台功能
- IAM 统一身份识别与访问管理服务,支持SSO/CAS、oauth2、opensaml等,同时支持多种部署模式(local/cluster/gateway)
- Gateway 基于spring-cloud-gateway的企业级微服务网关, 可与CI整合实现金丝雀部署等等高级特性.
- 点击入群
- GitHub:https://github.com/wl4g/dopaas
- 开源中国:https://gitee.com/wl4g/dopaas
- 一个人的个人能力再强,也无法战胜一个团队,希望兄弟姐妹的支持,能够贡献出自己的部分代码,参与进来共同完善它(^_^)。