- 蓝绿发布(Blue-Green Deployment): 蓝绿发布通过维护两个并行生产环境实现,通常称为 “蓝环境” 和 “绿环境”。“环境”指的是服务器、应用程序和其他基础设施资源的集合。
在某个时刻:
一个环境处于日常生产状态,用户在这个环境上访问和使用软件。
另一个环境则更新并测试新版本的代码。
一旦新版本经过足够的测试和验证,可以将流量切换到新的环境,成为日常运行环境。蓝绿部署的优点是实现了近乎零停机时间的发布,但其缺点是需要额外的成本用于维护两个环境。
- 滚动发布(Rolling Deployment): 滚动发布通过逐步替换应用程序的部分实例来实现。服务器群体被分成多个各部分,每个部分有自己的组件实例。
在部署时:
首先将新版本部署到一个组成部分。
当新版本部署稳定并通过测试后,然后逐个部署到其它组成部分。
因此,在整个更新过程中,系统始终保持运行和可用。滚动发布的优点是节省成本和资源,无需额外环境。但是,待更新部分和已更新部分之间可能存在不一致性问题。
- 灰度发布(Canary Deployment): 灰度发布指的是将新版本部署到生产环境的子集,并向这个子集的用户提供新功能。
在发布前:
首先将新版本部署至某些特定服务器或者某一部分用户。灰度的对象是用户
系统将持续监控这些服务的运行,确保没有潜在缺陷或问题。
当认为新版本稳定可靠后,向其余用户全面推广新版本。灰度发布可快速发现问题,尽量避免让所有用户受到影响。不过,灰度发布需要强大的应用和流量管理能力。
网友评论