DevOps面试问题总结1

DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。下面为大家分享DevOps系列的面试问题

持续整合问题

问题一:持续集成是什么意思? 

 

我将建议您通过给出持续集成(CI)的小定义来开始这个答案。这是一种开发实践,要求开发人员每天多次将代码集成到共享存储库中。然后通过自动构建验证每个签入,允许团队尽早发现问题。 我建议您解释一下如何在以前的工作中实施它。您可以参考下面给出的示例:

在上图中:

开发人员将代码签入其私有工作区。 完成后,他们将更改提交到共享存储库(版本控制存储库)。 CI服务器监视存储库并在发生更改时检出更改。 然后,CI服务器将提取这些更改并构建系统,并运行单元和集成测试。 CI服务器现在将通知团队成功构建。 如果构建或测试失败,CI服务器将向团队发出警报。 该团队将尽早解决问题。 这个过程不断重复。

 

问题二:为什么需要开发和测试的持续集成?

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

 

问题三:持续集成的成功因素是什么? 

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

维护代码存储库 自动化构建 使构建自我测试 每个人每天承诺到基线 应该构建每个提交(到基线) 保持快速构建 在生产环境的克隆中进行测试 让您轻松获得最新的可交付成果 每个人都可以看到最新版本的结果 

 

问题四:解释如何将Jenkins从一台服务器移动或复制到另一台服务器? 

我将通过将jobs目录从旧服务器复制到新服务器来完成此任务。有多种方法可以做到这一点; 你可以:

只需复制相应的作业目录,即可将作业从一个Jenkins安装移动到另一个。 通过使用其他名称克隆作业目录来制作现有作业的副本。 通过重命名目录来重命名现有作业。请注意,如果更改作业名称,则需要更改尝试调用重命名作业的任何其他作业。

 

问题五:解释如何在Jenkins中创建备份和复制文件? 

要创建备份,您需要做的就是定期备份JENKINS_HOME目录。这包含所有构建作业配置,从属节点配置和构建历史记录。要创建Jenkins设置的备份,只需复制此目录即可。您还可以复制作业目录以克隆或复制作业或重命名目录。

 

问题六:解释如何设置Jenkins工作? 

首先提一下如何创建Jenkins的工作。转到Jenkins首页,选择“New Job”,然后选择“Build a free-style software project”。 然后你可以告诉这个自由式工作的元素:

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

 

问题七:你如何保护Jenkins? 

我保证Jenkins的方式如下所述。如果您有任何其他方式,请在下面的评论部分中提及:

确保Jenkins与我公司的用户目录与适当的插件集成。 确保启用矩阵/项目矩阵以微调访问。 使用自定义版本控制脚本自动化在Jenkins中设置权限/特权的过程。 限制对Jenkins数据/文件夹的物理访问。 定期对其进行安全审核。

 

持续测试面试问题

问题一:什么是连续测试? 

我将建议您遵循下面提到的解释: 持续测试是执行自动化测试的过程,作为软件交付管道的一部分,以获得与最新构建相关的业务风险的即时反馈。通过这种方式,每个构建都会持续测试,允许开发团队获得快速反馈,以便他们可以防止这些问题进入软件交付生命周期的下一阶段。这大大加快了开发人员的工作流程,因为无需手动重建项目并在进行更改后重新运行所有测试。

 

问题二:什么是自动化测试?

自动化测试或测试自动化是自动化手动过程以测试被测应用程序/系统的过程。 自动化测试涉及使用单独的测试工具,使您可以创建可以重复执行的测试脚本,而不需要任何手动干预。

 

问题三:自动化测试有哪些好处? 

我列举了自动化测试的一些优点。在您的答案中包含这些内容,您可以添加自己的经验,了解Continuous Testing如何提供帮助:

支持执行重复的测试用例 有助于测试大型测试矩阵 启用并行执行 鼓励无人看管的执行 提高准确性,从而减少人为产生的错误 节省时间和金钱

 

问题四:如何在DevOps生命周期中自动化测试?

我在下面提到了一个通用流程,您可以参考: 在DevOps中,开发人员需要将源代码中的所有更改提交到共享存储库。像Jenkins这样的持续集成工具每次在代码中进行更改时都会从此共享存储库中提取代码,并将其部署到Selenium等工具进行的连续测试中,如下图所示。 通过这种方式,与传统方法不同,代码中的任何更改都会不断进行测试。

 

