合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
G行移动办公平台不仅承接了即时通讯的功能,更是各个办公类应用的服务入口,是全行人员实时沟通交流和日常移动办公的工作平台,因此对该平台的安全运营要求既要做到7*24小时无间断服务,又要做到快速响应业务需求敏捷发布投产。为此,移动办公平台基于容器化架构,通过采用蓝绿部署,从而做到了无中断、用户无感的敏捷发布和长时间安全稳定运行。本文重点以移动办公平台系统为例介绍G行蓝绿部署落地实践。
蓝绿部署是一种通过运行相同的环境来减少风险和故障时间的部署技术。这些环境被称为蓝色环境和绿色环境。其中只有一个环境是活动环境,该环境服务于所有生产流量。
如图1所示,在蓝绿部署中,一共有两套系统:一套是正在给生产提供服务的系统,标记为“绿色环境”;另一套是准备发布的系统,标记为“蓝色环境”。这两套系统,只是系统版本和对外服务情况不同,正在对外提供服务的旧系统是绿色系统,新部署的系统是蓝色系统。
图1 蓝绿部署示意图
蓝色环境不对外提供服务,用来做什么?
蓝绿部署的目的是减少发布的中断时间,发布出现问题后可以快速撤回发布,两套环境没有耦合的时候才能百分百保证不干扰。
蓝绿部署技术能够有效的提升用户体验,保障业务连续性,对安全运营有较大的意义,以下将从部署优点和选型要求两个方面介绍移动办公平台(简称GDJ)选择蓝绿部署的原因。
蓝绿部署有以下几个优点,这些优点可以充分应对当前安全运营面临的挑战,无缝升级和随时部署对用户无感发布,减少版本部署带来的风险。切换方便和瞬间回滚、缩短回退时长,迅速从故障场景中恢复,最大限度保障系统高可用性。
为了支持蓝绿部署,系统应当满足如下的架构设计要求:
正是由于蓝绿部署自身的诸多优点,以及移动办公平台本身具有应用无状态、基于容器化的微服务横向高可扩展性架构、通过反向代理服务器进行负载均衡转发请求的特点,决定了移动办公平台适用蓝绿部署的方式。
结合G行移动办公平台,从应用架构改造、应用部署原则、蓝绿环境切换策略、应用验证几个方面介绍蓝绿部署落地实践过程。
移动办公平台原有物理架构如图2所示,反向代理服务器将来自互联网区域的https请求转发至webserver,由其将请求交由后台服进行简单处理并和数据库服务器等完成一系列的交互。在原有架构中业务处理层中的后台服务只有一套容器环境,数据层数据库相关机器为虚拟机。改造的核心在于业务处理层复制新增一套容器环境,两套完全不耦合的容器环境共用一套数据库服务器,避免两套系统之间的业务数据不一致,以及如何同步等带来的复杂性问题。
图2 旧有架构
在蓝绿环境改造的过程中,接入层和业务处理层原有的反向代理服务器以及webserver等物理机不发生变动,业务处理层横向扩展一套后台服务独立的容器环境作为蓝色环境,与原有的生产环境构成蓝绿环境供蓝绿部署以及生产使用,同时需要开通网络访问关系保证网络可达。为了应对两套环境可能给数据库内存等带来的压力,数据层数据库相关的机器也需要从虚拟机迁移到物理机器上。移动办公平台改造后的架构如图3所示,来自于webserver的流量具备到达其中任意一套环境的条件,并在两套环境中可以随时进行切换。
图3 现有架构
在前文蓝绿部署简介中,应用部署只需在蓝环境中进行,蓝绿环境相差一个版本,但是基于金融行业的行业特殊性,针对移动办公平台蓝绿部署我们制定了以下的原则。
移动办公平台的蓝绿环境切换支持多种方式,主要有用户切换和流量切换两种方式,用户切换对用户归属环境进行切换,不同环境下具有不同的用户。流量切换将请求进行切换,实现对不同的请求转发至指定环境。
用户切换的动作是在移动办公平台系统的管理控制台中通过将对应的用户和机构添加至相应的环境来完成操作,其本质是修改数据库当中蓝绿环境下的用户信息表决定环境下哪些用户。这样当蓝环境部署完毕之后可以将部分或者全部用户添加至此环境,完成用户的切换动作。
流量切换工作,是通过修改反向代理服务器的配置文件完成的,修改配置文件后,需要重新加载新的配置文件以生效新地址后进行流量切换。配置文件通过reload的方式进行,也可以选择restart的方式,但是restart的方式会重启服务。这个重启会造成服务一瞬间的中断,造成原有请求无法正常返回。通过reload的方式加载新的配置文件,反向代理服务是不会中断的,新的请求会导向蓝环境,而原有已经进入绿环境的请求,已经建立到绿环境后端服务器的通信信道不会中断,直到原有请求处理完成返回结束。在流量切换的瞬间是不会对原有请求造成影响。通过修改配置以及reload生效后,反向代理将请求默认转发到蓝环境完成请求流量的切换动作。
4、应用验证
应用部署完毕后,对蓝绿环境进行切换,蓝环境将承担生产所有流量,承载真实业务。此时,必须高度关注应用的验证情况,如果发现验证出问题,或者运行指标有下降,则需要及时进行应急处理,应用的主要验证方式有两种,一种是交易量验证,一种是日志验证。
移动办公平台架构改造新增蓝环境之后,同时需要完善相应的生产监控策略。依托于G行BPC监控系统,改造之后在BPC交易中新增蓝环境交易链路监控,健全对全链路交易的监控策略,补充交易量、成功率,响应率,响应时间等监控指标。在蓝绿环境切换后可以通过对交易量的监控验证生产流量切换是否成功。如图4所示,切换成功后,可以看到一边环境的交易量已下降为零。
图4 BPC交易量验证
通过对反向代理服务器日志中的请求标签进行捕捉,在切换后相应标签的关键字随着时间的推移将越来越多,请求已全部转发至指定环境。
图5 日志验证
蓝绿部署的使用为移动办公平台应用版本的发布带来了诸多收益,其主要收益有以下几点:一是变更开始时间不再受限,由之前的凌晨24点业务低峰期前移至下午18点,即使是在紧急情况下办公业务高峰性也可以进行变更操作。二是系统回退时间大幅缩短,未使用蓝绿部署之前,回退需要重新在容器云部署旧版本并进行启停操作,单AZ回退花费时间15分钟,当前版本回退只需进行蓝绿环境的切换,切换时长只需3分钟左右,应急回退能力得到显著提升。三是版本无感发布,不会对用户的正常使用产生影响,提升用户使用体验。
蓝绿部署是银行业应用部署中的一种重要策略,可以确保应用程序的高可用性、高性能和高可靠性,从而帮助银行实现业务运营的稳定和可持续发展。在银行的应用现状中,许多银行已经采用了蓝绿部署策略来管理其核心应用程序的部署和更新。这些应用程序包括交易系统、支付系统等。
在互联网厂商当中,蓝绿部署已经成为了许多云原生应用开发和部署的标准实践之一。大多数云服务提供商(如AWS、Azure、Google Cloud等)都提供了蓝绿部署的相关服务和工具,如AWS CodeDeploy、Azure DevOps等。此外,也有很多第三方开源工具和框架,如Spinnaker、Jenkins、Kubernetes等,都支持蓝绿部署的实现。
本文从蓝绿部署的概念、特点以及应用部署三个方面介绍了蓝绿部署在G行移动办公平台的应用实践。蓝绿部署为移动办公平台新版本的发布带来了广泛的便利性,新版本上线时间由原来的深夜大幅前移至业务低峰时段。未来随着G行IT架构转型的持续深入,越来越多的系统将部署在全栈云平台。依托于全栈云容器平台以及蓝绿部署等一系列持续发布的新技术,应用系统新版本的无中断随时上线将得到深入的推广,为用户的使用带来更好的体验。
TOP