zoukankan      html  css  js  c++  java
  • DevOps

    DevOps 简史

          IT 行业的当前状态受技术进步在整个历史中所产生的连锁效应所影响。不时出现的新技术极大地改变了世界运转的方式。最近,技术进步似乎开始以惊人的速度出现。自从互联网出现以来,信息的传播和新技术的发展速度一直在增加。DevOps教程:DevOps 面试题

          云计算预示着技术的又一次转变,随着新技术的发现,该技术将继续影响企业的运营方式。区块链是新技术的又一个例子,它具有巨大的潜力,可以颠覆许多行业---从银行到房地产甚至视频游戏行业开展业务的方式。尽管新技术影响软件行业,但文化转变也同样如此。

          DevOps 是不断变化的企业文化和新技术的结合。向 DevOps 的转变涉及拥抱开放式沟通,透明度和跨学科团队合作。DevOps 背后的想法是打破孤岛,开放工作空间以进行协作和讨论。在了解事物本质的过程中,探知它的来源以及它为什么会变得突出通常是很有帮助的。

    关于DevOps 是什么和不是不是什么,有很多信息,但关于 DevOps 的历史却没有很多信息。 这是关于 DevOps 如何成为当今流行话题的简短历史,以及为什么了解它的根源是理解它的重要一步。

    DevOps 的来龙去脉

          如果 DevOps 拥有出生证明,则将父亲的名字写为 Patrick Debois。帕特里克(Patrick)对从各个角度学习 IT 感兴趣,他于 2007 年开始从事大型数据中心迁移工作,并负责测试。在这个项目中,他意识到,在诸多项目中遇到的挫折感,源于问题的开发端与围栏另一侧的运营孤岛之间要不断地来回切换。他意识到,在这两个世界之间进行项目导航时浪费了很多时间和精力,但是它们之间的鸿沟似乎太大了、无法弥合。

          后来,在 2008 年在加拿大多伦多举行的一次敏捷会议上,一个名叫安德鲁·谢弗(Andrew Shafer)的人试图组织一次名为“敏捷基础设施”的聚会。当帕特里克(Patrick)出席会议时,他是唯一的一位。安德鲁从他的帖子中收到了很多负面反馈,甚至没有参加自己的会议。但是,帕特里克(Patrick)对于认识一个志趣相投的人感到非常兴奋,以至于他在会议上找到了他并在走廊上进行了讨论。他们成立了一个讨论组,供其他人发布有关如何解决当年下半年开发与运营之间的鸿沟的想法。

          最初,人们的兴趣不太大,但并没有得到很多反馈。2009年6月,John Allspaw 和 Paul Hammond 进行了题为 “ 10+ 部署一天:Flickr上的 Dev 和 Ops 合作”的演讲。我们的朋友帕特里克(Patrick)偶然在比利时的家中观看了该演示文稿的流媒体视频,并立即引起了他的共鸣。他意识到这正是他一直在寻找的解决方案。在这次演讲的鼓舞下,他发出了一个召集开发人员和系统管理员的号召,以从里到外大家聚集在一起,讨论开始弥合两个不同领域之间差距的最佳方法。

           他将这件事命名为 DevOpsDays,该事件发生在 2009 年 10 月的最后几天。该事件引起了这两个领域的专家的广泛关注,并引发了 Twitter 上的热烈讨论,其中话题标签很快缩短为 DevOps。不久之后,一些规模较小的科技企业就试图将 DevOps 实践以及为帮助这些新组建的团队而构建的工具结合在一起。在开始使用他们的想法之后,DevOps 设法取得了基层的支持。

           最后,2011年3月,Gartner 的 Cameron Haight 提出了他对未来几年 DevOps 轨迹的预测。他对技术对行业的影响持乐观态度,因此引起了对于 DevOps 运动的更多关注,不久之后,各种规模的企业开始采用这些新做法。自敏捷开发以来,DevOps 正式成为 IT 行业的下一个重要事项。

    为什么 DevOps 的历史很重要

          目前,您可能会以为自己刚刚发现了一个新的鸡尾酒故事,但是 DevOps 的发展历史对于理解什么是 DevOps 及其重要性至关重要。DevOps 诞生于开发人员和运营领导者的协作,他们在一起表达他们对行业以及如何最好地完成工作的想法和关注。这个想法源于要帮助的人。DevOps的力量在于支持它的文化中,从而使人们的思想观念从孤岛上移开了。将您的组织转变为 DevOps 文化并不像购买一些新的企业软件系统那么简单(尽管有很多可以帮助完成该过程)。DevOps 并非单一产品,它是从适应和持续改进的需求演变而来的。这意味着 DevOps 过渡过程永远不会真正完成,因为系统本身应该处于不断发展和完善的状态。DevOps团队由跨学科的团队成员组成,他们都致力于实现更好的协作这一单一目标。

          DevOps使团队能够以更快的速度和更高的质量标准来构建、测试和部署,这要归功于这些工具本身而不是工具所带来的协作。在没有适当调整企业文化和心态的情况下为 DevOps 利用技术堆栈,只会使你止步于技术改进。DevOps的力量在于团队中每个成员之间的沟通和共享目标。


    下面列出了常见的DevOps面试问题和答案。
    1) 解释DevOps?
    DevOp 是两个词的组合,一个是软件 Development(开发)、另一个是 Operations (运营)。它允许一个团队处理从开发到测试部署运营的整个应用程序生命周期。DevOps 可帮助您减少软件开发人员、质量保证(QA)工程师和系统管理员之间的联系。

    2) DevOps 的原则是什么?
          DevOps 背后的原则是:

              1.持续部署      2.基础设施即代码     3.自动化     4.监控     5.安全

    3) DevOps 对开发人员有何帮助?
          DevOps 对开发人员修复错误并快速实现新功能非常有帮助。它还有助于团队成员之间更透明的沟通。

    4) 解释一些流行的 DevOps 工具?
         下面是一些流行的 DevOps 工具,例如:

    1. Jenkins: Jenkins 是一个 DevOps 工具,用于监视重复任务的执行。Jenkins 允许持续集成的软件,安装在进行集中构建的服务器上。
    2. Ansible: Ansible 是领先的DevOps工具。 Ansible 是一个开源 IT 引擎,可自动执行应用程序部署、云供应、内部服务编排和其他 IT 工具。
    3. Nagios: Nagios 是 DevOps 较为有用的工具之一。它可以确定错误,并在网络、基础架构、服务器和日志监视系统的帮助下进行纠正。
    4. Docker: Docker 是一种高端 DevOps 工具,它允许在多个系统上构建,发布和运行分布式应用程序。
    5. Git: Git 是一个开源的分布式版本控制系统,每个人都可以免费使用。它旨在快速高效地处理各种规模的项目。

    5) 实施 DevOps 的前提条件是什么?
          以下是实现 DevOps 的一些有用的先决条件:

               1.团队成员之间的适当沟通。     2.至少一个版本控制软件。 3.自动化测试。 4.自动化部署。

    6) DevOps 在应用开发和基础架构方面的核心操作是什么?
    DevOps 应用开发和基础架构的核心操作是:
    应用开发

                1.代码建设     2.代码覆盖率     3.单元测试      4.打包      5.部署

    基础架构

                1.供应     2.配置     3.编排     4.部署

    7) DevOps 的关键组件是什么?
    DevOps的最重要的关键组件是:

                 1.持续集成     2.持续测试     3.持续交付     4.持续贩卖

    8) 什么是 Vagrant?
                 Vagrant 是 DevOps 的工具,可以创建和管理用于测试和开发软件的虚拟化环境。

    9) DevOps 工作文化在技术和业务上有什么好处?
       以下是 DevOps 工作文化的技术和业务优势:
       技术优势

            1.不要解决太复杂的问题。     2.持续交付软件。     3.更快的错误解决。

    业务优势

            1.最稳定的操作环境。 2.有更多时间可用来增加产品价值。 3.更快地交付功能以使客户满意。

    10) 什么是 Scrum?
    Scrum 用于通过迭代和增加实践将复杂的软件和产品开发任务划分为较小的块。Scrum 由三个角色组成,例如:

           1.产品拥有者      2.Scrum 大师     3.团队

    11) 什么是版本控制?
         它是一个随时间记录对一个文件或一组文件的更改的系统,因此您可以调用特定版本。
        版本控制系统由一个中央共享存储库组成,团队成员可以在其中将更改提交到一个文件或一组文件中。它允许:

    • 将文件还原到以前的状态。
    • 比较一段时间内的变化。
    • 将整个项目还原到以前的状态。
    • 查看谁修改了文件中的内容。

    12) DevOps 中使用了哪些脚本工具?
         DevOps 中使用了Python和Ruby脚本工具。

    13) AWS 在 DevOps 中的作用是什么?
         AWS 是 Amazon 提供的基于云的服务,可通过无限的计算能力和存储来确保可扩展性。它使 IT 企业能够开发和交付经验丰富的产品,并在云上部署应用程序。

    14) 为什么开源工具可以提升 DevOps?
        由于 DevOps 在组织构建、发布、变更管理和基础架构管理领域的各个方面都具有自动化的特点,开源工具被大部分组织用于流水线中。

    15) 组织剧本作为角色的需求是什么?
          在考虑删除Oracle DB后MySQL安装的任务时,作为角色的组织剧本为任何角色提供了更多的可靠性和可重用性。在安装java之后,安装MySQL还需要另一个需求。在这两种情况下,都需要安装MySQL,但是如果没有角色,就需要分别为这两种用例编写剧本。不过,一旦使用了角色,通过调用site.yaml中的逻辑,就可以创建任意次数的MySQL安装角色。

    16) 有多少云平台可用于 DevOps 实施?
    以下是用于 DevOps 实施的一些云计算平台,例如:

                    1.谷歌云     2.亚马逊网络服务     3.微软Azure

    17) 解释两因素身份验证?
             两因素身份验证是一种安全性方法,用户可以通过它提供来自不同类别的两种身份验证方法。18)PTR在DNS中的用途是什么?
             PTR是用于反向DNS查找的指针记录。

    18) PTR 在 DNS 中的用途是什么?
             PTR 是用于反向 DNS 查找的指针记录。

    19) 说出一些网络监视工具?
    一些最重要的网络监视工具是:

               1.Nagios       2. OpenNMS      3.Splunk      4.Icinga 2       5.Wireshark

    20) 列出三个重要的DevOps KPI?
    三个最重要的DevOps KPI是:

               1.部署频率        2.失败部署的百分比       3.平均故障恢复时间

    21) 解释关于 DevOps 的结对编程?
            对编程是极限编程规则的一种工程实践。在这种情况下,两个程序员使用相同的设计或算法在同一系统上工作。
    一个程序员充当驱动者,另一个充当观察员,他不断监视项目进度以发现问题。这些角色可以在任何时间点互换,而无需事先通知。

    22) 什么是CBD?
           基于组件的开发(CBD)是进行产品开发的独特方法。在这种方法中,开发人员始终在寻找现有的定义良好、经过测试和验证的组件,以将它们组合并组装成产品,而不是从头开始开发。

    23) 给出 DevOps 自动化的定义?
           自动化是 DevOps 实践的关键需求,使一切自动化是 DevOps 的基本原则。自动化从开发人员计算机上的代码生成开始,直到将代码推送到代码,以监视生产中的应用和系统。
           DevOps 中的自动化可提高速度、一致性、更高的准确性、可靠性、并增加交付数量。

    24) 什么是 DevOps 流水线?
           软件工程团队中的流水线是一组自动化流程,使 DevOps 专业人员和开发人员能够可靠、高效地将其代码编译、生成并部署到生产平台。

    25) 什么是Azure DevOps?
           Azure DevOps 也称为 Microsoft Visual Studio 团队服务(VSTS)。它是为云构建的一组协作开发工具。 VSTS通常被用作独立术语,Azure DevOps 是一个由几种不同产品组成的平台,例如:

                1.Azure Test Plans     2.Azure Boards      3.Azure Repos   

                     4.Azure Pipeline             5.Azure Artifacts

    26) 哪些因素使 AWS DevOps 具有高度可访问性?
           以下是使AWS DevOps广受欢迎的一些原因,例如:

         1.AWS CloudFormation     2.AWS EC2      3.AWS CloudWatch     4.AWS CodePipeline

    27) DevOps 中的构建是什么?
              构建是一种方法,其中将源代码放在一起以检查其是否作为单个单元工作。在构建创建过程中,将对源代码进行编译、测试、检查和部署。

    28) 说明哪个场景中使用了 SSH?
              您可以使用SSH登录到远程计算机并在命令行上工作。此外,您还可以使用它来隧穿系统,以促进不安全网络上的两个主机之间的安全加密通信。

    29) AWS中如何执行基础架构代码?
        在 AWS 中:

    • 基础结构的代码将采用简单的 JSON 格式。
    • 此 JSON 代码将组织到称为模板的文件中。
    • 这些模板可以部署在 AWS DevOps 上,然后作为堆栈进行管理。
    • 稍后,CloudFormation服务将在堆栈中执行创建、删除、更新等操作。

    30) 请解释 Git Bisect?
         Git Bisect 使用二进制搜索帮助查找哪些提交引入了错误。



    归类: 面试题收集整理

  • 相关阅读:
    Java 获取代码运行时间
    CentOS7 配置阿里yum源
    MySQL优化服务器设置(MySQL优化配置文件)
    Mysql查看状态,连接数,线程数以及Mysql性能监控工具doDBA的使用以及优化
    SpringBoot专栏(四) -- SpringBoot+MyBatis集成Druid连接池
    SpringBoot专栏(三) -- SpingBoot集成MyBatis框架
    利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件
    在Linux上搭建Jmeter测试环境
    MySQL 修改最大连接数(max_connections)失效,上限214问题
    javase基础
  • 原文地址:https://www.cnblogs.com/lz1996/p/13905215.html
Copyright © 2011-2022 走看看