通常,生产环境中的项目发布方式包括后面三种:蓝绿发布、金丝雀发布、A/B测试。下面是个人的一些理解,有问题请指正,谢谢。
蓝绿发布
两套一模一样的生产环境,且两者之间没有耦合情况。对外提供服务的一套为绿色环境,不对外的一套为蓝色环境。如果有新功能先发布到蓝色环境,不影响绿色环境的使用。反复测试修改验证没有问题后,将用户切到蓝色环境,切换后的一段时间内,如果有问题再切回绿色环境。如果没有问题,蓝色环境就成为新的绿色环境,原绿色环境释放,用于部署下一个蓝色环境。
金丝雀发布
也就是常说的灰度发布。假设你有几百台甚至上千台服务器,你不可能申请这么多主机再部署一套所谓的蓝色环境。此时金丝雀发布无疑是合适的选择。只讲新版本的服务发布到其中的10台机器上,然后观察验证。确认没有异常之后,再更新到其余的服务器上。可以使用修改权重的方式让某几台服务器优先被访问。
A/B测试
A/B测试不同于蓝绿发布和金丝雀发布,前两种方式是一种发布策略,目标是确保新上线的服务是否问题,是否存在BUG隐患等等。而A/B测试完全是一种效果测试,它允许多个版本的服务同时对外提供访问,比如A版本的主题是蓝色,B版本的主题是红色,然后对比不同版本的用户量,最终选出最合适的版本。
写作不易,转载请注明出处,谢谢~~