问题五:为什么持续测试对DevOps很重要?

您可以通过说“连续测试允许立即测试代码中的任何更改来回答这个问题。这避免了在周期结束时进行“大爆炸”测试所产生的问题,例如发布延迟和质量问题。通过这种方式,持续测试可以促进更频繁和更好的质量发布。

 

问题六:连续测试工具的关键要素是什么? 

连续测试的关键要素是:

风险评估:它涵盖风险缓解任务,技术债务,质量评估和测试覆盖范围优化,以确保构建准备好向下一阶段发展。

策略分析:确保所有流程符合组织不断发展的业务和合规性要求。 

可追溯性:确保满足真正的要求,不需要返工。对象评估用于确定哪些需求存在风险,按预期工作或需要进一步验证。 

高级分析:它在静态代码分析,变更影响分析和范围评估/优先级划分等领域使用自动化,以便首先防止缺陷并在每次迭代中完成更多任务。 

测试优化:它确保测试产生准确的结果并提供可操作的结果。方面包括测试数据管理,测试优化管理和测试维护 

服务虚拟化:它确保访问真实的测试环境。服务可视化使您能够访问所需测试阶段的虚拟表单,从而缩短测试环境设置和可用性的浪费时间。

 

问题七:您熟悉哪种测试工具以及该工具的优点是什么? 

这里提到您使用的测试工具,并相应地构建您的答案。我在下面提到了一个例子: 我曾在Selenium上工作以确保高质量和更频繁的发布。

Selenium的一些优点是:

它是免费和开源的 它拥有庞大的用户群和帮助社区 它具有跨浏览器兼容性(Firefox,Chrome,Internet Explorer,Safari等) 它具有出色的平台兼容性(Windows,Mac OS,Linux等) 它支持多种编程语言(Java,C#,Ruby,Python,Pearl等) 它有新的和定期的存储库开发 它支持分布式测试

 

问题八:Selenium支持哪些测试类型? 

Selenium支持两种类型的测试:

  • 回归测试:它是在修复错误的区域周围重新测试产品的行为。 

  • 功能测试:它指的是单独测试软件功能(功能点)。

 

问题九:什么是Selenium IDE? 

我的建议是通过定义Selenium IDE来开始这个答案。它是Selenium脚本的集成开发环境。它作为Firefox扩展实现,允许您记录,编辑和调试测试。Selenium IDE包含整个Selenium Core,允许您在他们将运行的实际环境中轻松快速地记录和回放测试。 现在,您的答案中包含一些优势。凭借自动完成支持和快速移动命令的能力,无论您喜欢何种类型的测试,Selenium IDE都是创建Selenium测试的理想环境。

 

问题十:Selenium中的Assert和Verify命令有什么区别? 

下面提到了Assert和Verify命令之间的区别:

断言命令检查给定条件是真还是假。假设我们断言给定元素是否存在于网页上。如果条件为真,则程序控制将执行下一个测试步骤。但是,如果条件为false,则执行将停止,并且不会执行进一步的测试。 Verify命令还会检查给定条件是true还是false。无论条件是真还是假,程序执行都不会停止,即验证期间的任何故障都不会停止执行,并且所有测试步骤都将被执行。

 

配置管理面试问题

问题一:配置管理流程的目标是什么? 

配置管理(CM)的目的是通过使开发或部署过程可控和可重复,确保产品或系统在其整个生命周期中的完整性,从而创建更高质量的产品或系统。 CM流程允许有序管理系统信息和系统更改,以便:

修改能力, 提高性能, 可靠性或可维护性, 延长寿命, 降低成本, 降低风险 责任或正确的缺陷。

 

问题二:资产和配置项有什么区别? 

我认为,你应该首先解释资产。它具有财务价值以及附加的折旧率。IT资产只是它的一个子集。任何具有成本的组织和组织都将其用于资产价值计算和税收计算中的相关收益属于资产管理,此类项目称为资产。 另一方面,配置项可能有也可能没有分配给它的财务值。它不会有任何与之相关的折旧。因此,它的生命不依赖于其财务价值,而是取决于该项目对该组织过时的时间。

然后,您可以举例说明两者之间的相似性和差异:

  •  1)相似性: 服务器 - 它既是资产又是CI。

  •  2)差异: 构建 - 这是一种资产,但不是CI。

 

问题三:IAC如何适用于DevOps方法?它实现了什么目的?

