知识卡片

自动化测试与自动化部署:应对接口数量与部署频率的双重剧增

普通读书笔记卡

内容

[[微服务基础设施是把ESB的复杂度转移而非消除,及搭建的四层优先级]]第三层里的自动化测试和自动化部署,本质都是在应对微服务架构下”人工操作规模已经不可持续”这个共同问题。自动化测试方面:微服务把大一统系统拆成多个独立运行的”微”服务,微服务之间的接口数量因此大幅增加,而微服务架构又天生提倡快速交付、版本周期短、更新频繁——如果每次更新都靠人工回归整个系统,工作量大、效率低,根本达不到快速交付的目标,因此绝大部分测试回归工作必须交给自动化测试系统完成,覆盖范围理想情况下应包括代码级的单元测试、单个系统级的集成测试、系统间的接口测试;如果团队规模和人力有限、无法全面覆盖,至少要保证接口测试自动化,因为接口是微服务架构下最容易出问题也最需要频繁验证的环节。自动化部署方面:相比大一统系统,微服务要部署的节点数量增加了几倍甚至十几倍,部署频率也会大幅提升(比如某业务系统70%的工作日都有部署操作),综合下来微服务的部署次数可能是大一统系统的几十倍——这种量级的部署操作如果继续靠人工手动处理,需要投入大量人力还容易出错,因此需要自动化部署系统来承担,功能上要覆盖版本管理、资源管理(机器/虚拟机管理)、部署操作、回退操作这几块。

参考来源

- 位置:《从零开始学架构》第36讲《微服务架构最佳实践 - 基础设施篇》"自动化测试""自动化部署"(源文件:_epub-src/OEBPS/text00003.html) - 结论依据:原文说明"微服务将原本大一统的系统拆分为多个独立运行的'微'服务,微服务之间的接口数量大大增加……必须通过自动化测试系统来完成绝大部分测试回归的工作",并说明"微服务需要部署的节点增加了几倍甚至十几倍……综合计算下来,微服务部署的次数是大一统系统部署次数的几十倍……因此需要自动化部署的系统来完成部署操作",直接支撑本卡片结论。 - 原始内容:微服务将原本大一统的系统拆分为多个独立运行的"微"服务,微服务之间的接口数量大大增加……如果因为团队规模和人力的原因无法全面覆盖,至少要做到接口测试自动化……综合计算下来,微服务部署的次数是大一统系统部署次数的几十倍……需要自动化部署的系统来完成部署操作。