原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3
原文作者:Saurabh Kulshrestha
翻译君:CODING 戴维奥普斯

Q1:什么是持续集成?

我会建议你以持续集成的最小定义作为开始来回答这个问题。这是一种研发实践,需要开发人员每天多次将代码集成到共享代码库中。然后通过自动构建来验证每次代码的修改,以便团队尽早发现问题。

我建议你解释一下在以前的工作中是如何实施持续集成的,可以参考以下示例:

在上图中:
1、开发人员将代码 clone 至私有工作区。
2、完成编码后,他们将更改提交至共享代码库中(版本控制仓库)。
3、CI 服务器监视代码仓库并在发生更改时检出更改。
4、紧接着 CI 服务器提取这些变更进行构建、运行单元以及集成测试。
5、CI 服务器会立即告知团队构建成功与否。
6、如果构建失败,CI 服务器会向团队发送告警。
7、研发团队将尽快解决问题。
8、这个过程会不断重复。

Q2:为什么研发团队需要开发与测试的持续集成?

对于这个答案,你应该关注持续集成的需求。我建议你在回答中提到以下解释:
开发和测试的持续集成通过在完成所有开发之后替换传统的测试实践,来提高软件质量并减少交付耗时。它允许开发团队尽早检测和定位问题,因为开发人员需要每天多次(或更频繁地)将代码集成到代码仓库中,然后自动验证每次集成。

Q3:持续集成的成功因素有哪些?

在这里,你必须提到持续集成的要求,可以在回答中包含以下几点:

  • 维护代码仓库
  • 自动化构建
  • 让构建自我检测
  • 每个人每天都确保已将修改提交至基线
  • 保持快速构建
  • 在生产环境的克隆环境中进行测试
  • 研发团队可以轻松获得最新的可交付成果
  • 每个人都可以看到最新构建的结果
  • 自动部署

Q4:如何将 Jenkins 从一台服务器迁移或者复制到另一台服务器?

我会通过将 jobs 目录从旧服务器复制到新服务器的方式来完成这个事情。有很多种方法可以做到这一点:

  • 只需复制相应的 job 目录,即可将 job 从一个 Jenkins 服务器移动到另一个。
  • 通过使用其它名称克隆 job 目录来制作现有 job 的副本。
  • 通过重命名目录来重命名现有 job。请注意,如果你更改了 job 名称,则需要更改尝试调用该重命名 job 的所有 job 。

Q5:如何在 Jenkins 中创建备份和复制文件?

可以很直接地回答这个问题:要创建备份。你需要做的就是定期备份 JENKINS_HOME 目录。这包含所有构建 job 配置,从属节点配置和构建历史记录。要创建 Jenkins 的备份,只需复制此目录即可,你还可以复制 job 目录或重命名目录。

Q6:如何配置 Jenkins 的 job?

关于这个答案的解决方法是首先提一下如何创建 job:转到 Jenkins 首页,选择“New Job”,然后选择“Build a free-style software project”。然后你可以设置这个自由式 job 的元素:

  • 可选的 SCM,例如源代码所在的 CVS 或 Subversion。
  • 用于控制 Jenkins 何时执行构建的触发器。
  • 某种构建脚本,用于执行实际工作的构建(ant,maven,shell 脚本,批处理文件等)。
  • 从构建中收集信息的可选步骤,例如归档制品、记录 javadoc 和测试结果。
  • 配置构建结果通知其他人/系统的步骤,例如发送电子邮件、即时消息、更新问题跟踪器等。

Q7:列举 Jenkins 中一些有用的插件

下面我将提到一些重要插件:

  • Maven 2 project
  • Amazon EC2
  • HTML publisher
  • Copy artifact
  • Join
  • Green Balls

我觉得这些是最有用的插件,你也可以添加你认为有用的插件。但是请确保首先提到上述插件,然后添加你自己的插件。

Q8:如何保证 Jenkins 的安全?

  • 确保 global security 配置项已经打开。
  • 确保用适当的插件将 Jenkins 与企业员工目录进行集成。
  • 确保启用项目矩阵的权限访问设置。
  • 通过自定义版本控制的脚本来自动化 Jenkins 中设置权限/特权的过程。
  • 限制对 Jenkins 数据/文件夹的物理访问。
  • 定期对其进行安全审核。

