【服务化解耦小结】DeH
【愿景】
具备独立交付能力;打通CICD流水线,包含自动化测试,升级验证;
【目标】
可独立开发->可独立运行->可独立验证->可独立发布->可独立安装升级->可独立运维
1、可独立开发
目标:
1)、不与其它组件、服务产生开发依赖。包括:代码依赖和配置依赖;
2)、服务独立的生命周期;
3)、服务独立的rpm包和tar包,用于安装、升级和验证;
动作:
1)、模型分析:服务的领域模型,包含数据表和服务内部依赖API和对外API;
2)、依赖分析:代码依赖、第三方依赖、基础依赖以及公共组件依赖;
3)、独立的git代码管理仓库;
结果:
1)、依赖分析,输出服务的可创建的独立组件、编译服务包池的依赖以及健康检查、日志注册、配置一致性检查等的任务开发需求;
2)、独立的git代码仓库,创建业务代码库、升级工程代码库、打包脚本库和编服务tar包库;
3)、配置门禁任务,包含flake8、LLT、服务包池和tar包;
总结:主要任务包括,建独立仓库、梳理依赖关系、拆分代码、创建独立进程编码和配置门禁任务;
2、可独立运行
目标:
1)、服务进程运行时无依赖,其他组件升级对服务无影响;
2)、服务拥有独立的权限和配置;
3)、服务拥有独立的生命周期管理;
4)、服务拥有独立的数据库表;
动作:
1)、重新编译第三方依赖和基础依赖的rpm包;
2)、构建虚拟运行时环境;
3)、集成virtualEnv;
4)、实现接口、检测服务状态、配置一致性检查等;
结果:
1)、第三方依赖和基础依赖的rpm包,安装到虚拟化环境目录;
2)、激活virtualEnv;
3)、构建虚拟化环境,即服务运行在独立的python运行时;
4)、与公共平台组件联调依赖项,确认服务的公共组件依赖项功能正常;
总结:主要任务包括,virtualEnv最佳实践、编写第三方依赖和基础依赖的spec脚本、集成virtualEnv环境以及依赖验证;
3、可独立验证
目标:
1)、拆分服务的测试用例;
2)、编写服务的自动化用例;
3)、采用工具自动化各阶段出口质量标准;
4)、搭建独立的验证环境,与cloud test对接集成;
5)、集成云龙流水线;
动作:
1)、编写业务UT用例,LLT静态检查任务执行检测;
2)、编写alpha质量出口用例:API全覆盖用例、安全用例、可靠性用例,对接cloud test;
3)、编写beta质量出口用例:API-Gateway对外暴露接口、可靠性用例、性能用例、安全用例,对接cloud test;
4)、gamma质量出口用例:web ui用例,对接cloud test;
5)、编写脚本,完成服务包上传至云龙仓库,触发流水线自动升级、验证自动化用例;
结果:
1)、LLT静态检查UT用例,守护业务代码逻辑正常;
2)、alpha、beta和gamma质量出口用例,确保服务包为可商用交付版本;
3)、流水线确保服务的自动化升级流程正常;
总结:主要任务包括,自动化用例编写、对接云龙工具以及流水线集成验证;
4、可独立发布
目标:
1)、服务安装包可单独发布,也可以组成产品包发布;
2)、服务有独立的版本策略,包括命名、版本号规范;
动作:
1)、拉通讨论发布方案,如大包+小包发布;
2)、拉通讨论版本命名策略,如:Dedicated_Host_1.0.0.0.*;
结果:
1)、第一次切割:大包+小包发布;
2)、版本号命名定义为:Dedicated_Host_1.0.0.0.*
总结:主要任务包括,确定版本发布策略以及版本包命名规范;
5、可独立安装升级
目标:
1)、服务包可独立安装部署;
2)、服务包可独立升级,不依赖其他服务或组件;
动作:编写服务打包脚本,定义安装及升级路径策略文件;
结果:
1)、服务包独立安装部署:角色部署正常,进程正常,服务正常;
2)、第一次切割:根据局点场景,确定升级方案,编写升级回退脚本,验证正常;
3)、服务包可独立升级:定义升级路径,出包,升级,服务正常;
总结:主要任务包括,第一次切割升级回退脚本验证以及独立安装部署、独立升级验证;
6、可独立运维
待续
- 点赞
- 收藏
- 关注作者
评论(0)