方案概述
应用场景
通过一套汽车零部件配件电子商城示例代码“凤凰商城”,以及“DevOps全流程示例项目”,介绍如何使用CodeArts实现HE2E DevOps框架。该方案适用于敏捷/Scrum研发项目。
方案架构
- “凤凰商城”示例程序架构
“凤凰商城”示例程序的架构图如图2所示。
示例程序由表1中的5个可以独立开发、测试和部署的微服务组件构成。
表1 凤凰商城微服务组件表 微服务组件
说明
Web用户端服务器(对应样例代码中的“Vote”功能)
- 业务逻辑:用户可以通过浏览器访问此服务的WebUI。当用户在特定商品上单击“Like”时,服务将用户所选择物品的记录保存在Redis缓存中。
- 技术栈:Python、Flask框架。
- 应用服务器:Gunicorn。
Web管理端服务器(对应样例代码中的“Result”功能)
- 业务逻辑:用户可以通过浏览器访问此服务的WebUI,会动态显示用户端UI上用户单击“Like”的统计数据,此数据来自PostgreSQL数据库。
- 技术栈:Node.js、express框架。
- 应用服务器:server.js。
后台订单批处理程序(对应样例代码中的“Worker”功能)
- 业务逻辑:此服务为后台进程,会监控Redis缓存中物品记录,并将新纪录取出并保存在PostgreSQL数据库中,以便管理端UI可以抽取数据进行统计显示。
- 技术栈:.net core或者Java(此服务提供两种技术栈实现了同样的功能,可根据需要修改配置选择其中一个作为运行时进程)。
订单缓存
- 业务逻辑:此服务作为用户端UI服务的数据持久化服务存在。
- 技术栈:Redis
订单数据库
- 业务逻辑:此服务作为管理端UI服务的数据源。
- 技术栈:PostgreSQL
- “DevOps全流程样例项目”构成
“DevOps全流程样例项目”是一个Scrum类型的模板项目,项目中预置了部分服务的使用模板。项目实践过程中涉及到的产品及服务如下表。
表2 实践涉及产品/服务列表 服务
说明
软件开发生产线
需求管理
预置3个已规划并已完成的迭代、项目的模块设置、以及若干统计报表。
代码托管
预置代码仓库“phoenix-sample”,存放项目示例代码。
代码检查
预置4个任务,任务详情介绍请参见步骤四:检查代码。
编译构建
预置5个任务,任务详情介绍请参见步骤五:构建应用。
制品仓库
用于存储通过构建任务生成的软件包。
部署
预置3个应用,应用详情介绍请参见步骤六:部署应用(CCE篇)。
测试计划
功能测试用例库,预置十余个测试用例。
流水线
预置5条流水线,流水线详情介绍请参见步骤八:配置流水线,实现持续交付。
其它组件和服务
统一身份认证服务
用于管理帐号。
容器镜像服务
用于存放构建任务生成的Docker镜像。
云容器引擎
用于软件包部署,与ECS部署属于两种不同的部署方式。
弹性云服务器
用于软件包部署,与CCE部署属于两种不同的部署方式。
方案优势
- 针对需求变动频繁、开发测试环境复杂、多版本分支维护困难、无法有效监控进度和质量等研发痛点,提供一站式云端管理平台,管理软件开发全过程。
- 提供可视化、可定制的持续交付流水线服务,实现持续交付,让软件上线提速一倍。