单一构建系统发布与部署的业界现状研究
【引言】
大家好,在本文中我们会讨论并探索一下在当前业界比较流行的单一构建(Single Build)系统发布与部署的现状。希望本文可以对正在进行相关系统研究的同事提供一些参考。
【何为单一构建系统发布】
单一构建(Single Build)是对于一套自成体系的系统的描述,旨在强调系统设计的整体性和统一性。所以,单一构建(Single Build)系统发布也即是一套系统的发布。
【何为系统发布】
我们先来了解一下何为系统发布。我们说系统发布是一个过程的描述,它是指对于整套系统提供的一个或者多个修改,在经过构建,测试以及部署这一系列操作过程的集合。
简单来讲,一个或者多个修改的产出即为系统发布。
【常见的例子】
微软IE浏览器版本10到微软IE浏览器版本11的升级过程即为一个系统发布。
建筑设计公司向客户提供房屋建造蓝图设计。该设计会告诉客户将来的房屋会是什么样子。该设计即为设计公司在房屋设计阶段的系统发布。
电影在制作完成以后的公开放映也是一个系统发布。
【系统发布包含的内容】
整个系统发布涉及到了系统集成,系统功能和系统处理的打包,编译构建,测试和部署到生产环境的一系列操作。并要确保发布的系统能够契合当初的需求设计。
【系统发布管理对客户带来哪些好处】
一个完善的系统发布管理过程,会:
1. 给客户以充足的信心接受系统的修改, 并能制定出最优化的成本计划,把可能的风险降到最低。
2. 为客户商业目标的实现保驾护航。
3. 确保服役系统的一致性。
4. 可以从容应对来自各方的审计要求。
【系统发布单元】
这一小结说一下发布单元。一个典型的发布单元要包含足够的组件以保证其可以执行一个单一的有效功能。通常来讲,发布单元可以随同整套系统一起发布。
【系统发布单元的例子】
在Windows操作系统上发布的一个补丁(一个发布单元)。
在Windows操作系统上发布的一个服务包(一个发布单元,可包含多个补丁)。
去餐馆点餐时点了两份扬州炒饭(一个发布单元),又加了一份鱼香肉丝(一个发布单元),又加了两份米饭(一个发布单元)。
从以上的例子中可以看出,一个发布单元可以包含一个或者多个发布单元。
【系统发布中常见方式】
全量发布或者阶段性发布
【全量发布】
这种发布是指一次性的把系统配置给所有用户。常见的例子如新电影的发布,Windows新操作系统的发布,安卓新系统的发布, iOS新系统的发布等等。
【阶段性发布】
这个发布是指针对性的发布:
a. 可以针对特定客户群进行发布。
b. 可以针对特定的地理区域或者行政区域进行发布。
常见的例子如某一款汽车的发布,开始时先在原产地进行发布,随后推广到一些国家,进一步再推广到全球市场。
推送发布或者客户自己拉取发布
【推送发布】
这种发布是指把系统发布推送到所有需要推送的目标上。
比如,把Windows系统的补丁发送到一个公司内所有的电脑上。
【拉取发布】
这种发布是指把系统发布放到一套中央系统上,客户可以选择适当的时机,通过自己拉取的方式部署。
比如,手机系统的升级包出来以后,用户可以根据自己的时间来安排拉取升级。
自动发布或者手工发布
【自动发布】
这种方式是通过自动化的机制对发布进行部署。这种方式可以确保系统更新的一致性,可以最大限度的避免部署出错。
【手工发布】
这种方式是通过手工的方式部署系统发布。需要部署者具有很强的业务素质,并且能够时刻关注系统的状态。这种方式效率不高而且很容易出错,一般在生产阶段不推荐使用。
【系统发布包】
一个系统发布包可以包含一个单一的发布单元或者一个系列的发布单元。
一个典型的例子是微软的Office套件。套件中包含多个发布单元: Word, Access, PowerPoint, Excel, Outlook。
【Cygwin发布部署的例子】
现在我们看一下Cygwin的发布和部署例子。上图中显示本次安装版本为2.901(64 bit)。这个版本指明了当前的发布是一个单一构建系统,版本号是2.901 (64bit) 。
此处可以选择给本机所有用户使用还是只允许当前用户使用。这是对用户群体进行选择的一个实例。
这一步演示了安装包的选择。
上图中演示了当版本号不匹配时的报错示例,这里该安装程序提示了用户当前的版本冲突和操作建议。
(图5)
(图6)
上图演示了子应用程序包的安装和删除等操作的情形。
(图7)
上图演示了在选中子安装包以及对应操作以后,安装程序会给出操作建议。比如,基础包不应该被卸载。
(图8)
本图演示了经过上一步的提示,按照安装程序给出的建议操作以后的运行效果,也就是放弃卸载基础包。
(图9)
上图演示了操作完成的情况。
【小结】
本文对于单一构建系统的发布和部署在当前业界的现状做了一个简单的描述和分析。它的核心理念旨在提供一种简单,可靠而又行之有效的系统发布和部署管理方式。具体到每个业务产品系统发布和部署中,我们需要以此理念为指导,并结合实际的业务场景规划出己方系统的发布和部署方案来。
希望大家多多评论,留言,批评和指正。
- 点赞
- 收藏
- 关注作者
评论(0)