Spinnaker实战:云原生多云环境的持续部署方案
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 流量组织形式

当应用部署在多个实例上时,通常需要考虑实例在这些流量中承担什么角色。

例如,采用多可用区冗余部署时,将用户的请求只分流至某个特定的可用区;当某个可用区出现故障时,则自动将流量切换到其他已经冗余的备用可用区,以便进行快速恢复。

如果应用具备跨区域部署的能力,那么可以将这些区域同时对外提供服务,共同承担用户请求和计算任务。

结合以上特点,我们将流量的组织形式分为两种,一种是启用/不启用,另一种是启用/启用。

2.3.1 启用/不启用

在启用/不启用的流量组织模型中,只有一个区域对外提供服务,其他区域作为冗余不承担请求流量的任务,这与“蓝绿发布”有几分相似。

冗余区域的作用是当区域出现不可用时提供可用方案,当对外提供服务的地域出现故障后,可以自动将流量快速切换到冗余的地域;另一个作用是为发布异常或程序异常提供冗余,以便在不做回滚的情况下快速切换到线上的稳定版本。

对于数据持久性来说,不启用的区域可以通过复制来保持数据的最终一致性,而不对实时性做强制要求。

2.3.2 启用/启用

启用/启用的设置是同时拥有多个地域,这些地域同时对外提供服务,并能够通过跨地域的复制提供一致性及共享存储数据服务。

支持启用/启用的应用程序需要实现跨地域的连接、流量负载均衡及数据同步,尤其是对有状态的应用程序来说,还需要使用特定的会话保持技术。同时,应该尽量避免跨机房调用,因为跨地域的调用存在网络延迟方面的问题。