原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3
原文做者:Saurabh Kulshrestha
翻译君:CODING 戴维奥普斯ios
你是一位 DevOps 工程师仍是想进入 DevOps 领域的新手?若是是,那么你已经把握住了将来趋势。在本文中,我列出了几十个在雇佣 DevOps 工程师时,面试官可能会问到的问题以供参考。面试
理解 DevOps 的关键点在于它不只仅是一种技术集合,而是一种思惟方式、一种文化。DevOps 须要一种文化转变——将运维与开发相结合,并须要一个相关联的技术工具链来促进协做变革。因为 DevOps 理念仍处于很是初级的阶段,所以 DevOps 的应用以及适应和协做所需的带宽因团队而异。可是,你能够开发 DevOps 技能组合,提高自我,成为任何类型的团队都须要的理想候选人。安全
成为一名 DevOps 工程师有哪些要求?服务器
在寻找能胜任 DevOps 工程师的人选时,团队会有一套清晰的技能需求。其中最重要的是:架构
为了组织下面的问题,我把本身放在了你的位置上,本文中的大多数答案都是以你的角度来写的——即一个有潜力的 DevOps 专家。运维
这类基础问题是与任何特定 DevOps 阶段无关的问题,旨在测试你对 DevOps 的理解程度,而不是关注特定的工具或阶段。工具
下表中列出了二者之间的差别。性能
我认为这个答案应该从解释市场整体趋势开始。如今许多公司都在经过尝试向客户快速发布小的功能点,以取代发布大的功能组。这样作有许多优势,好比能快速收到客户反馈、提升软件质量等,从而大幅提高客户满意度。为实现这一目标,公司必须:测试
DevOps 知足全部这些需求,并有助于实现无缝的软件交付。你能够举出像 Etsy、Google 和亚马逊这样的公司的例子,这些公司已经采用 DevOps 达到了甚至五年前都没法想象的性能水平。他们天天都在进行数10、数百甚至数千次代码部署,同时提供世界级的稳定性、可靠性和安全性。网站
若是我必须测试你对 DevOps 的了解程度,那么你应该知道敏捷(Agile)和 DevOps 之间的区别。下一个问题就是针对这一点的。
我建议你按照如下说明进行操做:
敏捷是一套关于如何实现生产即开发软件的价值观和原则。举个例子:若是你有一些想法,而且但愿将这些想法转化为可用的软件,那么你可使用敏捷价值观和原则做为实现此目的的方法。可是,该软件可能只适用于开发人员的笔记本电脑或测试环境,你但愿以一种安全简单的方式,快速、轻松、可复用地将该软件移植到生产基础架构中。要作到这一点,你须要 DevOps 工具和技术。
总而言之,敏捷软件开发方法侧重于软件的开发,DevOps 则负责以最安全可靠的方式开发和部署软件。
如今请记住,你在以前的回答中包含了 DevOps 工具,所以请准备好回答一些与此相关的问题。
下面介绍了一些最受欢迎的 DevOps 工具:
若是有须要你也能够说起其余工具,但请确保在你的回答中包含上述工具。
接下来的回答有两种可能:
下面给出了一个通用的逻辑流程,在这个流程中全部内容都将自动进行无缝交付。可是此流程也会因不一样组织的不一样需求而致使一些差别。
对于这个答案,你能够利用你过去的经验,解释 DevOps 是如何帮助你完成以前的工做。若是没有任何此类经验,那么你能够说起如下优点。
技术优点:
持续的软件交付
修复不太复杂的问题
更快地解决问题
商业优点:
更快速地提供新功能
更稳定的操做环境
更多可用于提高价值的时间(而不是修复/维护)
据我所知,DevOps 帮助咱们实现的最重要的事是尽量快地将更改投入生产,同时最大限度地保证软件质量和合规性。这是 DevOps 的主要目标。
你也能够说起 DevOps 的许多其余积极影响,例如团队之间更清晰的沟通和更好的工做关系——即运维团队和开发团队共同合做,经过提供高质量的软件提高客户满意度。
有许多行业正在应用 DevOps,因此你能够举出任意案例,也能够参考下面的例子:
Etsy 是一个 P2P 电商网站,专一于手工或古董物品,以及独特的工厂制造的物品。Etsy 在缓慢且痛苦的网站更新中挣扎,这些更新常常致使网站崩溃,影响了数百万经过在线市场销售商品的 Etsy 用户的使用,而且颇有可能将商品推向竞争对手。
在新技术管理团队的帮助下,Etsy 从每周进行两次四小时全站点部署的瀑布模型,转变为更敏捷的模式。现在它拥有彻底自动化的部署管道,据报道,其持续交付实践天天能够进行 50 屡次更少中断的部署。
这个回答主要是分享你过去的工做经验,并试着解释你在之前工做中的灵活性。能够参考如下示例:
DevOps 工程师几乎总在业务关键在线环境中全天候工做。我可以适应随叫随到的工做,而且承担生产系统的维护责任;我成功自动化了支持持续软件部署的流程;我有使用公有/私有云、Chef 或 Puppet 等工具、使用 Python 和 PHP 等工具编写脚本和实现自动化方面的经验,而且具备敏捷相关的背景。
通常来讲一般你的研发组织中遵循了某种模式,但若是其余人广泛采用的模式对你的组织不起做用,而且你继续盲目地遵循它,那么你其实是在采用反模式。一些关于 DevOps 的错误认知包括:
点击使用 CODING,体验 DevOps 全工具链敏捷研发