入门须知
在使用翼辉任务关键型云原生技术和翼辉软件工厂研发效能管理平台之前,用户需要先了解任务关键型云原生微服务的标准开发流程和软件工厂生产流程。本节将介绍这些核心流程,帮助用户快速上手翼辉任务关键型云原生技术和软件工厂各平台产品的使用。
微服务开发流程
任务关键型云原生微服务的标准开发流程如下:
- VSOA 微服务架构为应用提供微服务分布式通信基础设施。
- ECS 轻量级安全实时容器或 Docker 为应用提供容器化保护和独立运行环境。
- ECSM 容器管理平台为应用提供符合 DevSecOps 的应用全生命周期管理平台。
学习矩阵
在上述微服务开发流程中,不同阶段的参与人员需要掌握的云原生开发内容差异较大,可参考如下矩阵学习云原生相关知识。
角色 | 系统 | 开发语言 | 学习步骤 |
驱动开发人员 | SylixOS | C | 环境准备 - 驱动开发 |
微服务开发人员 | SylixOS | C/C++ | 搭建开发环境 - 搭建运行环境 - 环境验证 - 使用 IDE 打包 - 微服务部署 |
JavaScript | 搭建开发环境 - 搭建运行环境 - 环境验证 - 使用 ECSC 打包 - 微服务部署 | ||
Golang | 搭建开发环境 - 搭建运行环境 - 环境验证 - 使用 ECSC 打包 - 微服务部署 | ||
Python | 搭建运行环境 - 环境验证 - 使用 ECSC 打包 - 微服务部署 | ||
Linux | C/C++ | 搭建开发环境 - 搭建运行环境 - 环境验证 - 使用 Linux 向导打包 - 微服务部署 | |
JavaScript | 搭建开发环境 - 搭建运行环境 - 环境验证 - 使用 Linux 向导打包 - 微服务部署 | ||
Golang | 搭建开发环境 - 搭建运行环境 - 环境验证 - 使用 Linux 向导打包 - 微服务部署 | ||
Python | 搭建运行环境 - 环境验证 - 使用 Linux 向导打包 - 微服务部署 | ||
Java | 搭建开发环境 - 搭建运行环境 |
软件工厂生产流程
翼辉软件工厂的标准化生产流程如下图所示:
设计研发阶段
开发人员使用 RealEvo-IDE 集成开发环境编写、调试代码,然后提交至 GitLab 代码仓库。稳定版本的可复用模块代码或组件包可以直接从 GitLab 或 Armory 制品仓库获取,并导入当前的工程项目中实现复用。项目负责人可以在 GitLab 网页上完成代码评审,同时研发过程中产生的模块软件包也可以上传到制品仓库,供其他研发和测试人员使用。
功能测试阶段
每当新代码提交时,单元测试用例、组件测试用例会自动触发并执行,通过测试的组件版本也会自动推送到相应的制品仓库。除了自动化的组件测试,当微服务构建流水线检测到组件更新时,还能够触发该微服务的自动化构建。测试人员只需从制品仓库获取最新版本的微服务软件包,再使用测试仿真工具 VSOA Messenger 即可开展 API 测试。测试过程所积累的测试用例导出后即可利用 Jenkins 实现持续的自动化测试。最后,通过测试验证的微服务在制品仓库中完成版本发布,进入产品集成测试阶段。
集成测试阶段
完成版本发布的微服务软件包由 Jenkins 构建,并发布为综合管理平台 ECMP 上的容器镜像。在综合管理平台上,测试人员首先完成容器化应用(由一个或多个容器镜像组成)的版本部署或更新。部署完成后,即可针对该应用开展最终的集成测试。集成测试的主要目的是验证应用与其依赖的微服务的数据、逻辑兼容性、用户界面的交互逻辑以及应用响应速度、性能表现是否符合设计要求。集成测试过程通常针对实际的物理板卡完成性能指标测试。测试无误的应用版本通过 ECMP 完成正式版本发布。
部署运维阶段
ECMP 综合管理平台支持物理板卡的批量应用部署和应用运行数据的归集分析。正式发布的应用版本可以通过 ECMP 自动化地部署到多个计算节点上,版本升级时还支持不中断业务的滚动更新。对于隔离的生产运行环境,可以部署独立的 ECMP 平台,从远程的研发环境管理平台拉取应用版本。两个 ECMP 副本之间通过安全可信连接完成异步同步。
部署至计算节点的应用由容器管理程序 ECSM 编排管理。容器化应用将依据其部署规则自动地预热、启动或者在各板卡之间故障迁移。应用的运行日志、监测指标和调用链路信息通过开放的 OTLP 协议进行收集,并最终汇总至管理平台,再通过分析工具为开发人员呈现上下文相关的应用运行状态信息。
最后,不论是生产运行环境中的计算节点资源,还是软件工厂研发过程中各平台产品的数据,均能够通过 API 为数据看板 Dashboard 提供研发、运维、安全状态的关键汇总信息,从而为业务决策提供有力的数据支撑。