文档首页 > > 最佳实践> HE2E DevOps实践>

HE2E DevOps实践介绍

HE2E DevOps实践介绍

分享
更新时间:2021/01/22 GMT+08:00

本文档基于微服务架构的应用程序“凤凰商城”,使用DevCloud进行全流程管理。

“凤凰商城”示例程序简介

“凤凰商城”是一套汽车零部件配件电子商城示例代码。此套示例代码具有结构与逻辑简单、代码量少、技术栈丰富的特点,可以帮助开发者快速了解DevCloud的各项特性以及使用微服务解决软件开发、测试和部署过程中可能遇到的各种问题。

  • 架构与业务场景

    凤凰商城示例程序架构图如图1所示。

    图1 凤凰商城技术架构图

    示例程序由表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(此服务提供两种技术栈实现了同样的功能,可根据需要修改配置选择其中一个作为运行时进程)。

    订单缓存(对应样例代码中的“Redis”功能)

    业务逻辑:此服务作为用户端UI服务的数据持久化服务存在。

    订单数据库(对应样例代码中的“PostgreSQL”功能)

    业务逻辑:此服务作为管理端UI服务的数据源。

  • 面展示
    • 用户端UI:默认使用“http://localhost:5000”地址,即可打开如图2所示页面。
      图2 用户端UI
    • 管理端UI:默认使用“http://localhost:5001”地址,即可打开如图3所示页面。
      图3 管理端UI
  • 调试、测试、打包和部署方式

    示例程序全部使用Docker进行打包和部署,并使用docker-compose作为配置文件的基本格式。

    本地调试可以使用以下命令(确保在代码库的根目录中执行):

    docker-compose up

“DevOps全流程样例项目”简介

DevCloud提供了一个样例项目“DevOps全流程样例项目”来承载“凤凰商城”示例程序,本文档通过此样例项目讲解软件研发生命周期的操作。

“DevOps全流程样例项目”是一个Scrum类型的模板项目,项目中预置了部分DevCloud服务的使用模板。项目实践过程中涉及到的产品及服务如表2

表2 实践涉及产品/服务列表

服务

说明

DevCloud使用模板

项目管理

预置项目的整体需求规划图、3个已规划并已完成的迭代、项目的模块设置、以及若干统计报表。

代码托管

预置代码仓库phoenix-sample,存放“凤凰商城”项目代码。

代码检查

预置4个代码检查任务,任务详情介绍请参见步骤五:检查项目代码

编译构建

预置5个编译构建任务,任务详情介绍请参见步骤六:构建应用

部署

3个部署任务,任务详情介绍请参见步骤七:部署应用(ECS篇)

云测

功能测试用例库,包含十余个测试用例。

流水线

5个流水线任务,任务详情介绍请参见步骤八:配置流水线,实现持续交付

CloudIDE

用于开发项目代码。

发布

用于存储通过编译构建任务生成的软件包。

其它华为云组件和服务

统一身份认证服务IAM

用于管理帐号。

容器镜像服务SWR

用于存放编译构建任务中生成的Docker镜像。

弹性云服务器ECS

用于软件包部署。

云容器引擎CCE

用于软件包部署,与ECS部署属于两种不同的部署方式。

实践流程

本文档将按照以下步骤介绍HE2E DevOps实践的操作流程。

  1. 准备实践环境。
    请参照实践准备工作完成实践前的准备,包括:
    • 注册帐号并实名认证。
    • 为项目成员分配帐号。
    • 创建项目、添加项目成员。
  2. 管理项目规划。
    请参照步骤一:管理项目规划完成以下项目规划操作:
    • 管理需求规划。
    • 管理迭代规划。
    • 监控和跟踪项目状态。
  3. 管理项目配置。
    请参照步骤二:管理项目配置完成以下项目设置:
    • 管理项目通知。
    • 定制项目工作流程。
  4. 开发项目代码。
    请参照步骤四:开发项目代码完成以下代码开发过程:
    • 使用分支管理项目代码。
    • 使用CloudIDE修改和提交代码。
    • 检视代码、合并分支。
  5. 检查项目代码。
    请参照步骤五:检查项目代码对代码进行静态检查,主要操作包括:
    • 配置并执行代码检查任务。
    • 查看代码检查结果。
  6. 构建应用

    请参照步骤六:构建应用配置编译构建任务,包括:

    • 配置并执行编译构建任务。
    • 设置提交代码触发自动编译。
    • 设置定时执行编译构建任务。
  7. 部署应用。
    DevCloud支持以下两种部署方式,请根据需要选择。
  8. 创建流水线

    请参照步骤八:配置流水线,实现持续交付创建并配置流水线,包括:

    • 配置并执行流水线。
    • 配置质量门禁。
    • 配置代码变更自动触发流水线。
  9. 释放资源
    完成实践全部操作后,请参照释放资源释放不需要的资源,包括:
    • 删除项目。
    • 删除弹性云服务器。
    • 删除集群。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问