论文部分内容阅读
摘要:该文对ERP系统的灰度发布方案进行阐述,由原传统方式的一次性发布、不允许试错的升级模式逐渐转为灰度发布,并且做到7*24小时不中断服务,提供用户更好的使用体验。
关键词:灰度发布;ERP系统
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0138-02
系统的灰度发布就是指一个全新的改版系统在还没有正式发布之前先进行小范围用户的发布,分析总结问题以及需要改进的地方,加以完善后再全面进行用户推广的一种发布形式。灰度发布系统的作用在于,可以根据自己的配置,将用户的流量导到新上线的系统上,快速验证新功能的上线效果,而一旦出问题,也可以马上的恢复。
1 概述
1.1 系統现状
目前ERP系统采用传统的发布方式,每次发布新功能时,需要停止服务才能发布新版本,发布成功后再收集新版本的应用情况,在下次发布中进行优化。此流程使得用户体验差,不适合快速变化的业务需求。
1.2 建设目标
参考互联网程序7*24不间断服务,提供用户更好的体验,新旧版本切割无缝衔接。
1) 将ERP系统实行灰度发布,做到7*24小时不中断,无缝升级,缩小新功能上线或重大流程改造升级所影响的用户范围,全面提升用户感知。
2) 通过灰度发布,尝试新功能点,及时获取用户使用的反馈信息,完善产品功能,提升产品质量。
3) 实现迭代开发,快速更替版本。让系统迭代升级遵循“IT人员内部测试->外部小范围用户测试>外部大范围用户测试->全网用户正式发布”的发布过程,涉及的用户数也是逐步放量的过程,让新功能发布实现平滑过渡。
2 总体说明
2.1 传统软件发布
传统软件开发流程通过需求分析后,交由研发人员进行开发,开发完成后由测试人员进行内部测试,测试通过后合并版本号。测试无误则在正式环境发布版本。发布过程需要停止服务,用户感知下降。如果用户发布过程中存在测试阶段未能发现的问题,并且短期内不能问题修复,对用户感知带来较大影响,并只能进行版本回退。
2.2 灰度发布
应用系统的灰度发布指的是,新系统发布时不直接废止旧的系统,而是有一段新旧系统的共存时间。通过逐渐增加新系统承担的用户负载权重,直到完全替代旧的系统。这样的好处在于避免因为新系统存在功能异常或者设计上的不合理导致的服务完全中断,通过渐进式观测新系统替代旧系统的效果,达到平缓升级的目的,即为:在一段时间内,通过流量源头的开关控制,动态调整新旧系统承担的负载。一旦出现问题那么可以很快地控制影响面而不中断服务。
3 ERP系统灰度发布方案
3.1 ERP系统灰度发布概述:
ERP灰度发布系统的大致架构,如下图所示:
主要有以下几个部分:
1) 接入层,接入客户端请求,根据下发的分发策略配置将符合条件的用户请求转发到新旧系统上。
2) 配置管理后台,以配置不同的分发规则策略给接入层。
3) 新旧两套生产服务器,分别部署的新版本程序和旧版本程序,分别处理客户端请求。
3.2 ERP系统灰度发布具体方案
3.2.1 灰度发布的集群
准备好要发布的2套生产环境,包括一套灰度发布环境、一套正式环境,根据发布软件的需要,还可以设置多套隔离的线上发布环境。不同的服务集群可以针对不同分组的用户,并且这些集群可以分方便的横向扩展,在灰度发布的过程中,可以动态增加访问的用户数,以便达到更全面的测试。
3.2.2 接入层
接入层(中转代理服务器)针对不同用户转发到不同的生产集群环境中。原始负载均衡主要是为了平衡各应用服务器的压力,将访问的用户通过预先制定的规则进行分流。而为了满足灰度发布,在原始负载均衡上必须新建一套分流规则,需要将用户群再次进行区分,即在原来的负载均衡的策略上增加一层灰度发布的分流规则。
接入层采用nginx,可以基于cookie的方式进行分流。用户分发规则配在数据库中,因此调整灰度的范围,只需要操作数据库即可,无需重启服务。nginx匹配特定Cookie做转发:在登陆时,如果用户在名单中则给用户set特定标识的Cookie;退出或Session过期后Cookie失效。
3.2.3 灰度发布规则制定
筛选用户:根据具体的产品特点,选好要小范围发布的用户特点以及用户数量,可以是几十、几百或上千人,可以是自己的VIP用户,也可以是普通的随机用户等。ERP系统是按照用户的区域归属、用户级别(VIP用户、普通用户)等维度划分确定用户范围,按照不同的用户特性,分发给不同的生产集群环境,内部体验用户分发给灰度发布集群环境,使用新版本;其他用户仍分发给生产集群环境;或手动导入:管理人员可以导入指定用户群,将其路由至指定的生产发布环境。
通过以上用户群生成分发规则,并生成具体的分发的用户明细,将此分发用户的明细同步到数据库中,完成灰度发布规则的制定。
3.2.4 用户分流
通过接入层(中转代理服务器)将用户请求转发到后端服务器,在转发过程中通过管理员制定的分发规则将用户分发到不同的生产服务器。中转代理服务器根据配置查找后台对应的数据源。当访问者访问登录系统或访问新增功能菜单时,根据用户分流控制层配置的分流规则判断用户身份是否为“内测用户或体验者”,如果是,跳转至新系统(灰度环境服务器);如果不是,跳转至旧系统应用环境。
实现的用户分流效果为:对本次新版本(需要灰度发布的)功能先开放给内部人员试用,先进行内部测试,如果测试不通过则做版本修复,修复完成后再继续测试。内部测试通过后,将功能开放给指定的试点用户继续试运营,试运营期间,收集用户反馈,对功能进行优化、修复。试点完成后,将新功能开放给全网用户使用。
通过多用户、多群体的用户测试,收集测试用户的反馈信息,进行及时的版本问题更新,加快版本的迭代开发,提高版本质量,使用户认可度高、客户感知好。
3.2.5 相关的程序调整
ERP 系统特点为企业办公管理系统,涉及业务流程审批。在灰度发布过程中,需考虑端到端流程运营效果和在途单处理,总体策略是以头带尾,将涉及该流程的所有用户切换到灰度环境,避免流程单据在新旧系统中不兼容出现问题。具体情况有:
若涉及流程及表单调整,用户在灰度环境发起流程,审批环节涉及的用户均切换为灰度环境;升级前用户在老系统发起的流程在途单,将该流程的在途单涉及的所有用户均切换到灰度环境。
若涉及新增流程,用户在灰度环境发起的流程,审批环节涉及的用户均切换为灰度环境。
4 结束语
一个产品,如果需要快速迭代开发上线,又要保证刚上线系统的运营质量,能够在出现问题时很快地控制影响面,就需要设计一套灰度发布系统。ERP系统灰度发布的使用,能够尝试新功能,允许大胆创新、试错,会提高用户感知。同时随着通信行业向互联网企业转型发展的迫切需要,如何进一步优化和改善IT系统,以快速适应业务需求和变化,还需要不断深入探索并持续提高客户感知。
关键词:灰度发布;ERP系统
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0138-02
系统的灰度发布就是指一个全新的改版系统在还没有正式发布之前先进行小范围用户的发布,分析总结问题以及需要改进的地方,加以完善后再全面进行用户推广的一种发布形式。灰度发布系统的作用在于,可以根据自己的配置,将用户的流量导到新上线的系统上,快速验证新功能的上线效果,而一旦出问题,也可以马上的恢复。
1 概述
1.1 系統现状
目前ERP系统采用传统的发布方式,每次发布新功能时,需要停止服务才能发布新版本,发布成功后再收集新版本的应用情况,在下次发布中进行优化。此流程使得用户体验差,不适合快速变化的业务需求。
1.2 建设目标
参考互联网程序7*24不间断服务,提供用户更好的体验,新旧版本切割无缝衔接。
1) 将ERP系统实行灰度发布,做到7*24小时不中断,无缝升级,缩小新功能上线或重大流程改造升级所影响的用户范围,全面提升用户感知。
2) 通过灰度发布,尝试新功能点,及时获取用户使用的反馈信息,完善产品功能,提升产品质量。
3) 实现迭代开发,快速更替版本。让系统迭代升级遵循“IT人员内部测试->外部小范围用户测试>外部大范围用户测试->全网用户正式发布”的发布过程,涉及的用户数也是逐步放量的过程,让新功能发布实现平滑过渡。
2 总体说明
2.1 传统软件发布
传统软件开发流程通过需求分析后,交由研发人员进行开发,开发完成后由测试人员进行内部测试,测试通过后合并版本号。测试无误则在正式环境发布版本。发布过程需要停止服务,用户感知下降。如果用户发布过程中存在测试阶段未能发现的问题,并且短期内不能问题修复,对用户感知带来较大影响,并只能进行版本回退。
2.2 灰度发布
应用系统的灰度发布指的是,新系统发布时不直接废止旧的系统,而是有一段新旧系统的共存时间。通过逐渐增加新系统承担的用户负载权重,直到完全替代旧的系统。这样的好处在于避免因为新系统存在功能异常或者设计上的不合理导致的服务完全中断,通过渐进式观测新系统替代旧系统的效果,达到平缓升级的目的,即为:在一段时间内,通过流量源头的开关控制,动态调整新旧系统承担的负载。一旦出现问题那么可以很快地控制影响面而不中断服务。
3 ERP系统灰度发布方案
3.1 ERP系统灰度发布概述:
ERP灰度发布系统的大致架构,如下图所示:
主要有以下几个部分:
1) 接入层,接入客户端请求,根据下发的分发策略配置将符合条件的用户请求转发到新旧系统上。
2) 配置管理后台,以配置不同的分发规则策略给接入层。
3) 新旧两套生产服务器,分别部署的新版本程序和旧版本程序,分别处理客户端请求。
3.2 ERP系统灰度发布具体方案
3.2.1 灰度发布的集群
准备好要发布的2套生产环境,包括一套灰度发布环境、一套正式环境,根据发布软件的需要,还可以设置多套隔离的线上发布环境。不同的服务集群可以针对不同分组的用户,并且这些集群可以分方便的横向扩展,在灰度发布的过程中,可以动态增加访问的用户数,以便达到更全面的测试。
3.2.2 接入层
接入层(中转代理服务器)针对不同用户转发到不同的生产集群环境中。原始负载均衡主要是为了平衡各应用服务器的压力,将访问的用户通过预先制定的规则进行分流。而为了满足灰度发布,在原始负载均衡上必须新建一套分流规则,需要将用户群再次进行区分,即在原来的负载均衡的策略上增加一层灰度发布的分流规则。
接入层采用nginx,可以基于cookie的方式进行分流。用户分发规则配在数据库中,因此调整灰度的范围,只需要操作数据库即可,无需重启服务。nginx匹配特定Cookie做转发:在登陆时,如果用户在名单中则给用户set特定标识的Cookie;退出或Session过期后Cookie失效。
3.2.3 灰度发布规则制定
筛选用户:根据具体的产品特点,选好要小范围发布的用户特点以及用户数量,可以是几十、几百或上千人,可以是自己的VIP用户,也可以是普通的随机用户等。ERP系统是按照用户的区域归属、用户级别(VIP用户、普通用户)等维度划分确定用户范围,按照不同的用户特性,分发给不同的生产集群环境,内部体验用户分发给灰度发布集群环境,使用新版本;其他用户仍分发给生产集群环境;或手动导入:管理人员可以导入指定用户群,将其路由至指定的生产发布环境。
通过以上用户群生成分发规则,并生成具体的分发的用户明细,将此分发用户的明细同步到数据库中,完成灰度发布规则的制定。
3.2.4 用户分流
通过接入层(中转代理服务器)将用户请求转发到后端服务器,在转发过程中通过管理员制定的分发规则将用户分发到不同的生产服务器。中转代理服务器根据配置查找后台对应的数据源。当访问者访问登录系统或访问新增功能菜单时,根据用户分流控制层配置的分流规则判断用户身份是否为“内测用户或体验者”,如果是,跳转至新系统(灰度环境服务器);如果不是,跳转至旧系统应用环境。
实现的用户分流效果为:对本次新版本(需要灰度发布的)功能先开放给内部人员试用,先进行内部测试,如果测试不通过则做版本修复,修复完成后再继续测试。内部测试通过后,将功能开放给指定的试点用户继续试运营,试运营期间,收集用户反馈,对功能进行优化、修复。试点完成后,将新功能开放给全网用户使用。
通过多用户、多群体的用户测试,收集测试用户的反馈信息,进行及时的版本问题更新,加快版本的迭代开发,提高版本质量,使用户认可度高、客户感知好。
3.2.5 相关的程序调整
ERP 系统特点为企业办公管理系统,涉及业务流程审批。在灰度发布过程中,需考虑端到端流程运营效果和在途单处理,总体策略是以头带尾,将涉及该流程的所有用户切换到灰度环境,避免流程单据在新旧系统中不兼容出现问题。具体情况有:
若涉及流程及表单调整,用户在灰度环境发起流程,审批环节涉及的用户均切换为灰度环境;升级前用户在老系统发起的流程在途单,将该流程的在途单涉及的所有用户均切换到灰度环境。
若涉及新增流程,用户在灰度环境发起的流程,审批环节涉及的用户均切换为灰度环境。
4 结束语
一个产品,如果需要快速迭代开发上线,又要保证刚上线系统的运营质量,能够在出现问题时很快地控制影响面,就需要设计一套灰度发布系统。ERP系统灰度发布的使用,能够尝试新功能,允许大胆创新、试错,会提高用户感知。同时随着通信行业向互联网企业转型发展的迫切需要,如何进一步优化和改善IT系统,以快速适应业务需求和变化,还需要不断深入探索并持续提高客户感知。