在阿里,我们如何管理测试环境( 三 )

除此以外 , 还有许多不对外部用户开放的运行环境 , 用于产品团队日常的开发和验证 , 统称为测试环境 。 正式环境的稳定性 , 除去软件自身的质量因素 , 主要与运行的主机、网络等基础设施相关 , 而测试环境的稳定性则更多受到人为因素影响 。 由于频繁的版本变更 , 以及部署未经充分验证的代码 , 测试环境出故障的情况屡见不鲜 。

良好的代码提交习惯、适当的变更前检查有助于减少故障的发生 , 但无法彻底杜绝后患 。 增加多套测试环境副本能够有效控制故障的影响范围 , 然而企业的资源终归有限 , 降低测试环境成本和提高测试环境稳定性成为了矛盾的两面 。

在这个领域里 , 独具匠心的阿里研发效能团队设计了一种服务级复用的虚拟化技术 , 称为“特性环境” , 其巧妙的思路令人赞叹 。 本文将围绕测试环境管理的话题 , 聊聊这种具有阿里特色的工作方式 。

测试环境管理的困局

测试环境的用途很广泛 , 常见的测试环境譬如系统集成测试环境、用户验收测试环境、预发布测试环境、灰度测试环境等 , 它们体现了产品的交付生命周期 , 也间接反映出整个团队的组织结构 。

推荐阅读