云原生应用架构:微服务开发最佳实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2.3 预发布环境

预发布环境是生产环境的镜像环境,是产品质量的最后一道防线,在服务器、配置、数据库等方面要尽可能地和生产环境保持一致。我们团队会在预发布环境中执行不同类型的测试。

● 发布到生产环境前的手动回归测试。

● 数据库变更测试。

● 一些自动化的测试,如性能测试、Post Check、混沌工程。

● 产品团队发起的用户验收测试。

● 客户系统的集成测试。

我们团队使用Amazon Elastic Kubernetes Service(Amazon EKS)来托管微服务集群。Jenkins的部署任务可以拉取私有镜像仓库中的服务镜像,进而采取滚动升级(Rolling Update)策略来更新应用。与测试环境的持续部署流程不同,对预发布环境的部署要进行严格的把控。我们要求每一次部署预发布环境都要有记录。

预发布环境中的数据库应当和生产环境中的数据库分开,以防止预发布环境的问题影响生产环境。此外,可以在每次大版本发布之前将生产环境数据库中的数据复制到预发布环境数据库中,从而降低在预发布环境中和客户系统集成测试的成本。