答:尽管DevOps与敏捷方法(这是最流行的SDLC[Software Development Life Cycle]方法之一)有一些相似之处,但两者在软件开发方面都是根本不同的方法。以下是两者之间的各种基本差异:
敏捷方法
敏捷方法适用于敏捷中的开发同时敏捷方法适用于DevOps中的开发和操作。实践和流程
敏捷涉及敏捷Scrum和敏捷看板等实践,而DevOps涉及CD(持续交付),CI(持续集成)和CT(持续测试)等流程。优先级
敏捷优先考虑及时性,而DevOps优先考虑及时性和质量。发布周期
DevOps提供较小的发布周期并提供即时反馈,而敏捷仅提供较小的发布周期而没有立即反馈。反馈源
敏捷依赖于客户的反馈,而DevOps涉及到自身(监控工具)的反馈。工作范围
对于敏捷,工作范围仅是敏捷,而对于DevOps,这是敏捷和对自动化的需求。答:如今,很多组织或企业正试图通过一系列的发布小的特性传递给客户,而不是发布大的特性集。这样做有几个好处,包括更好的软件质量和快速的客户反馈,所有这些好处导致更高的客户满意度,这是任何产品开发项目的最重要目标。为此,公司需要:
DevOps有助于满足所有这些要求,从而实现无缝的软件交付。像Amazon,Etsy和Google这样的成熟组织已采用DevOps方法,从而实现了以前未知的性能水平。通过采用DevOps方法,组织可以在一天之内完成数以万计的部署。此外,这样做还可以提供一流的可靠性
、安全性
和稳定性
。
答:DevOps为该表带来了很多业务和技术优势。下面列出了一些最重要的参数:
商业利益:
技术优势:
答:以下是一些使用最广泛的DevOps工具的列表:
答:selenium用于DevOps中的连续测试。该工具专门从事功能和回归形式的测试。
答:这是一个配置管理工具,用于自动执行管理任务。Puppet利用主从结构,其中两个实体通过加密通道进行通信。系统管理员需要执行许多重复性任务,尤其是安装和配置服务器。编写脚本来自动执行此类任务是一种选择,但是当基础结构很大时,执行的操作就会变得繁琐重复。为此,配置管理是一个不错的解决方法。
Puppet帮助配置、部署和管理服务器。这不仅使此类冗余任务变得更加容易,而且节省了总工作时间的很大一部分。成熟的配置管理工具:
答:如果其他组织通常采用的DevOps模式在特定环境下不起作用,而组织仍在继续使用它,则会导致采用反模式。换句话说,反模式是关于DevOps的神话。一些著名的反模式是:
答:DevOps中的CI代表持续集成。CI是一种开发实践,开发人员可以在一天内多次将代码集成到共享存储库中。
答:画在纸上的传统软件开发生命周期有左右两边。图的左侧包括设计和开发,而右侧包括生产阶段,压力测试和用户接受度。在DevOps中向左移动仅意味着需要在右侧执行尽可能多的任务,即通常在应用程序开发过程的结尾发生,并将其纳入DevOps方法的早期阶段。有几种方法可以完成DevOps中的操作,最值得注意的是:
答:首字母缩写CAMS通常用于描述DevOps方法论的核心信条。它代表:
答:kpi是关键绩效指标的简写形式。为了度量DevOps过程的成功,可以使用几个kpi。其中最流行的有:
答:以下是实现DevOps自动化的主要好处:
答:容器是一种轻量级虚拟化形式,有助于在进程之间提供隔离。容器比chroot重,但比管理程序轻。
答:版本控制系统或VCS是一种能够记录一段时间内对一个文件或一组文件所做的更改的系统。Git和Mercurial是两个最受欢迎的版本控制系统。VCS的重要用途是:
答:有两种方法可以这样做:
git revert
git commit -m "commit message"
参考回答:在这个会议上,我们讨论出了什么问题,应该采取什么步骤,这样失败就不会再次发生。事后分析会议并不是要找出问题的症结所在,而是要防止再次发生类似的工作,和ITIL中的问题管理是相类似的管理方法。并应重新计划新的设计基础设施,以便尽可能减少停机时间。如果错误我们无法避免,那么我们应从错误中学习,以提交IT整体的质量管理。
答:监视和维护对实体或组有价值的东西的过程称为资产管理。配置管理是指控制,识别,计划和验证服务中的配置项以支持变更管理的过程。
答:持续测试的各种关键要素包括:
答:DevOps在开发和基础架构方面的核心运营是:
您的答案必须简单明了。首先介绍一下DevOps在IT行业中的重要性。讨论这种方法如何旨在使开发和运营团队共同努力,以最小的故障率加速软件产品的交付。包括DevOps如何成为增值实践,开发和运维工程师在整个产品或服务生命周期中(从设计阶段到部署点)携手合作。
在谈论DevOps的日益普及之前,请讨论当前的行业情况。首先,举例说明Netflix和Facebook等大型公司如何投资DevOps来自动化和加速应用程序部署,以及这如何帮助他们发展业务。以Facebook为例,您将指出Facebook的持续部署和代码所有权模型,以及这些模型如何帮助其扩大规模,同时确保体验质量。在不影响质量,稳定性和安全性的情况下实现了数百行代码。
下一个用例应该是Netflix。这家流媒体和点播视频公司采用完全自动化的流程和系统遵循类似的做法。提及这两个组织的用户群:Facebook有20亿用户,而Netflix将在线内容流传输给全球超过1亿用户。
这些都是很好的例子,说明DevOps如何帮助组织确保更高的发布成功率,减少错误修复之间的准备时间,通过自动化简化并持续交付,以及总体上降低人力成本。
较流行的DevOps工具包括:
彻底描述您有信心的任何工具,其功能以及为什么要使用它。例如,如果您具有Git方面的专业知识,则可以告诉采访者Git是一种分布式版本控制系统(VCS)工具,该工具可让用户跟踪文件更改并在需要时还原为特定更改。讨论Git的分布式体系结构如何为开发人员带来更多优势,使开发人员可以在本地进行更改,并可以在其本地Git存储库中拥有整个项目历史记录,以后可以与其他团队成员共享。
定义版本控制,并讨论该系统如何记录对一个或多个文件所做的任何更改并将其保存在集中式存储库中。VCS工具将帮助您重新调用以前的版本并执行以下操作:
仔细查看一段时间内所做的更改,然后检查哪些有效,哪些无效。
将特定文件或特定项目还原回旧版本。
检查由于特定更改而发生的问题或错误
使用VCS为开发人员提供了同时处理特定文件的灵活性,并且所有修改内容以后都可以进行逻辑组合。
作为一名DevOps工程师,对这样的面试问题充满期待。首先描述DevOps与敏捷之间明显的重叠。尽管DevOps的实现始终与敏捷方法保持同步,但是两者之间存在明显的差异。敏捷原则与软件的无缝生产或开发相关。另一方面,DevOps处理开发工作,然后部署软件,以确保更快的周转时间,最小的错误和可靠性。
讨论正在开发的每个软件或测试软件的多个软件构建,发行,修订和版本。继续说明存储和维护数据的需求,跟踪开发构建和简化的故障排除。不要忘了提到可用于实现这些目标的关键CM工具。讨论诸如Puppet,Ansible和Chef之类的工具如何在多个服务器上自动化软件部署和配置的过程中提供帮助。
chef被认为是行业首选的CM工具之一。例如,Facebook将其基础架构和后端IT迁移到了Chef平台。解释Chef如何通过自动化流程来帮助您避免延迟。这些脚本是用Ruby编写的。它可以与基于云的平台集成并配置新系统。它提供了许多用于基础结构开发的库,这些库以后可以部署在软件中。借助其集中式管理系统,一台Chef服务器足以用作部署各种策略的中心。
谈论IaC是一个好主意,有时将其称为可编程基础结构,在该基础结构中,与其他任何代码的感知方式相同。描述传统的基础架构管理方法如何退居二线,以及手动配置,过时的工具和自定义脚本的可靠性如何降低。接下来,重点介绍IaC的好处,以及如何使用IaC更快,更安全,更轻松地对IT基础架构进行更改。包括IaC的其他好处,例如将常规的单元测试和集成测试应用于基础结构配置,以及维护最新的基础结构文档。
如果您已经完成了Amazon Web Services(AWS)的认证,并且正在接受诸如AWS认证的DevOps工程师之类的利基角色的面试,那么您必须准备以下一些AWS DevOps面试问题:
在面试中被问到此问题时,请直接说明,AWS是亚马逊提供的基于云的服务,可通过无限的计算能力和存储来确保可扩展性。AWS使IT企业能够开发和交付复杂的产品,并在云上部署应用程序。其一些关键服务包括Amazon CloudFront,Amazon SimpleDB,Amazon Relational Database Service和Amazon Elastic Computer Cloud。讨论各种云平台,并强调您过去使用云基础架构处理过的任何大数据项目。
参考回答:作为一名DevOps工程师,我会对DevOps项目管理的管理目标、敏捷交付、持续集成进行管理,并从敏捷项目管理新三角《敏捷项目管理》出发,与团队一起设定目标,实现简化的ITIL工作流,维护敏捷的DevOps管理范围,研究和引入新的技术或框架,通过DevOps 流水线,实现从需求转化为工作流从整体工具链进行全局优化。
参考回答: 配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状态统计等任务的工具。 自动化的配置管理工具可以帮助DevOps实现持续流水线的技术支持基础。使用CM工具,可以帮着管理与存储关于系统、软件、测试相关的版本和构建及配置信息,并提供软件和测试软件之间的可跟踪性。成功的DevOps从配置管理开始。
参考回答:DevOps工程师与敏捷开发团队紧密合作,站在业务价值视角,拉动IT从业务需求到运营交付,确保通过高质量(JKK)的自动化测试,实现持续集成和持续交付等IT技术功能所需的环境。DevOps工程师必须经常与开发保持联系(SRE模式、丰田模式、持续交付模式、协作模式),使环境中所有需要的部分都能无缝地工作,实现高质量的增量迭代。可以扩展说说相关工具。
原文:https://www.cnblogs.com/xuelong3/p/12587932.html