直到最近,开发工程师还常常孤立的工作,将他们的知识和技能限制在编码和测试上,而运维工程师则专注于交付和基础设施配置工作,对软件开发的知识很少。
然而,随着IT领域的快速增长和技术进步,大多数IT公司的传统方法已经发生了模式转变。DevOps文化虽然还处于起步阶段,但它作为IT开发和运维之间的完美桥梁,近年来已经成为软件开发的一种流行方法。
一篇名为《DevOps招聘热潮》的文章称,到2019年,《财富》1000强企业中预计将有80%采用DevOps。 进行的一项调查显示,美国DevOps工程师的平均年薪约为123,439美元。
如果您已经开始交叉培训,为IT行业的开发和运维角色做准备,那么您就知道这是一个具有挑战性的领域,需要进行一些真正的准备才能进入。下面是一些最常见的DevOps面试问题和答案,它们可以帮助您在此行业准备DevOps角色转型。
1. 你对DEVOPS了解多少?
你的答案必须简单明了。首先解释DevOps在IT行业中日益增长的重要性。讨论这种方法的目标是如何协同开发和运维团队的工作,以最小的故障率加速软件产品的交付。包括DevOps是如何成为一种增值实践的,开发和运维工程师在整个产品或服务生命周期中携手合作,从设计阶段到部署阶段。
2.为什么DEVOPS在过去的几年里变得如此重要?
在讨论DevOps日益流行之前,先讨论一下当前的行业场景。首先举几个例子,说明Netflix和Facebook等大公司是如何投资DevOps来实现应用程序的自动化和加速部署,以及这如何帮助它们发展业务。以Facebook为例,您将指出Facebook的持续部署和代码所有权模型,以及这些模型如何帮助它扩展,同时确保体验的质量。数百行代码的实现不会影响质量、稳定性和安全性。
您的下一个用例应该是Netflix。这家流媒体和点播视频公司也采用了类似的做法,采用了完全自动化的流程和系统。提到这两个组织的用户基础:Facebook有20亿用户,Netflix向全球1亿多用户提供在线内容。这些都是DevOps如何帮助组织确保更高的发布成功率、减少bug修复之间的前置时间、通过自动化简化和持续交付,以及全面降低人力成本的很好的例子。
3.哪些是最流行的DEVOPS工具?你有使用这些工具的经验吗?
更流行的DevOps工具包括: a. Selenium b. Puppet c. Chef d. Git e. Jenkins f. Ansible g. Docker
详细描述你有信心的任何工具,它的能力是什么,以及为什么你更喜欢使用它。例如,如果您精通Git,您可以告诉面试官Git是一个分布式版本控制系统(VCS)工具,它允许用户跟踪文件更改,并在需要时恢复到特定的更改。讨论Git的分布式架构如何为它提供了一个附加的优势,开发人员可以在本地进行更改,并在本地Git存储库中保存整个项目历史,以后可以与其他团队成员共享。
既然您已经提到了VCS,那么准备好回答下一个显而易见的问题吧。
4. 什么事版本控制?为什么应该使用VCS?
定义版本控制,并谈谈此系统如何记录对一个或多个文件所做的任何更改,并将其保存在集中存储库中。VCS工具将帮助您回忆以前的版本并执行以下操作:
· 检查一段时间内所做的更改,并检查哪些有效,哪些无效。 · 将特定文件或特定项目还原为旧版本。 · 检查由于特定更改而发生的问题或错误 使用VCS为开发人员提供了同时处理特定文件的灵活性,所有修改都可以在以后逻辑上组合起来。
5.敏捷和DEVOPS之间有区别吗?如果是,请解释。
作为DevOps工程师,像这样的面试问题是很有必要的。首先描述DevOps和敏捷之间的明显重叠。尽管DevOps的实现始终与敏捷方法保持同步,但两者之间有明显的区别。敏捷的原则与软件的无缝生产或开发相关联。另一方面,DevOps处理开发,然后部署软件,确保更快的周转时间、最小的错误和可靠性。
如果您正准备成为高级DevOps角色,请准备这些特定的Chef DevOps面试问题。
6.为什么配置管理过程和工具很重要?
谈谈正在开发的每个软件或测试件的多个软件构建、发布、修订和版本。接下来解释存储和维护数据、跟踪开发构建以及简化故障排除的必要性。不要忘记提及可用于实现这些目标的关键CM工具。谈谈Puppet、Ansible和Chef等工具如何帮助在多个服务器上自动化软件部署和配置。
7.如何使用CHEF作为CM工具?
Chef被认为是业界首选的CM工具之一。例如,Facebook将其基础设施和后端IT迁移到了Chef平台。解释Chef如何通过自动化流程帮助您避免延迟。脚本是用Ruby编写的。它可以与基于云的平台集成并配置新的系统。它为基础设施开发提供了许多库,这些库稍后可以在软件中部署。由于其集中管理系统,一个Chef服务器就足够作为部署各种策略的中心。
8.您如何解释“基础设施即代码”(IAC)的概念?
将IaC作为一个概念来讨论是一个好主意,它有时被称为可编程的基础设施,其中基础设施与任何其他代码的理解方式相同。描述管理基础设施的传统方法如何退居二线,以及手动配置、过时的工具和自定义脚本如何变得越来越不可靠。其次,强调IaC的好处,以及如何使用IaC以更快、更安全、更容易的方式实现对IT基础设施的更改。包括IaC的其他好处,如对基础设施配置应用常规单元测试和集成测试,以及维护最新的基础设施文档。
如果你已经通过了Amazon Web Services (AWS)的认证,并且正在面试诸如AWS认证的DevOps工程师这样的理想职位,以下是一些AWS DevOps面试问题,你必须准备好:
9.AWS在DEVOPS中扮演什么角色?
当在面试中被问到这个问题时,你可以直截了当地说,AWS是亚马逊提供的一项基于云的服务,通过无限的计算能力和存储来确保可伸缩性。AWS授权IT企业开发和交付复杂的产品,并在云中部署应用程序。它的一些关键服务包括Amazon CloudFront、Amazon SimpleDB、Amazon Relational Database(关系数据库服务) 和Amazon Elastic Computer Cloud。讨论各种云平台,强调您过去使用云基础设施处理过的任何大数据项目。
10.IAC是如何使用AWS实现的?
首先谈将命令写入脚本文件并在部署之前在单独的环境中测试它们的古老机制,以及IaC如何替代这种方法。与为其他服务编写的代码类似,在AWS的帮助下,IaC允许开发人员使用JSON或YAML等格式,以描述性的方式编写、测试和维护基础设施实体。这样就可以更容易地开发和更快地部署基础设施更改。
您具备成为DevOps工程师的技能吗?这里有40个Devops认证考试问题。参加这个免费的练习测试,了解你现在的水平!
作为DevOps工程师,深入了解流程、工具和相关技术是必不可少的。您还必须对产品、服务和系统有一个全面的了解。如果您的答案与我们上面提供的答案相匹配,那么您将在未来的DevOps面试中处于表现良好。祝你好运!如果您正在寻找特定的DevOps面试问题的答案,而这些问题在这里没有提到,请在下面的评论中提问。我们的DevOps专家将帮助您设计完美的答案。 (DevOps社区Meetup)
|