Go 服务开发高手课
徐逸
头部大厂资深 Go 技术专家、前腾讯资深工程师
1273 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 27 讲/共 28 讲
开篇词 (1讲)
Go 服务开发高手课
15
15
1.0x
00:00/00:00
登录|注册

26|灰度发布:新功能上线如何有效控风险?

你好,我是徐逸。
通过前面课程的学习,相信你已经从编码和架构层面,熟练掌握了提升服务稳定性的多种方法。然而,即便我们再小心谨慎,在快速迭代的开发环境中,也难以完全避免忙中出错的情况。因此,为了防止有缺陷的代码或配置直接上线,对大量用户造成不良影响,我们还需要一些能够在小范围内发布新版本,并且能快速回滚的部署策略。
今天这节课,我们就来聊一聊业界常见的几种部署策略。

部署策略

当服务新版本准备上线时,为了确保新旧版本能够顺利切换,业界有下面几种常用的部署方式。
首先是停机部署。在这种部署方式下,在发布新版本时,我们需要先停止服务的运行,待新版本的代码和配置准备好之后,再重新启动服务。
停机部署过程相对简单,不需要复杂的流量切换和分批更新过程。但是系统在部署期间完全不可用,而且一旦出现问题,就需要重新停机部署旧版本,不能快速回滚。因此,停机部署常见于对系统可用性要求不高的系统,在业务低峰期进行版本升级。比如一些政府网站、小型企业或内部系统的更新,在发布版本前会提前发出停机部署公告,类似下图。
图1 停机维护公告
接下来,我们来看下蓝绿部署。在实施蓝绿部署时,除了正在运行稳定版本代码的线上蓝环境外,我们还需要搭建一套全新的绿环境,并且将绿环境中的代码更新为即将发布的新版本。当在绿环境中的各项测试与验证都确认无误后,再通过流量调度,逐步将线上流量从蓝环境切换到绿环境。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 常见的部署策略包括停机部署、蓝绿部署、滚动部署和灰度部署,每种策略都有其适用的场景和优势。 2. 蓝绿部署适合对系统可用性要求高的场景,能实现零停机时间和快速回滚,但需要维护两套完整的运行环境,资源成本较高。 3. 滚动部署适合大型互联网公司,无需额外搭建环境资源,但部署和回滚操作耗时较长。 4. 灰度部署能够先把新版本部署到特定的服务器上,通过监控降低发布风险,适合于大规模功能改造时的发布。 5. 在灰度部署的实践中,可以根据用户的特定特征进行灰度操作,包括基于用户ID、用户角色、地理位置、用户行为和设备类型的灰度方案。 6. 业务维度灰度操作能够有效控制新功能的推广节奏,确保平稳过渡,适用于不同的功能测试或市场推广场景。 7. 灰度部署和滚动部署相结合的发布策略能够先将新版本部署到灰度机器上,确认没有问题后再采用滚动部署的方式对其他机器进行更新,最终实现全量发布。 8. 基于用户ID的灰度方案能够有效控制新功能的推广节奏,适用于大规模功能改造时的发布。 9. 基于用户角色、地理位置、用户行为和设备类型的灰度方案能够根据用户特征进行灰度测试,提前发现问题,优化功能。 10. 选择合适的部署策略能够有效控制发布风险,保障业务的稳定性。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 服务开发高手课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)