作为代码的基础架构(IAC)是一种IT基础架构,运营团队可以使用它来自动管理和通过代码进行配置,而不是使用手动过程。 更快部署的公司会将软件等基础设施视为可以使用DevOps工具和流程管理的代码。利用这些工具,您可以更轻松,快速,安全,可靠地更改基础架构

 

问题四:Puppet,Chef,SaltStack和Ansible中哪一个是最好的配置管理(CM)工具?为什么?

这取决于组织的需求,因此在所有这些工具上提到几点:

Puppet是最古老,最成熟的CM工具。Puppet是一个基于Ruby的配置管理工具,虽然它有一些免费功能,但Puppet很棒的大部分内容仅在付费版本中可用。不需要大量额外功能的组织会发现Puppet很有用,但那些需要更多自定义的组织可能需要升级到付费版本。 

Chef是用Ruby编写的,因此可以由熟悉该语言的人定制。它还包括免费功能,如果需要,还可以从开源升级到企业级。最重要的是,它是一个非常灵活的产品。

Ansible是一个非常安全的选项,因为它使用Secure Shell。它是一个简单的工具,但除了配置管理之外,它还提供了许多其他服务。它非常容易学习,因此非常适合那些没有专职IT人员但仍需要配置管理工具的人。 

SaltStack是基于python的开源CM工具,适用于大型企业,但其学习曲线相当低。

问题十二:什么是Chef? 

通过定义Chef来开始这个答案。它是一个功能强大的自动化平台,可将基础架构转换为代码 Chef是一个工具,您可以编写用于自动化流程的脚本。 现在您可以解释Chef的架构,它包括:

  • Chef Server:Chef Server是基础架构配置数据的中央存储。Chef Server存储配置节点所需的数据并提供搜索,这是一个功能强大的工具,允许您根据数据动态驱动节点配置。

  • Chef Node: Node是使用Chef-client配置的任何主机。Chef-client在您的节点上运行,与Chef Server联系以获取配置节点所需的信息。由于Node是运行Chef-client软件的机器,因此节点有时被称为“客户端”。

  • Chef Workstation: Chef Workstation是您用来修改cookbook和其他配置数据的主机。

题十三:Chef中的资源是什么? 

我的建议是首先定义资源。资源代表一个基础架构及其所需的状态,例如应安装的软件包,应运行的服务或应生成的文件。 您应该解释资源的功能,包括以下几点:

描述配置项的所需状态。 声明将该项目置于所需状态所需的步骤。 指定资源类型,例如包,模板或服务。 根据需要列出其他详细信息(也称为资源属性)。 分组为配方,描述工作配置。

 

问题十四:Chef的recipe是什么意思?

对于这个答案,我建议你使用上面提到的流程:首先定义recipe。Recipe是描述特定配置或策略的资源集合。配方描述了配置系统部分所需的一切。 定义之后,通过包括以下几点来解释食谱的功能:

安装和配置软件组件。 管理文件。 部署应用程序。 执行其他食谱。

 

问题十五:Cookbook与Chef中的recipe有何不同? 

对此的答案非常直接。您可以简单地说,recipe是资源的集合,主要配置软件包或某些基础设施。Cookbook将recipe和其他信息整合在一起,比单独使用recipe更易于管理。

 

持续监控面试问题

问题一:为什么需要持续监控? 

建议您采用下面提到的流程: 

持续监控可以及时发现问题或缺陷,并采取快速纠正措施,有助于降低组织的费用。 

持续监控提供解决方案,解决三个操作规程,称为:

  • 持续审计 

  • 连续控制监测 

  • 持续交易检查

 

问题二:什么是Nagios? 

您可以通过首先提到Nagios是监控工具之一来回答这个问题。它用于DevOps文化中的系统,应用程序,服务和业务流程等的连续监视。

如果发生故障,Nagios可以向技术人员发出问题警报,允许他们在中断影响业务流程,最终用户或客户之前开始修复流程。使用Nagios,您无需解释为什么不可见的基础架构中断会影响您组织的底线。 现在,一旦定义了Nagios,您就可以提到使用Nagios可以实现的各种功能。 通过使用Nagios,您可以:

  • 在过时的系统导致故障之前规划基础架构升级。 

  • 在出现问题的第一个迹象时应答问题。 

  • 检测到问题时自动修复问题。 

  • 协调技术团队的回应。 

  • 确保您的组织的SLA得到满足。 

  • 确保IT基础架构中断对组织的底线影响最小。 

  • 监控整个基础架构和业务流程。 

