【运维面试】面试官: 你们公司的上线流程是怎么样的?

举报
互联网老辛 发表于 2021/06/08 22:51:56 2021/06/08
【摘要】 文章目录 前言上线方案线上更新代码代码上线流程图回答范例1. 范例一:2. 范例二: 总结 前言 上线流程几乎每家公司都会问,每家公司也各个不同,大公司的比较规范,小公司的相对来说比较简单但又繁琐。 正规流程中一次完整的上线,需要前期的测试方案,中期的数据备份及上线方案,后期的上线后测试机回滚机制。 在我们平时做的lamp+wordpre...

前言

上线流程几乎每家公司都会问,每家公司也各个不同,大公司的比较规范,小公司的相对来说比较简单但又繁琐。

正规流程中一次完整的上线,需要前期的测试方案,中期的数据备份及上线方案,后期的上线后测试机回滚机制。

在我们平时做的lamp+wordpress 其实就是一个最基础的手工上线工程,只是这个业务比较简单,代码(wordpress包)已经合格无需测试,后期运行起来即使宕机也不影响业务,所以感觉上没有公司上线的那种紧张氛围而已。

今天我们从上线规范和上线流程来聊聊上线这个问题

上线方案

一个完整的上线方案包括:

  • 上线的业务介绍 (知道你上线的是什么)
  • 数据备份方案
  • 上线时间( 时间定下来方便提前发通知,诸如你见到的网站提醒XX日进行业务升级)
  • 相关人员 (开发,运维,测试齐上阵,做好合理分工)
  • 上线失败后的回滚方案(回滚是应急方案)
  • 上线后的测试(开发人员对系统进行测试,运维人员对系统进行测试和监控)
  • 正式完成,进行邮件通知
  • 撰写测试报告,项目总结

发布规则补充:

  1. 发布时间: 一般每周二,周四其中一天的下午5点作为正式版本的上线时间
  2. 紧急发布: 时间根据实际情况而定,由运维把控品侧

环境规划:

  • 开发环境
  • 测试环境(功能测试和性能测试)
  • 预生产环境(可以用生产环境中的某一个节点来担任)
  • 生产环境 : 直接对用户提供服务的环境

线上更新代码

小公司:
线上更新代码:

  • 开发人员在个人电脑搭建LAMP进行项目测试,并且在IDC机房测试环境测试通过;
  • 代码上线之前需要备份,网站程序出了问题方便回退。 上传代码到服务器的网络临时目录,使用ln做软连接,测试。

代码上线流程图

在这里插入图片描述

回答范例

1. 范例一:
  • 我们公司所有的代码都需要开发使用git push推送到代码库中,代码库我们使用的是gitlab。
  • 代码库中代码一旦更新就会触发钩子函数,然后通知jenkins有新的代码产生,这里我们用的是webhook插件,然后配置对应的触发器。
  • jenkins收到第二步的事件通知之后,会通过gitlab插件从代码块中拉取代码。
  • jenkins把代码拉取下来java源码以后,调用maven插件对源码进行编译
  • jenkins调用ansibel部署项目到目标服务器上进行上线

盗图:(找了很久发现这个图不错)
在这里插入图片描述

2. 范例二:

我们公司是不大,还停留在手工上线层面,传手动scp上次代码,或者使用xftp上传代码,代码上传上去后再进行备份,部署,测试。这种方式需要所有的运维都参与,占用时间比较多,而且目录管理比较混乱,回滚没法及时后滚,所以后来我又给公司做的自动化部署上线,使用shell脚本来完成代码的上线。

shell脚本涉及到的点: 获取最新代码,软链接配置文件,打包,使用rsync进行文件分发,将目标及其移除集群,解压,部署,然后重启web服务,进行测试。

回滚方案:

  • 列出回滚版本
  • 目标服务器移除集群
  • 执行回滚操作
  • 重启对应服务
  • 加入集群

紧急回滚: 列出回滚版本,直接回滚到上一个版本,重启

总结

手工上线-脚本自动化上线-jenkins工具自动化上线 没有统一的方案,但手工上线得熟练,因为一切自动化都是以手工能够实现为基础的。

文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。

原文链接:zmedu.blog.csdn.net/article/details/108440699

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。