程序部署一般是运维人员的事,但是伴随着敏捷的流行、资源服务化,以及公司成本的考虑,越来越来的开发人员进入这一领域。对于开发人员来说,可以了解更多的东西,也未免不是一件好事。这篇文章属于开发人员日常部署程序如何避免问题的总结,没有介绍任何部署工具或者持续集成的框架。程序可能属于一个复杂的分布式系统,或者是一个基于服务的架构,也可能仅仅是一个孤立的程序,这篇文章同样具有参考意义。
书归正传,程序部署时应该有一个流程或规范类的东西,避免各自为战,出现协作或交接方面的问题。在这里我们要求开发人员必需提供部署说明和部署文件:部署说明包含程序部署的步骤及需要注意的事项,部署文件包括程序包及相关脚本。有了这两个一般就可以开始部署了。
在准备部署说明和部署文件之前,
考虑几个问题
1、程序部署在哪台服务器?
一般情况下,同一业务系统或同类程序应该部署在同一服务器或同一组服务器。
比如违章提醒处理和限行提醒处理是同一业务系统(车务)中的程序。
再比如油价查询和天气查询是同一类(基础服务)中的程序。
2、如果依赖数据库,所需的数据库是否已经创建?
首先要确定数据库服务器是哪个,这个的选择和选择程序部署在哪台服务器是一样的。
然后确定数据库是否已经创建,数据库的账号和密码是什么。
需要考虑转移数据或初始化数据的情况。
3、如果依赖其它程序,其它程序是否已经部署?
4、程序依赖的其它程序和数据库端口是否已经开放?
5、此程序是否需要开放端口给其它程序?
如果程序还需要对外网开放,则需要注意日志文件夹不允许被外网访问,需要进行特殊的设置。
6、程序部署是否会中断服务?如果有中断,是否对其它程序造成影响?
基本原则是:不能丢失数据,用户可以通过重试完成中断的业务。
应该将影响降到最低,可以采取灰度发布策略,或者新旧版本双向同步策略。
7、程序部署如果有多个步骤,是否存在先后顺序?
8、如何验证部署后的程序处理正常?
可以检查数据处理结果是否正常,程序运行日志是否正常,端口是否可以访问,处理速度是否满足性能要求等。
9、程序是否可以回滚?
如果程序升级后发现比较严重的问题,则可能需要回滚操作。这就需要在升级前对程序文件和数据进行必要的备份。
10、程序部署后有哪些后续事项?
是否需要通知相关人员(领导、运营人员、服务人员等),是否需要持续监测。程序出现异常时如何处理。
部署说明
部署说明应该在充分考虑上述几个问题的基础上进行编写。
部署说明应该包含以下几项:
1、部署前置事项:比如端口开放申请、服务器资源申请、获取服务器配置、升级通告等。
2、部署步骤:详细的可执行步骤,按照编号顺序列出。所有部署步骤中都应包含程序备份步骤,如果会对数据产生影响还应备份数据。
3、部署后置事项:比如监测运行情况,通知相关人员。
具体文档形式不做限制。
部署文件
部署文件应在部署前打包。
1、对数据库进行操作的应准备好SQL脚本。
2、需要部署的程序文件应该按照程序的目录结构准备。
3、升级需要的临时工具应准备好。
4、程序在服务器运行需要的配置应提前编写。
执行部署
按照部署说明和部署文件执行部署。
如果程序不对公网开放,可在程序的根目录创建bak文件夹,然后按照日期和时间保存备份程序。
如果程序对公网开放,则应该在程序上级目录(公网不可访问)创建bak文件夹,然后创建程序文件夹,然后按照日期和时间保存备份程序。
部署过程中(一般1个小时内)的反复程序文件发布和操作不需要再编写部署说明,一般不应该出现这种问题,出现此类情况说明前期设计和开发有问题遗漏。
以上对开发人员进行程序部署时的一般问题进行了总结并提供了一些参考规范。因本人接触面有限,及各自业务及管理情况复杂,可能有所遗漏及不适应本地化的操作,还望多提宝贵意见。
发表评论
相关文章
国内AI资源汇总,AI聊天、AI绘画、AI写作、AI视频、AI设计、AI编程、AI音乐等,国内顺畅访问,无需科学上网。
扫码或点击进入:萤火AI大全
文章分类
最新评论