这就完成了这个问题的答案。可以根据讨论的方向添加诸如优点等的进一步细节。

 

 

容器化和虚拟化面试问题

问题一:什么是容器?

我的建议是首先解释容器化的必要性,容器用于提供从开发人员的笔记本电脑到测试环境,从登台环境到生产的一致计算环境。 现在给出容器的定义,一个容器由一个完整的运行时环境组成:一个应用程序,以及它所有的依赖项,库和其他二进制文件,以及运行它所需的配置文件,捆绑到一个包中。容纳应用程序平台及其依赖项消除了操作系统分发和底层基础架构的差异。

问题二:容器化相比虚拟化有哪些优势?

以下是容器化优于虚拟化的优势:

容器提供实时配置和可扩展性,但VM提供缓慢的配置 与VM相比,容器是轻量级的 与容器相比,VM的性能有限 与VM相比,容器具有更好的资源利用率

 

问题三:什么是Docker镜像?

我建议你使用下面提到的流程: Docker镜像是Docker容器的来源换句话说,Docker镜像用于创建容器。使用build命令创建映像,并且在使用run启动时它们将生成容器。图像存储在Docker注册表中,例如registry.hub.docker.com,因为它们可能变得非常大,图像被设计为由其他图像层组成,允许在通过网络传输图像时发送最少量的数据。 提示:请注意Dockerhub以回答有关预先可用图像的问题。

 

问题四:什么是Docker容器? 

这是一个非常重要的问题,所以请确保不要偏离主题。我建议您遵循下面提到的格式: Docker容器包括应用程序及其所有依赖项,但与其他容器共享内核,作为主机操作系统上用户空间中的独立进程运行。Docker容器不依赖于任何特定的基础架构:它们可以在任何计算机,任何基础架构和任何云中运行。 现在解释如何创建Docker容器,可以通过创建Docker映像然后运行它来创建Docker容器,也可以使用Dockerhub上存在的Docker映像。 Docker容器基本上是Docker镜像的运行时实例

 

问题五:什么是Docker hub?

Docker hub是一个基于云的注册表服务,允许您链接到代码存储库,构建映像并测试它们,存储手动推送的映像以及指向Docker云的链接,以便您可以将映像部署到主机。它为整个开发流程中的容器映像发现,分发和变更管理,用户和团队协作以及工作流自动化提供了集中资源。

 

问题六:Docker与其他容器技术有何不同? 

我认为,您的答案应该包含以下几点:Docker容器易于在云中部署。与其他技术相比,它可以在相同的硬件上运行更多应用程序,使开发人员可以轻松快速创建,可立即运行的容器化应用程序,并使管理和部署应用程序变得更加容易。您甚至可以与您的应用程序共享容器。 如果你还有一些要点可以添加,你可以这样做,但要确保上面的解释在你的答案中。

 

问题七:什么是Docker Swarm?

 你应该通过解释Docker Swarn来开始这个答案。它是Docker的本机群集,它将Docker主机池转变为单个虚拟Docker主机。Docker Swarm提供标准的Docker API,任何已经与Docker守护进程通信的工具都可以使用Swarm透明地扩展到多个主机。 我还建议您添加一些支持的工具:

Dokku Docker Compose Docker Machine Jenkins

 

问题八:Dockerfile用于什么? 

我认为,应该从解释Dockerfile的使用开始。Docker可以通过读取Dockerfile中的指令自动构建图像。 现在我建议你给出一个Dockerfle的小定义。Dockerfile是一个文本文档,其中包含用户可以在命令行上调用以组合图像的所有命令。使用docker构建用户可以创建一个连续执行多个命令行指令的自动构建。

 

问题九:我可以在Docker中使用json而不是yaml作为我的compose文件吗? 

你可以使用json而不是yaml作为你的compose文件,使用带有compose的json文件,指定用于例如的文件名:

docker-compose -f docker-compose.json up

问题十:Docker容器可以扩展多远? 

像谷歌和Twitter这样的大型网络部署,以及像Heroku和dotCloud这样的平台提供商都运行在容器技术上,并行运行数十万甚至数百万个容器。

问题十一:当Docker容器退出时,我会丢失数据吗?

当Dcoker容器退出时,不会丢失数据。在您明确删除容器之前,应用程序写入磁盘的任何数据都会保留在其容器中。即使容器停止,容器的文件系统仍然存在。

 

