文章目录

  • 前言
  • 上线方案
  • 线上更新代码
  • 代码上线流程图
  • 回答范例
    • 1. 范例一:
    • 2. 范例二:
  • 总结

前言

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

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

在我们平时做的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工具自动化上线 没有统一的方案,但手工上线得熟练,因为一切自动化都是以手工能够实现为基础的。

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

  1. 总结一下:运维工程师面试的经历及面试相关问题

    2018年1月4号面试     笔者其实没有想到去面试,只是在智联上更新了一下简历,就陆陆续续接到很多猎头的邮件和电话,实在是没准备好要去面试,就推掉了几家公司的面试了.正因为笔者也很久没有面试了,笔 ...

  2. python运维工程师面试题_新浪软件测试面试题-Linux运维工程师面试真题

    新浪软件测试面试题-Linux运维工程师面试真题 作为Linux运维工程师,进入大公司是开启职业新起点的关键,今天特别分享了其在新浪面试Linux运维及云计算工程师的题目和经历,希望对广大Linux运 ...

  3. 【面试真题】白同学的系统运维开发面试复盘

    前言 小白同学应邀参加系统运维的面试,面试过程的每个问题小白都提前做好了准备,所以面试还算顺利. 面试完拿到了12K的offer,成功入职,先总结面试过程给大家分享. 面试开始 小白同学按约定时间上午 ...

  4. 运维工程师面试的经历及面试相关问题

    转载 2018年1月4号面试 笔者其实没有想到去面试,只是在智联上更新了一下简历,就陆陆续续接到很多猎头的邮件和电话,实在是没准备好要去面试,就推掉了几家公司的面试了.正因为笔者也很久没有面试了,笔者 ...

  5. 6个linux运维典型问题,Linux运维人员面试常见的问题及答案(二)

    今天小编要跟大家分享的文章是关于Linux运维人员面试常见的问题及答案(二).准备参加Linux运维面试的小伙伴们是否做好了面试准备,今天在这里小编继续为大家分享一些Linux运维人员面试中的常见问题 ...

  6. linux运维培训后面试,Linux运维岗位面试中常见的面试问题汇总

    今天小编要跟大家分享的文章是关于Linux运维岗位面试中常见的面试问题汇总.正准备参加Linux运维面试的小伙伴们来和小编一起看一看吧,希望本篇文章能够对正在从事Linux运维工作的小伙伴们有所帮助. ...

  7. 运维经典面试真题汇总系列

    运维经典面试真题汇总系列 如何判断 mysql 主从是否同步?该如何使其同步?** Slave_IO_Running Slave_SQL_Running: 略 2. mysql 的 innodb 如何 ...

  8. Linux运维工程师面试知识点汇总(一)

    Linux运维工程师面试知识点汇总(一) 一.Linux命令知识点 1.查看/var/log/下的文件数 2.shell下随机密码生成(32位) 3.随机生成8位密码(大小写和数字混合) 4.随机生成 ...

  9. 面试专题:网易Linux运维工程师面试真题!

    作为Linux运维工程师,进入大公司是开启职业新起点的关键,今天分享网易面试Linux运维及云计算工程师的题目和经历,希望对广大Linux运维及云计算的求职者有一个帮助. 首先我们来看下网易Linux ...

  10. 网络运维工程师面试(笔试)

    网络运维工程师面试(笔试) TCP/IP模型有几层,他们的作用分别是什么? OSI模型有几层,作用是? 相同vlan连接不同的交换机,如何通信? arp欺骗的原理? ping的过程 nat有几种,静态 ...

最新文章

  1. 正则显示手机号显示3 4 4 格式
  2. 提到“子类”和“子类型”是不同的
  3. AlphaFold证明人工智能可以解决基本的科学问题
  4. 生产环境碰到系统CPU飙高和频繁GC,你要怎么排查?
  5. mysql unescape解码_PHP解密Unicode及Escape加密字符串
  6. MongoDB 聚合
  7. JAVA Swing GUI设计 WindowBuilder Pro Container使用大全3——JScrollPane使用
  8. iOS开发之UITableViewController指定刷新cell 或section
  9. redis客户端工具redis-insight推荐
  10. 一个OpenMP的学习程序
  11. 全球及中国基因组学软件行业发展动态及前景趋势预测报告(2022-2027)
  12. 机器人操作系统二(ROS2)- 修行 Taoism
  13. 主机无法ping通虚拟机xp系统
  14. python 复选框_每日一练:Python复选框的运用
  15. 联想 ThinkBook 15 LLI 蓝屏恢复
  16. bixby怎么编程_Bixby将优先考虑Yahoo和AOL内容,因为三星获得了报酬
  17. [CryptoHack] ELLIPTIC CURVES-STARTER Write-Up
  18. 科技云报道:混合云起势,青云QingCloud领跑
  19. FAL_SERVER参数解释
  20. 浏览器是怎么对html5的离线资源进行加载的呢

热门文章

  1. r与python交互_Reticulate:R + Python 实现互操作
  2. SQL Server默认周日为每周第一天,如何让周一变为每周的第一天
  3. Ubuntu好用的截图工具
  4. 如何把word默认新建文档的格式样式更改为常用的格式样式呢
  5. php股票预警,很准的股票底部预警选股指标 通达信公式(附图)
  6. 原生小程序 引入vant-weapp 组件库 和 WeUI组件库
  7. Rasa课程、Rasa培训、Rasa面试系列之: Rasa客户案例T-Mobile电信公司
  8. Python编程 | 颜色分类
  9. IE-LAB网络实验室:华为培训中华为数通HCIE考试流程
  10. 今日头条php笔试题,2017年今日头条笔试题目