点击使用 CODING
体验 DevOps 全工具链敏捷研发

2019 DevOps 必备面试题——持续集成篇的更多相关文章

  1. 2019 DevOps 必备面试题——代码版本控制篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  2. 2019 DevOps 必备面试题——DevOps 理念篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  3. 2019 DevOps 必备面试题——配置管理篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  4. 2019 DevOps 必备面试题——容器化和虚拟化

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  5. 持续集成篇_08_Hudson持续集成服务器的使用(自动化编译、分析、打包、部署)

    持续集成篇_08_Hudson持续集成服务器的使用(自动化编译.分析.打包.部署) 1.创建任务 svn用户验证 验证通过 *****五颗*表示每分钟检查svn路径是否有变更,有变更就会重新构建,相当 ...

  6. Jenkins +git +python 进行持续集成进行接口测试(接口测试jenkins持续集成篇)

    使用jenkins+git+python脚本进行持续集成的接口测试,在jenkins平台,利用插件等,把管理代码的git仓库的代码更新下来进行持续接口测试,python进行开发测试脚本,git进行远程 ...

  7. Jmeter 接口测试知识梳理——持续集成篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter + Ant ...

  8. 【OF框架】在Azure DevOps中配置项目持续集成CI服务,推送镜像到Azure容器注册表

    准备工作 开通Azure账号,具有开通服务权限,关键是里面要有钱. 开通Azure DevOps,能够创建组织和项目. 具备一定的DevOps知识,了解CICD概念.Docker基本操作. 一.创建& ...

  9. 持续集成篇_05_SonarQube代码质量管理平台的介绍与安装

    1.SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质量(为什么要用SonarQube): (1)复杂度分布(complexity):代码复杂度过高将 ...

随机推荐

  1. 服务器(VPS)被墙怎么办?

    比如开发接口用的临时服务器被墙,就可以使用以下方法之一. 方法一(推荐) 为你的服务器分配一个浮动IP 等于给你的 droplet 增加一个新的 ip,我们以后访问这个新的ip就ok了. 直到下一次被 ...

  2. Gradle-构建脚本

    构建语言 Gradle提供了一种领域特定语言,目前同时支持 Groovy 和 Kotlin . 在 Groovy 构建脚本中(.gradle) 你可以使用任何 Groovy 元素. 在 Kotlin ...

  3. crontab 定时任务没有响应 检测步骤

    设置规则 # 每分钟执行一次 */1 * * * * /scripts/script.sh # 每小时执行一次 0 */1 * * * /scripts/script.sh # 每天 02:00 执行 ...

  4. laravel身份验证-Auth的使用

    laravel自带了auth类和User模型来帮助我们很方便的实现用户登陆.判断.首先,先配置一下相关参数 app/config/auth.php: model 指定模型table 指定用户表这里我只 ...

  5. C#封装继承

    面向对象开发有三大特性(特点 / 特征) : 封装, 继承, 多态.我们今天主要讨论封装和继承,多态会在下篇中讨论. 一.封装: 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法 ...

  6. vuex 精简demo解析

    1.store/index.js 文件 import Vue from 'vue' import Vuex from 'vuex' //使用vuex Vue.use(Vuex); //一个store ...

  7. Android UI开发之开源控件项目整理

    一.Banner 1.https://github.com/youth5201314/banner Android广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式.动画.轮播和切换时间. ...

  8. 一个MongoDB索引走偏的案例及探究分析

    接业务需求,有一个MongoDB的简单查询,太耗时了,执行了 70S 左右,严重影响用户的体验.. 查询代码主要如下: db.duoduologmodel.find({"Tags.SN&qu ...

  9. 12c Data guard Switchover Best Practices using SQLPLUS (Doc ID 1578787.1)

    12c Data guard Switchover Best Practices using SQLPLUS (Doc ID 1578787.1) APPLIES TO: Oracle Databas ...

  10. sql server编写脚本求解第1天1分钱之后每天两倍持续一个月的等比数列问题

    一.问题 问题1 场景:如果你未来的丈母娘要求你,第1天给她1分钱,第2天给2分钱,第3天给4分钱,以此类推,每天给前一天的2倍,给1个月(按30天)算就行.问:第30天给多少钱,总共给多少钱? 问题 ...