方案概述
背景信息
CodeArts结合多年研发经验与业界先进的实践提出了一套可操作可落地的敏捷开发方法论:HE2E DevOps实施框架。
- 规划和设计
- 计划和跟踪、迭代开发
- 持续交付
应用场景
通过一套汽车零部件配件电子商城示例代码“凤凰商城”,以及“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部署属于两种不同的部署方式。
方案优势
- 针对需求变动频繁、开发测试环境复杂、多版本分支维护困难、无法有效监控进度和质量等研发痛点,提供一站式云端管理平台,管理软件开发全过程。
- 提供可视化、可定制的持续交付流水线服务,实现持续交付,让软件上线提速一倍。