2、Mongodb熟悉吗,一般部署几台?

笔者回答:部署过,没有深入研究过,一般mongodb部署主从、或者mongodb分片集群;建议3台或5台服务器来部署。MongoDB分片的基本思想就是将集合切分成小块这些块分散到若干片里面,每个片只负责总数据的一部分。  对于客户端来说,无需知道数据被拆分了,也无需知道服务端哪个分片对应哪些数据。数据在分片之前需要运行一个路由进程,进程名为mongos。这个路由器知道所有数据的存放位置,知道数据和片的对应关系。对客户端来说,它仅知道连接了一个普通的mongod,在请求数据的过程中,通过路由器上的数据和片的对应关系,路由到目标数据所在的片上,如果请求有了回应,路由器将其收集起来回送给客户端。

3、如何发布和回滚,用jenkins又是怎么实现?

笔者回答:发布:jenkins配置好代码路径(SVN或GIT),然后拉代码,打tag。需要编译就编译,编译之后推送到发布服务器(jenkins里面可以调脚本),然后从分发服务器往下分发到业务服务器上。

回滚:按照版本号到发布服务器找到对应的版本推送

4、Tomcat工作模式?

笔者回答:Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。

进入Tomcat的请求可以根据Tomcat的工作模式分为如下两类:

Tomcat作为应用程序服务器:请求来自于前端的web服务器,这可能是Apache, IISNginx等;

Tomcat作为独立服务器:请求来自于web浏览器;

 

5、监控用什么实现的?

笔者回答:现在公司的业务都跑在阿里云上,我们首选的监控就是用阿里云监控,阿里云监控自带了ECS、RDS等服务的监控模板,可结合自定义报警规则来触发监控项。上家公司的业务是托管在IDC,用的是zabbix监控方案,zabbix图形界面丰富,也自带很多监控模板,特别是多个分区、多个网卡等自动发现并进行监控做得非常不错,不过需要在每台客户机(被监控端)安装zabbix agent。

你是怎么备份数据的,包括数据库备份?

笔者回答:在生产环境下,不管是应用数据、还是数据库数据首先在部署的时候就会有主从架构、或者集群,这本身就是属于数据的热备份;其实考虑冷备份,用专门一台服务器做为备份服务器,比如可以用rsync+inotify配合计划任务来实现数据的冷备份,如果是发版的包备份,正常情况下有台发布服务器,每次发版都会保存好发版的包。

 

6,redis集群的原理,redis分片是怎么实现的,你们公司redis用在了哪些环境?

笔者回答:reids集群原理:

其实它的原理不是三两句话能说明白的,redis 3.0版本之前是不支持集群的,官方推荐最大的节点数量为1000,至少需要3(Master)+3(Slave)才能建立集群,是无中心的分布式存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。集群可以将数据自动切分(split)到多个节点,当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。

redis分片:

分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集。当数据量大的时候,把数据分散存入多个数据库中,减少单节点的连接压力,实现海量数据存储。分片部署方式一般分为以下三种:

(1)在客户端做分片;这种方式在客户端确定要连接的redis实例,然后直接访问相应的redis实例;

(2)在代理中做分片;这种方式中,客户端并不直接访问redis实例,它也不知道自己要访问的具体是哪个redis实例,而是由代理转发请求和结果;其工作过程为:客户端先将请求发送给代理,代理通过分片算法确定要访问的是哪个redis实例,然后将请求发送给相应的redis实例,redis实例将结果返回给代理,代理最后将结果返回给客户端。

(3)在redis服务器端做分片;这种方式被称为“查询路由”,在这种方式中客户端随机选择一个redis实例发送请求,如果所请求的内容不再当前redis实例中它会负责将请求转交给正确的redis实例,也有的实现中,redis实例不会转发请求,而是将正确redis的信息发给客户端,由客户端再去向正确的redis实例发送请求。

redis用在了哪些环境:

java、php环境用到了redis,主要缓存有登录用户信息数据、设备详情数据、会员签到数据等

 

7、mysql数据库用的是主从读写分离,主库写,从库读,假如从库无法读取了、或者从库读取特别慢,你会如何解决?

笔者回答:这个问题笔者觉得回答的不太好,对mysql比较在行的朋友希望能给点建议。以解决问题为前提条件,先添加从库数量,临时把问题给解决,然后抓取slow log ,分析sql语句,该优化就优化处理。慢要不就是硬件跟不上,需要升级;要不就是软件需要调试优化,等问题解决在细化。

 

