如何搭建微服务架构的质量体系
本文主要谈如何构建微服务的质量体系。在这之前,大家先简单了解下几个问题:
1.为什么用微服务
单体应用就是将应用程序的所有功能都打包成一个独立的单元,最终以一个WAR包或JAR包存在,里面包含DAO,Service、UI等所有的逻辑。不幸的是,这种简单的单元有很大的局限性。应用程序随着业务需求的迭代,功能的追加扩展,最终成为一个庞然大物。
复杂性高:业务规模和团队规模发展的一定阶段,模块耦合严重,代码难以理解,质量变差
交付效率低:构建和部署耗时长,难以定位问题,开发效率低,全量部署耗时长、影响范围广、风险大,发布频次低
伸缩性(scalable)差:单体只能按整体横向扩展,无法分模块垂直扩展
可靠性差:一个bug有可能引起整个应用的崩溃
阻碍技术创新:受技术栈限制,团队成员使用同一框架和语言
2.什么是微服务
微服务架构:将单体应用拆分为多个高内聚低耦合的小型服务,每个小服务运行在独立进程,由不同的团队开发和维护,服务间采用轻量级通信机制,独立自动部署,可以采用不同的语言及存储。微服务的优点:
易于开发与维护:微服务相对小,易于理解
独立部署:一个微服务的修改不需要协调其它服务
伸缩性强:每个服务都可按硬件资源的需求进行独立扩容
与组织结构相匹配:微服务架构可以更好将架构和组织相匹配,每个团队独立负责某些服务,获得更高的生产力
技术异构性:使用最适合该服务的技术,降低尝试新技术的成本
微服务的介绍有很多,可以参考:https://zhuanlan.zhihu.com/p/...
3.微服务带来的质量挑战
系统依赖性增加:将单体应用转成微服务,虽然增加了缩放能力和灵活性,但是引入了更多的依赖,使系统整体变的更复杂,使测试环境的搭建配置以及校验指标更加难以掌控。
并行开发障碍:系统依赖性的增加还会给微服务的并行开发工作造成影响,需要等待其他微服务测试环境部署完毕,才能实现集成、测试。微服务数量越多,需要考虑的对象就越是广泛
影响传统测试方法:传统测试方法往往通过UI测试进行验证,而微服务的测试方案更加复杂。不仅需要验证各独立微服务,还需要检查整体业务的执行路径
4.质量体系如何搭建
4.1下面是比较通用的微服务架构下质量保障体系图
更多请参考:http://runtester.com/detail/b...