大家好,这一期呢,我们谈一下dev ops的面试题。
    第1题,解释一下什么是dev ops?
    Dev ops涉及如下几个方面:商业,开发和运营。总的来说,是一个连接的桥梁,是一个统一的汇总。
    不仅仅是关于工具的,也是关于人际沟通和流程处理的。
    是由敏捷处理过程所启发而产生的。
    是关于开发,发布,和运营自动化的处理。
    会加快向终端用户提供应用服务的速度。
    会根据反馈进行不断的改进。
    第2题,介绍一下dev ops能够成功实现的一些前提。
    在公司高层有强有力的支持。
    相应的改变应该通知到整个公司。
    软件开发的版本控制非常重要。
    合规的自动化工具处理。
    自动测试。
    自动配置发布。
    第3题, 怎样才能把dev ops做的最好?
    第一, 一定要具体问题具体分析, 与实际的公司的目标相结合起来,才是真正有效的。
    第二,要鼓励开发和运营部门的合作与沟通。
    第三,要尝试把所有的环节都能够自动化。
    第四,工具的集成,应该做得非常好。
    第五,没有ci/cd的实践就没有成功的dev ops实施。
    第六,在必要的时候,ops团队应该跟开发团队进行沟通, 写一些必要的定制工具来监测和管理应用的开发和发布。
    第七,一定要鼓励终端用户提出自己的改进意见从而可以连续的改善系统的性能,为提供高质量的软件应用打好基础。
    第4题, Dev ops的关键是什么?
    Continuous integration.
    Continuous testing.
    Continuous delivery.
    Continuous monitoring.
    第5题,解释一下continuous integration。
    连续性的集成在敏捷流程中非常重要。设想开发者在一个sprint中开发了一些新的功能。代码提交以后,这些新的代码会集成到整套软件系统当中去。这个过程的触发一般是通过代码提交事件或者某个时间点来完成。
    集成完成以后,可以尽快的从其他人那里获得反馈。
    第6题, 解释一下continuous delivery。
    Continuous delivery是continuous integration的延伸。一般会提供qa的输出,staging的输出,最后要提供生产环境下的输出结果。
    第7题, 解释一下continuous testing。
    在continuous integration和continuous delivery之间,一个重要的环节就是continuous testing。这个环节要保证所有的有效的unit testing和automation testing能够通过。
    第8题,解释一下continuous monitoring。
    Continuous monitoring主要是监测程序的性能。
    第9题, 如何一步步的实施dev ops?
    第1步,当然是要分析目前已经存在的流程,观察一段时间,看出每一部分的运作需求, 了解整个产品的部署环境。
    第2步就是快速建立一种试验型的演示方案,一个非常简单的可以用自动化流程来实现所有产品部署, 测试和发布的过程。
    第3步,真正的实施dev ops模式, 然后使得continuous integration, delivery, testing和monitoring都能够在这个流程中得到体现。
    第10题, 在瀑布开发流程中,能够使用dev ops吗?解释一下敏捷过程在dev ops实施中的优势。
    在瀑布开发流程中,所有的需求在开始就被集中定义好了,接下来就是做系统的设计,然后是系统的实现,在这个过程中,测试部门会有一个很长时间的等待,测试部门完成以后就要把它发布给终端用户,在这个整个过程中,我们很难及时的获得中间的反馈。
    在敏捷编程中,就不太一样,开发和运营这部分都可以提供敏捷模式,在开发的整个流程中不断的进程进行集成测试,从而不断的获取需求和开发层面的反馈。通过提供短期的版本发布,从而调动各个部门进行快速的开发迭代和运营纠错。
    第11题, Continuous delivery和continuous deployment的区别是什么?
    continuous delivery,它解决的是代码这一层的稳定性。
    Continuous deployment是版本这一层的管理,从测试版本, 到staging版本, 到正式的生产环境版本。
    第12题, 解释一下你在dev ops工程中的特长。
    dev ops的工作经常是时间不固定的,有时候系统出现问题以后, 可能需要提供7天24小时的维护和支持。
    这项工作还要求对各种不同的技术如.net, j2ee, nodejs, php, python, golang, ruby on rails等等具有自动配置的能力。
    还要求对于敏捷环境下的工具,以及端到端的自动化测试,都要很熟悉。
    第13题, 在当今工业生产当中哪些dev ops的工具是比较流行的?
    jira
    git
    bitbucket/github/gitlab
    jenkins
    bamboo
    docker
    splunk
    chef
    nexus
    第14题,解释一下比较流行的工具在dev ops的模式下扮演的角色。
    planning:
    Jira负责的是项目计划和问题管理。
    Continuous integration.
    Git是版本控制。
    jenkins是开源的continuous integration,工具它也可以在continuous delivery中提供帮助。
    sonarqube可以用来做代码分析。
    Artifactory和nexus用来做成型的二进制文件管理。
    Continuous delivery.
    chef 配置管理和应用发布。
    Continuous monitoring.
    splunk
    第15题, 配置管理中的基础设施是指什么?说几个比较流行的工具。
    配置管理包含了多种工具下的自动化生成版本和基础设施的操作。它的终极目标就是让服务器准备好,这里面包括安装系统,程序包网络配置等等这些应用发布需要的东西。
    第16题,有哪些脚本工具被应用在dev ops中?
    Python, ruby.
    第17题, 解释一下在dev oops中使用到的典型的角色。
    dev ops architect
    dev ops engineer
    第18题, 你有过dev ops的云端经验吗?
    云端经验一般包括如下几个aws, azure, Google cloud, ali cloud.
    第19题, 说一下dev ops实施成功的几个指标。
    第1个指标,就是能够快速提供想要的发布版本,尤其是从开发一直通向生产环境的速度。
    第2个指标,能够跟踪在不同环境下产生的错误。通过跟踪这些错误,可以更快的提供下一个纠错版本。
    第3个指标,要有回退机制,一旦在某一个流程中发现错误,没有成功的提供发布版本,就应该有能力回退到上一个版本。
    第4个指标, 单元测试,功能测试是必须要有的, 这个方面可以保证代码的健壮性。
    第5个指标,能够衡量和检测版本从失败到恢复的时间。
    第6个指标,应用系统发布以后的运行性能也是一个关键的考量因素。
    第7个指标,bug的数量跟产品的质量是成反比的。这个层面需要被监测。
    第20题, 你对dev ops工作的期望是怎样的?
    这份工作应该包含从端到端的程序开发和发布的整个流程中,尤其是让开发和运营团队能够一起协同工作, 并了解各自团队的不同观点, 从而可以改善和提高整体团队的生产力。
    码字不易,请关注点赞!