8、elk中的logstash是怎么收集日志的,在客户端的logstash配置文件主要有哪些内容?

笔者回答:input、output两大块配置;input中指定日志(type、path)等,output指定日志输出的目标(host、port)等。

 

9、你在shell脚本中用过哪些语法,case语法会用到哪些地方?

笔者回答:一般会用到if语句、for语句、while语句、case语句以及function函数的定义;case语句为多选择语句,可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。最典型的case语法会用到启动服务脚本的处理。

 

其它问题

问题一:HTTP如何工作? 

与大多数其他协议一样,HTTP协议在客户端和服务器模型中工作。用于发起请求的Web浏览器被称为客户端,并且响应该请求的Web服务器软件被称为服务器。万维网联盟和互联网工程任务组是HTTP协议标准化的两个重要方面。HTTP允许在中间体(例如网关,代理或隧道)的帮助下改进其请求和响应。使用HTTP协议可以请求的资源可以使用称为URL(统一资源定位符)的特定类型的URI(统一资源标识符)来获得。TCP(传输控制协议)用于建立到HTTP使用的应用层端口80的连接。

 

问题二:如何使软件可部署? 

编写软件系统安装和重新配置脚本的能力对于控制和自动化更改至关重要。尽管新软件的实现趋势越来越明显,但旧系统和产品的假设是变化很少且很少,因此难以实现自动化变更。作为一个认识到需要以自动化方式公开配置和设置的专业人士,我将使用控制反转(IoC)和依赖注入,脚本安装,测试工具,关注点分离,命令行工具等概念,和基础设施作为代码。

 

问题你三:DevOps做的最重要的事情是什么? 

DevOps帮助做的最重要的事情是尽可能快地将更改投入生产,同时最大限度地降低软件质量保证和合规性的风险。这是DevOps的主要目标。但是,DevOps还有许多其他积极的副作用。例如,更清晰的沟通和团队之间更好的工作关系,从而创造一个压力较小的工作环境。

 

问题五:什么是双因素身份验证?

双因素身份验证是一种安全过程,其中用户从不同类别的凭证中提供两种识别方法; 一个通常是物理令牌,例如卡,另一个通常是记忆的,例如安全码。

 

问题六:NoSQL数据库相比RDBMS有哪些优势? 

优点是: 不太需要ETL 支持非结构化文本 能够随时间处理变化 功能广度 能够水平扩展 支持多种数据结构 供应商的选择

 

问题九:您将如何准备迁移? 

回答提示:这个问题评估了您对实际项目的体验,以及它们带来的所有尴尬和复杂性。在您的答案中包括切换,彩排,回滚和前滚,DNS解决方案,功能切换,逐个抽象和自动化等术语。在很少或根本没有现有技术的情况下开发绿地系统总是比处理遗留组件和配置更容易。作为候选人,如果您意识到任何有趣的软件系统实际上将在不断的迁移中,您将看起来适合该角色。

 

问题十:如何确保可追溯性? 

回答提示:此问题探讨了您对指标,日志记录,交易行程和报告的态度。您应该能够确定该度量标准,监视和日志记录需要成为软件系统的核心部分,如果没有它们,软件基本上无法显示维护和诊断。在你的答案中包括SysLog,Splunk,错误跟踪,Nagios,SCOM,Avicode等词。

 

问题十一:您遇到了哪些问题,以及如何以符合团队目标的方式解决这些问题? 

回答提示:这个问题的目的是找出你能在工作中处理压力和不合格的程度。谈谈你的领导技能,以处理和激励团队一起解决问题。谈论CI,发布管理和其他工具,以保持跨学科项目的正常进行。

 

问题十二:您成为DevOps工程师需要做哪些特殊培训或教育? 

回答提示:DevOps更像是一种思维模式或哲学,而不是技能组合。与DevOps Engineers相关的典型技术技能是Linux系统管理,脚本编写以及使用Jenkins和Chef等众多持续集成或配置管理工具之一的经验。这一切归结为,无论你拥有什么技能,重要的是,有能力快速学习新技能以满足需求。这一切都与模式识别有关,并且能够将您的经验与当前需求相结合。熟练掌握Windows和Linux系统管理,脚本开发,理解结构化编程和面向对象设计,以及创建和使用RESTful API的经验需要一个很长的路要走。

 

 

 

 

 

 

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值