目录

特性概览

特性概览
  • 功能特性
  • 企业版和社区版区别
  • 界面概览

Dory-Engine特性概览

../../images/what-is-dory.png

  • Dory-Engine 是一个非常简单的开源k8s远程开发环境,帮助开发人员把应用源代码快速编译、打包、部署到k8s
    • 不用学: 不用学习复杂的k8s技术原理,5分钟即可快速上手部署应用
    • 不用配: 不需要配置任何代码仓库、镜像仓库和k8s连接参数
    • 不用写: 不需要编写任何k8s部署清单和流水线脚本

功能特性

1. 流水线

/docs/01-overview/02-features-overview/images/pipeline.png

  • 一条流水线支持同时编译、打包、部署多个不同编程语言编写的微服务模块
  • 支持设置流水线的模块开关,可以设置本次执行流水线要编译、打包、部署哪些微服务模块
  • 支持设置流水线的步骤开关,可以设置本次执行流水线,要执行哪些步骤
  • 支持交互式流水线,可以在执行流水线的过程中动态选择执行哪些模块的哪些步骤

2. 源代码编译

  • 支持从多种代码仓库拉取源代码: gitlabgiteagithub.comgitee.com、其他git代码仓库
  • 可以自动在代码仓库中创建演示项目代码和演示项目配置,快速上手
  • 内置支持多种编程语言的编译环境: mavengradlenpmgolangpython,程序编译在docker容器中执行
  • 支持自定义编译环境,可以通过自定义容器镜像支持各种编程语言,以及windows和macos的应用编译
  • 同一份源代码可以编译成不同CPU架构的可执行程序,包括x86 / arm64 / i386 等

3. 代码质量扫描

  • 内置支持使用sonarqube进行代码质量扫描
  • 支持单测覆盖率、bug、不良编码习惯、漏洞相关的代码扫描

4. 容器镜像打包

  • 支持把镜像打包成不同CPU架构的容器镜像,包括x86 / arm64 / i386 等
  • 支持自动把容器镜像推送到多种容器镜像仓库: harbor、其他容器镜像仓库

5. 容器镜像安全扫描

  • 内置支持使用trivy对容器镜像进行安全扫描
  • 支持设置镜像扫描出现多少关键、高危、中危漏洞情况下中断流水线

6. 应用部署到k8s

  • 无需编写任何k8s的yaml部署清单,通过非常简单的容器部署定义设置如何在k8s中部署pod
  • 支持把容器镜像部署到不同CPU架构的k8s集群,包括x86 / arm64 / i386 等
  • 支持分配GPU算力
  • 支持各种k8s版本: v1.16.x - v1.31.x
  • 支持把不同分支的源代码部署到不同的k8s集群,例如: develop分支代码编译打包部署到测试环境、release分支代码编译打包部署到生产环境
  • 内置支持使用istio进行混合灰度发布,包括蓝绿发布、金丝雀发布、AB测试发布三种灰度发布
  • 支持使用代码仓库中的配置文件创建k8s的configmap和secret,支持把代码仓库中的配置文件发送到k8s中已启动pod
  • 支持在k8s中部署调试组件,通过调试组件调试应用以及管理k8s共享存储中的文件
  • 支持对部署的应用进行冒烟测试,等待pod状态正常再继续执行流水线
  • 支持不用跑流水线直接部署中间件到k8s

7. 应用部署到远程主机

  • 支持把源代码编译的制品,例如jar、war包上传到制品仓库
  • 支持多种制品仓库: nexus、内置制品仓库、http/ftp/sftp方式上传制品
  • 内置支持使用ansible把制品部署到远程主机

8. 自动化测试

  • 内置支持使用robotframework进行接口自动化测试,并输出测试报告
  • 内置支持使用robotframework进行界面自动化测试,并输出测试报告
  • 内置支持使用jmeter进行性能自动化测试,并输出测试报告

9. 数据库脚本注入/回滚

  • 内置支持使用liquibase把代码仓库中的数据库脚本注入/回滚数据库
  • 支持多种数据库注入/回滚,包括: mysql / mariadb / postgresql / clickhouse / mongodb

10. 扩展功能

  • 支持使用自定义的容器镜像设置自定义步骤,扩展你的流水线能力
  • 每个步骤支持设置webhook,在步骤执行成功或者失败的时候触发webhook,与企业内其他系统集成
  • 支持使用dorycli命令行方式执行流水线,与企业内其他系统集成

社区版和企业版区别

  • 社区版和企业版使用相同的程序,config/license.yaml文件用于设置企业版license,如果该文件没有设置或者licenseKey不正确,那么使用的是社区版

  • 企业版license可微信联系Dory-Engine开发者获取:

    • /docs/01-overview/02-features-overview/images/wechat-qrcode.jpg
  • 社区版(ce) / 企业版(ee)功能区别

功能 社区版(ce) 企业版(ee)
流水线
源代码编译
容器镜像打包
应用部署到k8s
扩展功能
跨CPU架构编译/打包/部署 支持 x86 支持 x86 / arm64 / i386 等
可接管的代码仓库数量 1个 多个
可接管的容器镜像仓库数量 1个 多个
可接管的制品仓库数量 1个 多个
可接管的代码扫描仓库数量 1个 多个
可接管的k8s环境数量 1个 多个
代码质量扫描
容器镜像安全扫描
自动化测试
应用部署到远程主机
数据库脚本注入/回滚
istio混合灰度发布
通过patch自定义k8s的应用部署
使用代码仓库中的配置文件在k8s中创建configmap和secret
为k8s分配GPU资源配额
租户管理员

主要界面概览

1. 开发空间

/docs/01-overview/02-features-overview/images/webui-01-devspace.png

  • 用于设置和执行流水线用途,从代码仓库拉取源代码,并编译打包部署到k8s

2. 运行记录

/docs/01-overview/02-features-overview/images/webui-02-runs.png

  • 查看流水线的历史执行记录

3. 步骤执行记录

/docs/01-overview/02-features-overview/images/webui-03-steps.png

  • 抽取步骤执行日志中的关键信息形成步骤执行记录

4. 度量统计

/docs/01-overview/02-features-overview/images/webui-04-metrics.png

  • 流水线和步骤的执行统计信息

5. 项目控制台

/docs/01-overview/02-features-overview/images/webui-05-console.png

  • 开发项目的基础配置,以及在k8s环境中部署各种中间件组件

6. 管理控制台

/docs/01-overview/02-features-overview/images/webui-06-admin.png

  • 管理员设置界面,可用于开通和修改开发项目