【服务化解耦小结】DeH

举报
善良的小瘦子 发表于 2017/09/14 15:26:54 2017/09/14
【摘要】 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、可独立运维

待续

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。