目录[隐藏][展示]
- 1. DevOps 是什么意思?
- 2.列出DevOps的一些原则?
- 3. 列出一些最流行的 DevOps 工具?
- 4. 什么是基础设施即代码?
- 5. 解释 DevOps 生命周期?
- 6、什么是配置管理?
- 7. DevOps 的主要优势是什么?
- 8. 使用版本控制系统有什么好处?
- 9. 什么是 git stash?
- 10. 什么是 CI/CD?
- 11. 什么是 CI/CD 管道?
- 12. 什么是持续测试?
- 13. DevOps 与敏捷有何不同?
- 14. 您能否列举几个用于衡量 DevOps 成功的关键绩效指标 (KPI)?
- 15 列举几个用于实施 DevOps 的云平台?
- 16. AWS 与 DevOps 有什么关系?
- 17. 在 AWS DevOps 中,CodePipeline 到底是什么?
- 18. AWS DevOps 中的 CodeBuild 到底是什么?
- 19. 在 AWS DevOps 的背景下,AWS Lambda 到底是什么?
- 20. 哪些编程框架与 AWS CodeBuild 兼容?
- 21. 在 AWS DevOps 中,什么是微服务?
- 22. Amazon QuickSight 在 AWS DevOps 中扮演什么角色?
- 23. 在 AWS DevOps 中,Kubernetes 容器如何通信?
- 24. AWS DevOps 中的混合云是什么?
- 25. 什么是 Ansible?
- 26.硒的用途是什么?
- 27. 什么是 Selenium Grid,它有什么作用?
- 28. 什么是 Selenium IDE?
- 29. 在 DevOps 中,Puppet 是什么意思?
- 30. 为了让 Puppet 更强大,你使用了哪些开源或社区工具?
- 31.解释Jenkins的主从架构?
- 32. 如何将 Jenkins 从一台服务器移动或复制到另一台服务器?
- 33. 提几个有用的 Jenkins 插件?
- 34. 什么是 Nagios?
- 35. Nagios 是如何工作的?
- 36. Nagios 日志服务器到底是什么?
- 37. Nagios 中的状态跟踪是什么?
- 38. 究竟什么是容器?
- 39. Docker 镜像到底是什么?
- 40. Docker 容器到底是什么?
- 41. Dockerfile 的用途是什么?
- 42. 什么是“结对编程”?
- 43. 什么是厨师?
- 44. 蓝/绿部署模式到底是什么?
- 45.什么是Memcached?
- 46. Memcached有什么特点?
- 47. 列举几个有用的网络监控工具?
- 48. 建立 DevOps 管道有哪些障碍?
- 49. Secure Shell 的目的究竟是什么?
- 50. CBD 到底是什么?
- 结论
开发和运营是 DevOps 的代表。
这是一种新型的软件开发方式,它改变了软件的创建和传播方式。 DevOps 技术将频繁的增量升级优先于不频繁的大型功能集。
DevOps 有助于 IT 运营。
在 DevOps 之前,IT 人员必须处理许多问题。
结果,IT 部门受到了一些不受欢迎的审查。 随着 DevOps 的引入,这一切都发生了变化,它允许 IT 运营与其他业务部门交流他们的担忧,从而提高了 IT 运营与其他部门之间的透明度和合作。
如果您已经开始为 IT 业务中的开发和运营职责做好准备,那么您已经意识到这是一个很难进入的职业。
您是否正在考虑从事 DevOps 的职业?
如果是这种情况,那么您来对地方了。
以下是一些最常见的 DevOps 面试问题和答案,可帮助您为行业中的 DevOps 职业生涯做好准备。
1. DevOps 是什么意思?
开发和运营 (DevOps) 是两个经常互换使用的术语。 这是一种软件工程方法,专注于将开发和运营团队聚集在一起,在各个层面实现项目自动化。
这种技术使自动化项目服务管理变得简单,从而可以实现运营目标,并且可以更好地理解生产环境中使用的技术堆栈。
该策略基于敏捷方法,强调团队沟通、资源管理和协作。
2.列出DevOps的一些原则?
DevOps 基于以下原则:
- 持续部署
- 自动化
- 灭菌监测
- 安保行业
- 基础架构即代码
3. 列出一些最流行的 DevOps 工具?
最常用的 DevOps 工具是:
- 混帐
- Ansible
- 码头工人
- 硒
- 木偶
- 厨师
- 詹金斯
4. 什么是基础设施即代码?
基础架构即代码或 IaC 是一种基于软件的 IT 技术,用于编码和维护底层 IT 基础架构。 基础设施即代码无需手动配置单独的硬件设备和操作系统,而是允许开发人员和运营团队自动管理、监控和提供资源。
5. 解释 DevOps 生命周期?
DevOps 分为六个阶段。 它的阶段遵循一定的周期。
然而,没有一个阶段是由边界划分的,即使前一个阶段已经完全结束,也没有一个阶段开始。 现在让我们仔细看看 DevOps 周期阶段。
- 规划 - 的 DevOps 生命周期的初始部分包括规划和软件开发。 这个阶段需要彻底理解项目,以实现其成员的最终工作目标。 这也为开发和运营的各个阶段提供了支持。 组织接受有关工具和指标的培训也很重要,以便清楚地了解项目的管理情况。
- 发展 - 期间 在这个阶段,项目是通过设计基础设施、开发代码、建立测试或使用自动化过程来构建的。 在这个阶段,证据至关重要。 为了管理应用程序和数据活动,开发人员将代码保存在代码管理器中,以便查看、版本控制等。
- 持续集成——这个 step 自动化验证和测试机制。 这具有一个独特的功能,可确保在将开发环境与其他应用程序相结合的服务中发布之前正确配置开发环境。
- 自动化部署——DevOps 鼓励使用工具和脚本来自动化部署,最终目标是通过激活功能来自动化整个过程。 云的出现,作为一种强制从有限基础设施管理转向永久成本优化管理的代码,是这一时期最重要的组成部分。
- 操作 - 全部 由于基础架构的动态特性,DevOps 操作通常在软件的整个生命周期内连续执行。 借助该平台,转换、可用性和可扩展性都成为可能。
- 监控——这个 是 DevOps 过程中的一个连续阶段。 DevOps 跟踪和分析显示应用程序当前状态的数据。
6、什么是配置管理?
配置管理 (CM) 是一个以系统方式处理更改的过程,以便始终保持系统的完整性。
这需要一套规则、策略、流程和工具来评估、管理和监控变更提案,以及保存必要的文档。 CM 通过提供行政和技术指导,为项目的设计和开发做出贡献。
7. DevOps 的主要优势是什么?
以下是 DevOps 的主要优势:
技术优势
- 不那么难解决的问题
- 持续交付软件
- 更早地发现缺陷并更快地纠正缺陷。
对公司的好处
- 稳定的运行环境
- 功能交付更快。
- 团队之间的协作和沟通得到了改善。
8. 使用版本控制系统有什么好处?
- VCS 巧妙地组织了所有以前的版本和变体。
- 所有员工都可以随时使用 版本控制 系统(VCS)。 它还允许在一个通用版本中进行的所有修改合并在一起。
- 它旨在通过允许他们在文本文件上进行协作来帮助许多人,从而使多台机器之间的共享变得非常简单。
- 这对于需要大量重新起草和编辑的论文至关重要,因为它为重新起草和更新最终版本创建了一条纸迹。
- 它允许所有团队成员查看整个项目历史记录,允许我们在中央服务器发生故障时利用任何团队成员的存储。
9. 什么是 git stash?
git stash 命令临时保存工作目录中的更改。 这为开发人员提供了一个干净的工作环境。 然后他们可以使用 git 过程来合并修改。 执行此命令时,跟踪文件中的更改将合并到工作目录中。 在 git 目录下,可以多次使用 git stash 命令。 它是 git 的存储库。
10. 什么是 CI/CD?
持续整合 (CI) 是一种开发方法,其中开发人员必须每天多次将代码集成到一个公共存储库中。 然后,自动构建会验证每次签入,从而使团队能够及早发现问题。
持续部署 是一种软件工程技术,它使用自动部署来提供产品功能。 它帮助测试人员确定代码库修改是否正确和稳定。
11. 什么是 CI/CD 管道?
软件交付过程通过 CI/CD 管道实现自动化。 它生成代码、进行测试并帮助您正确部署新的软件版本。 CI/CD 管道消除了人为错误,为开发人员提供反馈,并支持快速的产品迭代。 CI/CD 管道自动化和监控软件产品的开发生命周期。 它涵盖了从集成和测试到交付和部署的整个过程。 CI/CD 管道指的是这些相互关联的活动。
12. 什么是持续测试?
持续测试是作为软件交付管道的一部分执行自动化测试的过程,以提供有关最新版本中业务风险的实时反馈。 每次构建都以这种方式持续测试,以避免在软件交付生命周期中的步骤切换困难,并允许开发团队获得快速反馈。 这会极大地提高开发人员的工作效率,因为在每次更新和项目重建后不再需要重新运行所有测试。
13. DevOps 与敏捷有何不同?
DevOps 是一种方法或文化,它允许开发和运营团队一起工作以构建成功的产品。 SDLC 周期的持续开发、集成、测试、部署和监控是可用于完成此任务的一些方法。 对于成功的产品发布,DevOps 旨在弥合开发人员和运营人员之间的差距。
敏捷是一种软件开发过程,它强调增量、迭代和快速的软件产品发布,同时结合客户输入。 这种方法弥合了客户和开发人员对需求的了解之间的差距。
14. 您能否列举几个用于衡量 DevOps 成功的关键绩效指标 (KPI)?
关键绩效指标,或 KPI,是一种衡量某件事做得如何的指标。 以下是一些最常用的用于衡量 DevOps 成功的 KPI:
- 客户票
- 成功部署频率和时间
- 错误/失败率
- 失败的部署
- 应用程序使用情况、性能和流量
- 自动化测试用例通过百分比。
- 应用程序可用性
- 更改音量请求
- 检测时间 (MTTD)
- 恢复时间 (MTTR)
15 列举几个用于实施 DevOps 的云平台?
以下是一些最流行的用于 DevOps 实施的云计算平台:
- 亚马逊网络服务
- 谷歌云
- Azure
16. AWS 与 DevOps 有什么关系?
Amazon Web Services (AWS) 是一个云服务平台,它使 DevOps 原则易于实施。
给出的解决方案将极大地帮助团队管理复杂的设置,帮助工程师成功利用 DevOps 提供的高速工作。
17. 在 AWS DevOps 中,CodePipeline 到底是什么?
AWS 提供 CodePipeline 作为持续集成和交付的服务。
它还包括对基础架构的更改。 通过用户定义的已建立的发布模型协议,每次构建后的构建、测试和部署等操作变得相对简单。
CodePipeline 保证新的软件升级和功能能够可靠、快速地交付。
18. AWS DevOps 中的 CodeBuild 到底是什么?
AWS 提供 CodeBuild,这是一种完全托管的内部构建服务,可帮助进行源代码编译、测试和生成可立即部署的软件包。 无需管理、分配或供应,因为构建服务器是自动扩展的。
构建操作在服务器上并行执行,最大的好处是不必让任何构建在队列中等待。
19. 在 AWS DevOps 的背景下,AWS Lambda 到底是什么?
AWS Lambda 是一种计算服务,允许客户在不明确预置或管理服务器的情况下运行程序。
用户可以使用 AWS Lambda 为其应用程序或服务运行任何代码,而无需事先集成。 就像提交一段代码并让 Lambda 处理运行和发展它所需的一切一样简单。
20. 哪些编程框架与 AWS CodeBuild 兼容?
AWS CodeBuild 包括 Python、Ruby、Java、Android、Docker、Node.js 和 Go 环境。
通过初始化和生成 Docker 映像,还可以创建定制环境。 然后将其推送到 EC2 或 DockerHub 注册表。 这是后来用于引用用户构建项目中的图片。
21. 在 AWS DevOps 中,什么是微服务?
微服务架构是将单个应用程序设计为服务集合的技术。
这些服务中的每一个都有自己的流程结构,并通过定义的接口与其他服务进行通信,该接口既轻量级又易于使用。 这种通信的大部分是通过 HTTP 和 API 查询完成的。
22. Amazon QuickSight 在 AWS DevOps 中扮演什么角色?
Amazon QuickSight 是一种 AWS 业务分析工具,可让您轻松创建可视化、进行分析并从结果中获取业务洞察。
它是一种快节奏且完全基于云的服务,为用户提供了多种发现和使用它的选项。
23. 在 AWS DevOps 中,Kubernetes 容器如何通信?
在 Kubernetes 中,一个称为 pod 的项目用于在容器之间进行映射。
在任何给定时间,一个 pod 都可以容纳多个容器。 由于 pod 的网络层次结构扁平,覆盖网络上的这些 pod 之间的通信很简单。
24. AWS DevOps 中的混合云是什么?
混合云是一种结合了私有云和公共云的计算环境。
可以通过在云 VPN 和本地网络之间插入 VPN 隧道来构建混合云。 AWS Direct Connect 还可以简单地绕过 Internet 并在 VPN 和数据中心之间安全地连接。
25. 什么是 Ansible?
Ansible 是一个跨平台的计算机支持自动化程序,使用简单但功能非常强大。
它专为 IT 专业人员设计,他们将其用于应用程序部署、工作站和服务器升级、云配置、配置管理、服务内编排以及几乎所有其他方面 系统管理员 每周或每天执行一次。
Ansible 安装简单,因为它不需要任何代理软件或其他安全基础设施。
26.硒的用途是什么?
Selenium 在 DevOps 中用于持续测试。 该工具侧重于功能和回归测试。
27. 什么是 Selenium Grid,它有什么作用?
Selenium Grid 的目的是在多个平台和浏览器上运行相同或不同的测试脚本,以便进行分布式测试。 它有助于在各种场景中进行测试,并具有减少执行时间的能力。
28. 什么是 Selenium IDE?
Selenium 集成开发环境 (IDE) 为 Selenium 脚本开发提供了一站式服务。 它也可作为 Firefox 扩展使用,可用于调试、更改和记录测试。
Selenium IDE 包含整个 Selenium Core,允许我们在运行它们的相同上下文中重放和记录测试。 由于快速转移指令的灵活性和自动完成支持,Selenium IDE 是编写 Selenium 测试的最佳环境,独立于我们喜欢的测试类型。
29. 在 DevOps 中,Puppet 是什么意思?
这是一个用于自动化管理职责的配置管理程序。 Puppet 采用主从架构,其中两个实体通过加密通道进行通信。 系统管理员负责各种重复的职责,包括安装和配置服务器。
可以编写脚本来自动化此类活动,但是当基础设施庞大时,这会变得很困难。 配置管理是一个很好的解决方法。 Puppet 帮助配置、部署和管理服务器。
它不仅使此类重复性工作变得更容易,而且总体上还节省了大量时间。
30. 为了让 Puppet 更强大,你使用了哪些开源或社区工具?
Jira 用于跟踪更改和请求,我们通过内部程序对其进行管理。
然后,按照最佳实践,我们利用 Git 和 Puppet 的代码管理器应用程序来管理 Puppet 代码。 此外,我们使用 Jenkins 的持续集成管道和烧杯测试框架来执行我们所有的 Puppet 更新。
31.解释Jenkins的主从架构?
- 每次有代码提交时,Jenkins master 都会从远程 GitHub 存储库中检索代码。
- 它将任务分配给所有 Jenkins 奴隶。
- 从站根据 Jenkins 主站的请求执行、构建、测试和创建测试结果。
32. 如何将 Jenkins 从一台服务器移动或复制到另一台服务器?
我将首先将作业目录从旧服务器转移到新服务器。 还有其他可用的选项,我在下面列出:
可以:
- 只需将匹配的作业目录从一个 Jenkins 安装转移到另一个安装即可移动作业。
- 使用新名称创建作业目录的克隆以复制现有作业。
- 可以重命名目录以重命名现有任务。 如果重命名作业,任何其他尝试调用重命名作业的作业也必须重命名。
33. 提几个有用的 Jenkins 插件?
我在下面包含了一些基本插件:
- 复制神器
- 加入
- 绿球
- Maven 2 项目
- Amazon EC2
- HTML 发布者
34. 什么是 Nagios?
监控工具之一是 Nagios。 在 DevOps 文化中,它用于持续监控系统、应用程序、服务和业务流程等。
如果发生故障,Nagios 可以通知技术员工,让他们在业务运营、最终用户或客户受到影响之前开始故障排除。
您不必解释为什么未检测到的基础设施故障会影响您公司使用 Nagios 的底线。
35. Nagios 是如何工作的?
Nagios 是一个基于服务器的监控系统,作为守护进程或服务运行。 Nagios 定期在同一台服务器上执行插件,它们会联系您网络或 Internet 上的主机或服务器。 Web 界面可用于查看状态信息。
如果发生任何事情,您也可以通过电子邮件或短信收到通知。 Nagios 守护进程像调度程序一样工作,在特定时间执行程序。 它会保存这些脚本的输出并在输出更改时运行新的。
36. Nagios 日志服务器到底是什么?
Nagios 日志服务器使查看日志数据变得更加容易。 设置警报、在可能的危险出现时发出警告、简单地搜索日志数据以及快速审核任何系统都是 Nagios Log Server 擅长的事情。
我们可以使用 Nagios Log Server 在一个地方以高可用性接收所有日志数据。
37. Nagios 中的状态跟踪是什么?
它用于跟踪事物。 当为主机或服务启用跟踪时,Nagios 将密切关注该主机或服务,并在检查结果输出中记录它注意到的任何更改。
你也可以说,“这对后续检查日志文件很有帮助”,具体取决于你和面试官的对话。 主机或服务检查的结果仅在主机或服务自上次检查后状态发生变化时才会在典型情况下报告。”
38. 究竟什么是容器?
容器用于创建从开发人员的笔记本电脑到测试环境,再到生产环境的一致计算环境。 容器是包含整个运行时环境的单个包:程序及其所有依赖项、库、其他组件和执行它所需的配置文件。
通过容器化应用程序平台及其依赖项,消除了操作系统分布和支持基础设施方面的差异。
39. Docker 镜像到底是什么?
Docker 容器来自 Docker 镜像。 换句话说,Docker 镜像用于构建容器。 镜像是使用 build 命令构建的,运行时会形成一个容器。 Docker 注册表(例如 registry.hub.docker.com)存储图像。
图像是由其他照片层构成的,因为它们可以变得相当大,从而允许在通过网络传输图像时传递最少量的数据。
40. Docker 容器到底是什么?
Docker 容器包括程序及其所有依赖项,但它们与其他容器共享内核,并在主机操作系统的用户空间中作为单独的进程运行。 Docker 容器不需要任何特殊的基础设施来运行:它们可以在任何机器、任何基础设施和任何云中运行。
您可以通过生成 Docker 映像然后执行它,或者使用来自 Dockerhub 的 Docker 映像来构建 Docker 容器。 Docker 容器本质上是运行时 Docker 镜像。
41. Dockerfile 的用途是什么?
Docker 可以从 Dockerfile 读取指令并自动为您生成图像。
Dockerfile 是一个文本文件,其中包含用户可用于从命令行创建映像的所有命令。 用户可以使用 docker build 自动构建连续执行大量命令行指令的构建。
42. 什么是“结对编程”?
结对编程是一种工程方法,其中两个程序员在相同的系统、设计和代码上进行协作。
他们坚持“极限编程”的原则。 在这种情况下,一名程序员被称为“司机”,而另一名程序员被称为“观察员”,他们不断检查项目的进度,以发现任何进一步的困难。
43. 什么是厨师?
它是一个强大的自动化平台,可将基础架构转换为代码。 您可以使用此工具创建自动化操作的脚本。
44. 蓝/绿部署模式到底是什么?
蓝绿模式是一种持续部署的应用程序发布方法,其重点是逐步将用户流量从程序或服务的先前功能版本过渡到几乎相同的新版本——这两个版本都在生产中运行。
蓝色环境代表程序的先前版本,而绿色环境代表当前版本。 生产流量将逐步从蓝色环境转移到绿色环境,一旦完全转移,蓝色环境将仅在需要回滚的情况下保持暂停。
45.什么是Memcached?
Memcached 是一种完全免费和开源的分布式内存对象缓存技术。 这通常用于动态 网络应用 通过在 RAM 中缓存数据来管理内存。 这减少了必须查询外部源的次数。 减少数据库负载还有助于加快动态在线应用程序的速度。
46. Memcached有什么特点?
以下是 Memcached 最显着的一些特性:
- 更新的对象使用 CAS 令牌存储。
- 为了使代码更具可读性,使用了回调。
- 使用 GetDelayed 减少响应时间或结果所需的时间。
- 要与新客户端一起使用,请创建一个二进制协议。
- 对于复杂数据的使用,提供了 Igbinary 数据选项。
47. 列举几个有用的网络监控工具?
以下是一些最流行的网络监控工具:
- Splunk的
- 冰加 2
- Wireshark的
- Nagios的
- 开放网管系统
48. 建立 DevOps 管道有哪些障碍?
在这个技术爆炸的时代,DevOps 提出了各种各样的问题。 大多数时候,它与数据迁移和快速集成新功能有关。 如果数据迁移失败,系统可能会变得不稳定,这可能会导致进一步的问题。
但是,在 CI 系统内部,这可以通过使用功能标志来处理,这有助于增量产品发布。 这与回滚功能一起,可以帮助缓解一些问题。
49. Secure Shell 的目的究竟是什么?
SSH 通常用于链接两台计算机并远程操作它们。 SSH 主要由运营团队使用,因为运营团队将处理需要远程访问管理系统的琐事。
开发人员也将使用 SSH,尽管程度低于运营团队,因为他们大部分时间都在本地系统上工作。 如前所述,DevOps 开发和运营团队将互动和合作。
当运营团队遇到问题并需要开发团队的帮助时,将使用 SSH。
50. CBD 到底是什么?
CBD,也称为基于组件的创建,是一种新的产品开发方法。
这种策略的开发人员不是从头开始,而是总是寻找现有的定义良好、经过测试和确认的组件来组合和组装成产品。
结论
顶级 DevOps 面试问题和答案现已完成。 DevOps 不仅对加快软件开发至关重要,而且对提高软件质量也至关重要。
DevOps 带来了全新的态度、敏捷的技术和智能技术,所有这些都可以共同实现这一目标。 DevOps 还可以帮助检测代码错误、改善团队沟通并降低软件开发的总成本。
发表评论