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

这种差异有些在于运行的服务种类 , 譬如性能测试环境很可能只需要运行与压力测试相关的那部分访问量最大的关键业务服务 , 其他服务运行了也是浪费资源 。 有些差异在于接入数据的来源 , 譬如开发自测的环境的数据源与正式环境肯定不一样 , 这样测试使用的假数据就不会污染线上用户的请求;预发布环境(或用户验收测试环境)会用与正式环境一致的数据源(或正式数据源的拷贝) , 以便反映新功能在真实数据上运行的情况;自动化测试相关的环境会有单独的一套测试数据库 , 以避测试运行过程中受到其他人为操作的干扰 。

还有些差异在于使用者的不同 , 譬如灰度和预发布环境都使用正式的数据源 , 但灰度环境的使用者是一小撮真实的外部用户 , 而预发布环境的使用者都是内部人员 。 总之 , 没必要为一个不存在业务特殊性的测试场景专门发明一种测试环境 。

在集团层面 , 阿里对流水线形式的约束相对宽松 。 客观的讲 , 只有在一线的开发团队知道最适合团队的交付流程应该是什么样子 。 阿里的开发平台只是规范了一些推荐的流水线模板 , 开发者可在此基础上进行发挥 。 列举几个典型的模板例子:

推荐阅读