分布式应用系统更新及实现方式

中国新通信 / 2018年09月30日 04:02

互联网+

黄炜耀

【摘要】 本文主要对分布式应用系统的版本更新进行研究分析。首先通过传统应用系统与分布式应用系统版本控制与更新的特点进行分析比较,并从中提出分布式应用系统更新需要面对与解决的问题,最后给出具体的方案与较详细的设计思路进行分析。

【关键词】 分布式 HDFS 版本控制 版本更新

一、引言

随着移动互联网的快速发展,分布式这个概念越来越被大家所熟悉,分布式相关技术也被广泛地应用于我们的系统中。而大型的分布式应用系统通常由几十到几百甚至几千台PC服务器组成,在实际的运维过程中,我们不得不面对如此多的应用主机上程序版本控制与更新的问题。

二、版本更新实现方案

2.1分布式应用系统版本更新特点

传统集中式应用系统一般由少量几台应用主机组成,其版本更新可通过人为方式一对一地进行升级实现。而分布式应用系统一般由大量的应用主机组成,此时版本发布,如果再按传统的方式处理,不仅需要投入大量的人力,而且发布的效果也很难得到保证。因此,在版本发布过程中我们需要减少人为干预与投入的时间、分布式各应用主机能够实现版本自动升级,并且各应用主机更新结果可跟踪。

2.2方案实现

通过以上对分布式应用系统版本更新的特点进行分析,本文给出一种版本自动更新的方案,总的架构图如下:

以上方案由发布主机、HDFS、应用集群节点三大环节组成。方案中各环节负责的功能如下:

发布主机

对应用系统版本进行管理,包含版本发布、版本回退以及对各应用节点版本更新情况进行跟踪。发布过程中首先对当前集群版本进行备份,然后将版本增量发布至对应的HDFS目录,最后在HDFS版本库中对更新的文件进行版本号升级。此过程需要保证版本发布的“事务一致性”,即一个版本更新包涉及的文件发布,需要保证都成功或失败时进行发布回滚操作,以减少对业务系统的影响。

HDFS

存放应用系统文件对应的版本号信息、应用系统文件备份库、应用系统文件在用库。其中备份库可用于版本回退,在用库用于节点实时更新的数据源。为了保证每次更新文件版本号的唯一性,版本号值等于文件内容MD5算法的结果值。这里选用HDFS做为版本更新的中转环节,能保证数据的安全与高可用性。

应用集群节点

负责本节点版本更新以及更新结果的反馈。应用节点保留本地版本库以及当前最新的版本文件,其与HDFS上保持一致。每个应用节点上都部署有更新线程,定时对远程版本库及本地版本库进行比对分析,当存在不一致的文件时,首先一次性将不一致的文件下载至本地临时目录,待所有文件都下载完毕后,再移至正式目录进行覆盖,最后修改本地版本库信息。在更新本地文件时,可根据系统自身的需要增加额外的功能如:java类的重载、缓存数据的更新等。

三、结束语

本文首先对分布式应用系统版本更新的特点进行分析,并与传统应用系统的版本升级进行对比,并从中得出分布式应用系统版本更新过程中需要面对与解决的问题。紧接着对遇到的问题制定出解决方案,并做了详细的设计分析。本方案实现逻辑简单并自主实现,其相对于其它的开源软件如:puppet等,更容易撑控。借助以上分布式应用系统版本更新的设计思路,不同的应用系统可根据需要在相应的环节增加功能,最终制定出符合自身系统需要的版本更新流程,可大大减少人工投入与降低人为发布的风险。

参 考 文 献

[1] Tom White.《Hadoop权威指南》

[2] Hadoop http://hadoop.apache.org/

[3] Git版本更新控制 http://www.open-open.com/lib/view/open1328069609436.html

[4] George Coulouris等.《分布式系统概念与设计》

[5]Tanenbaum.《分布式系统原理与范型(第2版)》

1.环球科技网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.环球科技网的原创文章,请转载时务必注明文章作者和"来源:环球科技网",不尊重原创的行为环球科技网或将追究责任;3.作者投稿可能会经环球科技网编辑修改或补充。