当前位置:主页 > 查看内容

阿里巴巴DevOps实践指南(十四)| 测试环境与路由

发布时间:2021-07-06 00:00| 位朋友查看

简介:编者按:本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南》,扫描上方二维码或前往: https://developer.aliyun.com/topic/devops ,下载完整版电子书,了解阿里十年DevOps实践经验。 阿里巴巴内部的测试环境治理方案数年来不断演进,其中也经历过不……

image.png

编者按:本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南》,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电子书,了解阿里十年DevOps实践经验。

阿里巴巴内部的测试环境治理方案数年来不断演进,其中也经历过不少试错的过程。早期测试环境治理的迭代过程是比较漫长的,究其原因,是因为测试环境解决方案的更新换代牵扯面比较广。这里面不仅仅涉及全链路微服务的整体策略调整,而且涉及影响路由隔离能力的多种中间件协议(HTTP、RPC、消息等)的整体变更,一次测试环境解决方案的整体规模化更新落地时间需要以年计。

同时随着新技术发展给测试环境拉起带来便利性的红利,业务侧针对测试环境的使用也逐步向多职能、多样性的解决方案快速演化。

为跟上业务测试环境解决方案演进步伐,加快测试环境治理迭代速度同时减少试错成本,有必要进行测试环境流量路由领域抽象,以适配和满足各种使用场景的诉求。

解决方案

需要针对环境使用场景以及路由进行分层抽象,增加路由协议层定义,协议支持路由编排,并与业务场景解耦。数据层面与控制层面面向统一路由协议进行扩展和实现,数据层面提供路由能力的扩展(如 HTTP、RPC、消息、DB 等),控制层面提供环境和路由产品化工具,在用户侧提供面向配管的环境解决方案编排能力,以及提供面向开发者的环境使用能力。

image.png

路由与测试环境概念隔离域:提供相同层面服务的集合,服务间调用优先选择在隔离域内进行,隔离域间默认路由隔离,可以从路由层面定义隔离域间的 fallback 降级调用策略。隔离单元(环境):隔离域内最小辨识单位,为隔离域内的某一应用的资源集合,通常 DevOps 平台面向开发者会使用某应用下环境来承载隔离单元。路由如何领域建模

流量路由能力是测试场景可以并行的基础,能够为开发、测试等多角色开辟一块私有隔离域,自有服务调试流量在私有隔离域内部调用,隔离域之间流量隔离互不干扰。

接下来我们透过具体的业务使用场景,来看下什么是路由模型。

image.png

路由模型由隔离域、降级策略及降级条件三部分组成:

隔离域定义了隔离域内的隔离单元组成隔离域降级策略定义了隔离域间的 fallback 机制降级条件包括多种场景,如有隔离单元无实例、有实例无服务以及无隔离单元等

通过上述三者的组合,即可编排表述出面向具体业务场景的路由定义。

环境如何领域建模环境分类

分析阿里巴巴以往的测试环境使用场景,环境可以归纳为两大类:静态环境和动态环境。

静态环境

静态环境类型有固定的隔离域,隔离域一经定义不再改变隔离域属性,通常只存在隔离单元的加入和删除,这种隔离域一般规模比较大,提供兜底的服务支撑,对稳定性有比较高的要求,需要开发者维护环境的稳定性,比如基础环境(微服务场景下提供支撑开发联调的兜底服务的环境)等。

静态环境的核心指标为稳定性 SLA,可以通过全链路的持续测试流量、监控、工单及故障机制来保障,其中静态环境的故障对比生产环境影响因子如下:

生产环境故障影响因子静态环境故障影响因子用户舆情、资损、下跌比例等应用重要度(被依赖)、研发舆情、上游研发的活跃度、影响的联调流量等动态环境

动态环境归属隔离域不稳定,经常会按照联调对象的不同发生聚合或者分裂,这种隔离域一般规模比较小,通常用作临时开发调试及测试使用,秉承“按需申请、用完即弃”的原则。

动态环境的核心指标为一键拉起能力、拉起的成功率和拉起的速度。

如何实现端的一键接入

测试环境拉起多版本、多隔离域的同时,也给开发者的调用接入带来不小的代价,因此必须要让开发者能够从开发机或者端(PC 浏览器、APP 端)一键接入隔离域。

开发机接入测试

开发机通过对云上资源的替换标记,实现一键替换云端资源,将调用流量路由到本地,满足开发者本地联调的需求,联调完毕可以一键将开发机移出,联调流量重新回到云端资源。

image.png

端接入测试

测试环境多隔离域场景下,实现端(浏览器、移动端)无配置化一键接入隔离域,摆脱大量如域名本地绑定 hosts 等配置化工作,提升研发效率。

移动端可以通过扫描目标隔离域二维码的方式标记路由,实现一键接入对应隔离域。PC 端浏览器可以通过打开对应隔离域网页地址的方式标记路由,实现一键接入对应隔离域。

image.png

总结

在阿里巴巴内部,随着业务规模和技术栈的拓展和更新,业务侧对测试环境的使用也逐步打破原固有模式,快速向多场景、多样化、多职能方向发展,如何能够跟上业务发展速度,及时满足业务侧对测试环境新场景的诉求,基于环境和路由模型的测试环境解决方案是解决问题的关键。

免费下载《阿里巴巴DevOps实践指南》

阿里巴巴合伙人和业界多位大佬力荐、何勉、陈鑫等17位阿里资深技术专家联袂出品、阿里十年DevOps经验沉淀总结、阿里巴巴DevOps落地实践一本通。

前往:https://developer.aliyun.com/topic/devops,下载完整版电子书。

image.png


本文转自网络,原文链接:https://developer.aliyun.com/article/785078
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