024 云原生之软件部署策略
敏捷基础架构的目的是通过代码来自动化动态完成服务器部署、更新,以及存储和网络资源的动态分配,这样运维人员可以像开发软件系统一样快速迭代,从而迅速满足各项工作负载的即时需求。
每一类服务,都可以创建如下三种类型的 Repository。
●Proxy,对指定 URL 的库提供代理服务,并进行缓存。
● Hosted,本地存储包,提供私有包的存储和发布服务。
● Group,组合 Proxy 和 Hosted 同种格式在一起,通过同一个 URL 端点对外提供服务。
在云原生架构下,为了让应用能够持续平稳地提供服务,选择一个合适的应用部署策略非常重要。目前应用部署策略主要有六种:重建部署、滚动部署、蓝绿部署、金丝雀部署、A/B 部署以及影子部署。
重建部署策略是最简单的一种部署方式。它采取的策略是先停止在线业务,然后部署新版本。这也是业界常用的一种策略,企业一般会选择业务空闲时进行升级,并事先告知客户。
滚动部署策略是指通过逐个替换应用的所有实例来缓慢发布应用的一个新版本。Kubernetes 部署中默认的更新策略是滚动部署。
蓝绿部署策略是指在不影响现有业务的情况下新增服务器进行新版本部署,待部署完成测试正常后,通过负载均衡设备将流量切换到新增服务器上,然后删除老版本服务器。这种策略适合业务比较重要且支持一次性切换的场景。
金丝雀部署策略是指在蓝绿部署基础上,不采取一次性切换流量,而是按照一定比例分发流量到新旧两个版本系统上。这是对系统新功能进行尝试,希望听到更多用户反馈,从而进一步完善系统的一种部署方式。
A/B 测试部署策略是在金丝雀部署策略的基础上,根据特定条件来分发流量。例如将来自某些 IP 或者某些用户的流量路由到新版系统上去,因带有一定的测试意味,故而起名 A/B 测试。这个部署策略在一定范围内测试新版功能的场景下比较适用。
影子部署策略是指同时部署了新旧两套系统,流量同时分发给新旧两套系统,但是新系统处理后的结果并不会返回给用户。这种方式主要是起到模拟作用,用来测试新版系统的性能、功能是否能够满足现有的流量需求。这种部署设置起来相当复杂,需要特殊要求,尤其是出口流量。
将应用程序的功能划分为单独的进程,并以单节点、多容器的设计模式部署,称为 sidecar 模式。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/7f8a415ab5c98473d6ac9d0af】。文章转载请联系作者。
评论