(图片来源网络,侵删)
数字化时代,随着用户对产品性能和功能要求的不断提升,应用服务升级成了企业保持竞争力的关键之一然而,传统的应用服务升级往往会给用户带来不必要的中断和不便,这种“伤筋动骨”的升级方式已经无法满足日益增长的用户需求,如何实现无感知升级,成为了许多企业亟待解决的难题以某企业数据中心与业务协同项目为例,在该项目过程中,形成了以美林网关为入口,融合多厂商业务系统的融合部署架构,其中美林微服务应用作为基础服务,支撑其他厂商系统业务当需要升级系统中的服务时,总会面临头疼的问题:▶ 影响业务正常运行:升级服务时需要暂停服务,导致用户的业务功能中断,在复杂的补丁升级场景中,停机时间甚至可能长达一整天如果新版本服务出现问题,版本回滚的过程中仍需暂停服务,且时间较长,严重影响业务的开展▶ 发布风险增高:服务升级后,用户将访问新版本的服务,由于新功能可能存在未知问题,增加了发布风险,并可能影响整个系统的稳定性和可靠性那么,如何才能保证在服务升级的时候,不影响用户的体验呢?PART 1 解决方案为解决传统升级过程中的业务痛点,美林数据技术专家团队提供了一套基于网关服务和Nacos实现的应用服务无感知升级的解决方案△方案框架01.部署两个Nginx服务节点,通过前置负载F5代理保证Nginx服务高可用部署两套基础服务节点(网关服务、系统管理、流程引擎、定时调度等),服务器A和服务器B上的基础服务完全一致02.中间件如数据库、Nacos、缓存均采用集群部署方式,基础服务节点连接同一套中间件03.下游应用服务基于基础服务来实现具体的业务,下游其他厂商产品以及客户开发的二开服务这些服务需要至少部署两个节点,这两个节点可以是不同版本的应用按照此部署方案部署后的系统满足高可用,且支持基础服务和应用服务的无感知升级1.基础服务升级基础服务升级基于前置负载均衡器流量切换实现,网关服务限制用户请求优先分发到本机应用,即请求经过服务器A上的网关服务优先转发到服务器A的系统管理、定时调度等基础服务升级前需保证服务器A、服务器B应用一致,包含服务版本、服务配置等以先升级服务器B为例,进行无感知方案升级流程演示升级流程如下:2.应用服务升级美林技术专家团队通过版本控制技术,实现了下游业务系统应用服务无感知升级在部署服务之前,为每个服务标记版本号用户来配置访问不同版本服务的条件,网关服务会根据请求信息及用户配置,来实现访问指定版本的业务应用服务以根据客户端访问IP为例,演示业务系统产品服务的升级流程:PART 2 方案价值1)提高交付效率:升级服务可以在白天进行,而且不需要停机升级,用户业务也不会中断,至少可以节省50%的升级时间2)降低升级风险:通过访问控制技术可以有效降低风险如果新版本出现问题或错误,只会影响到部分用户,而不会对整个用户群体造成影响,团队能够在问题出现时快速回滚或修复,减少潜在的负面影响3)提升系统可用性:采用此方案部署的系统,如果运行中某个服务节点宕机,可以快速切换到其他可用节点来保证业务正常,而且在升级过程中可以控制部分用户访问新版本服务,方便进行功能测试、性能测试和负载测试,可以确保新版本能够在生产环境中稳定运行,减少潜在的问题和错误小T总结“应用服务无感知升级解决方案”可应用于大规模分布式应用服务的持续性升级、企业级应用的无缝升级、在线服务的无中断更新等场景不仅可以满足用户对零中断的期望,提升用户体验,还可以保证系统的可靠性,减少升级过程中对业务的影响,从而促进企业的发展
0 评论