经过解脱共享环境,团队可以并行测试,从而成功更快、更高质量的颁布。
驳回微服务架构的工程团队的典型 CI/CD 上班流程如下:
关于每个微服务,每天或者会有屡次部署到暂存环境。虽然这种设置已成为常态,但共享暂存环境通常会形成瓶颈,从而减缓团队速度并削弱微服务的长处。让咱们深化了解为什么会出现这种状况,以及上游的工程团队如何逾越暂存环境来有效地扩展测试。
在这个架构中,多个服务(如支付、订单、运输和媒体)相互交互。一个服务(如支付服务)的缺点或者不会立刻浮现,并或者体现为订单服务中的疑问。这些相互依赖相关使得难以确定测试失败的基本要素,尤其是在触及多个服务时。调试这种复杂的微服务网络中的缺点十分耗时,由于每个服务或者都有不同的团队担任保养它。
这些疑问会造成开发人员消费劲大幅降低。CI/CD 管道中的瓶颈会造成他们破费更多期间调试而不是编码。假设您的工程团队每月因暂存环境相关疑问而损失数天时间,这对您的速度和士气都是一个重大的打击。
从颁布流程的角度来看,软弱的暂存环境形成的提前会造成配置和补丁颁布速度变慢。当团队破费更多期间修复暂存环境疑问而不是构建新配置时,产品开发速度会变慢。在极速开展的行业中,这或者是一个关键的竞争劣势。
假设您的颁布流程很痛苦,您颁布的频率就会降低,消费环境中失误的老本也会更高。这种放缓也会影响产质量量,由于工程师在压力下为了赶上截止日期,或者会跳过参与新的测试用例。结果是什么?失误解进入消费环境。例如,关于电子商务公司来说,即使是微无余道的失误也会扰乱结账流程,造成支出损失和品牌受损。
最后,还有对开发人员体验的影响。开发人员在能够极速高效地颁布代码的环境中茁壮生长。颁布流程中的摩擦会让开发人员感到丧气,参与倦怠和人员流动。快乐的开发人员编写更好的代码,而无摩擦的颁布流程是成功这一指标的关键。
共享预颁布环境的外围疑问在于竞争。团队无法安保地隔离测试他们的更改。这种隔离的不足会造成瓶颈,阻碍团队有效地验证他们的上班。
正如 Sridharan 恰到优势地指出:
预颁布环境是针对单体运行程序设计的,而不是针对微服务的灵活、扩散的性质。
一种天真的方法或者是创立更多预颁布环境,但这也不能很好地扩展。控制多个环境会带来更多复杂性,正如“环境复制不实用于微服务”中所述,跨微服务准确地复制环境极端艰巨且老本高昂。
那么处置方案是什么?一些最具翻新性的科技公司——如 Uber、Lyft 和 DoorDash——曾经丢弃了共享预颁布环境。他们开发了经过沙盒服务和经常使用灵活流量路由来隔离测试的方法。
正如Lyft 博客文章关于预颁布笼罩的说明:
“咱们从基本上扭转了隔离模型的方法:咱们不是提供齐全隔离的环境,而是在共享环境中隔离恳求。”
经过隔离微服务更改,团队可以防止竞争并独立测试代码。这种隔离测试模型消弭了共享环境带来的疑问,并成功了真正的继续交付。隔离测试准许团队在开发周期的早期发现疑问,降低了前期修复失误的复杂性和老本。
构建外部系统以成功这种级别的隔离在技术上或者很复杂且老本高昂。然而,像Signadot这样的平台提供了处置方案,可以大规模提供隔离的测试环境。得益于沙盒和流量路由,团队可以安保高效地测试微服务,而无需传统的预颁布环境。
预颁布环境十分适宜单体运行程序,但关于当今的微服务架构来说曾经过期了。随着工程团队的规模扩展,共享环境会带来代价高昂的提前,降低质量并让开发人员感到丧气。
微服务测试的未来在于隔离测试。经过丢弃共享环境,团队可以并行测试,从而成功更快、更高质量的颁布。在一个速度、质量和开发人员幸福至关关键的环球里,隔离测试不只仅是精益求精——它是必无法少的。
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/6420.html