DevOps概述
1、下列描述中,不属于典型软件发展三大阶段的是:
A.网络化和服务化
B.软硬件一体化阶段
C.软件成为独立产品
D.软件作坊
正确答案:D
2、”Measure twice, Cut once” 是哪个阶段的典型开发特征?
A.软件成为独立产品阶段
B.软硬件一体化阶段
C.网络化阶段
D.软件作坊阶段
正确答案:B
3、关于软件过程管理,以下哪一种说法是比较贴切的:
A.软件过程管理是软件企业发展到较高层次才需要关心的话题。
B.软件过程管理主要关注软件成本和质量目标的达成。
C.软件过程管理关注的是企业软件过程能力的稳定输出和提升。
D.进入互联网时代,软件过程管理是过于老套的话题。
正确答案:C
4、软件开发的本质难题中哪一个与软件发展阶段没有直接关系?
A.一致性
B.可变性
C.复杂性
D.不可见性
正确答案:D
5、”Code and Fix” 是软件发展哪个阶段的典型开发特征?
A.网络化和服务化
B.软硬件一体化
C.软件作为独立产品
D.互联网时代
正确答案:B
6、以下哪个因素促成了软件成为独立的产品?
A.互联网的出现
B.个人电脑的出现
C.操作系统的出现
D.高级程序设计语言的出现
正确答案:C
7、软件危机和软件工程这两个概念提出时间是?
A.上世纪七十年代
B.上世纪六十年代
C.上世纪八十年代
D.上世纪五十年代
正确答案:B
8、以下描述中,哪几种是网络化和服务化这个阶段的典型软件应用特征?
A.通过CD和DVD等方式支持大容量和快速分发软件拷贝
B.通过SaaS等方式来发布软件系统
C.快速演化、需求不确定
D.用户数量急剧增加
正确答案:B、C、D
9、关于形式化方法的描述当中,不正确的有哪些?
A.这种方法应用范围有限,例如:不适合跟客户讨论需求。
B.这种方法的主要目的是解决软件开发的效率问题
C.这种方法对开发人员技能有较高的要求
D.这种方法是网络化和服务化阶段用来应对软件开发本质四大难题而提出来的
正确答案:B、D
10、关于迭代式方法的说法哪些是比较恰当的?
A.迭代式方法主要特征在于将软件开发过程视作一个逐步学习和交流的过程
B.迭代式方法是指一类具有类似特征的方法
C.迭代式方法是上世纪九十年代中后期才出现的一种方法
D.迭代式方法主要是为了解决软件开发的质量问题
正确答案:A、B
11、DevOps方法的出现具有一定的必然性,与以下哪些软件应用特征相匹配?
A.软件定义世界,软件随处可见
B.软件在社会生活当中扮演了越来越关键的角色
C.软件系统部署环境越来越错综复杂
D.用户需求多变所带来了软件系统的快速演化的要求
正确答案:A、B、C、D
12、DevOps的哪些特点可以有效支撑当前社会对软件系统的期望?
A.虚拟机技术的大量应用
B.敏捷开发、精益思想以及看板方法,支持快速开发、交付、迭代和演化
C.微服务架构设计
D.工具链支持高效率的自动化
正确答案:A、B、C、D
13、在DevOps化的three ways当中,关注质量问题是第二个阶段才需要考虑的。
A.√
B.×
正确答案:B
14、DevOps中的XaaS特指 SaaS、PaaS以及IaaS这三种。
A.√
B.×
正确答案:B
15、DevOps化的Three ways当中,建立反馈机制是二阶段应该实现的目标。
A.×
B.√
正确答案:B
个体软件过程
1、下述各个度量项中,哪一个不是PSP的基本度量项?
A.缺陷
B.风险
C.规模
D.时间
正确答案:B
2、关于面向用户的质量观,我们应该关注如下哪些问题:
A.用户期望的优先级对软件开发的影响?
B.用户期望是否有优先级?
C.真实用户是谁?
D.界面和可操作性是首要的,因为这是用户能直接感受到的。
正确答案:A、B、C
3、PSP当中为什么用缺陷管理替代质量管理?下述说法中正确的是:
A.因为缺陷管理相关的活动(例如,测试等)本来就是软件开发中必须要开展的活动。
B.因为单纯质量管理很难操作。
C.因为缺陷管理和质量管理其实是一回事。
D.因为缺陷往往对应了面向用户质量观中的首要用户期望。
正确答案:B、D
4、关于PROBE估算法,下述各种说法中,不正确的有哪些?
A.PROBE估算结果带着小数,肯定不准确,因而, 不应该在项目估算的时候使用。
B.PROBE方法不需要历史数据。
C.PROBE方法不能用来估算质量。
D.PROBE不能给出精确估算,因而适合用来跟用户讨论需求和规模。
正确答案:A、B、D
5、关于质量路径(Quality Journey),下列说法中哪些不恰当。
A.质量路径与个体软件工程师无关,是团队层面的集体努力。
B.高质量软件产品最终还是需要依赖测试来确保。
C.进入测试之前的高质量,是获得测试之后高质量软件系统的前提条件。
D.质量路径中所列举的方法都是提升开发质量的有效手段,可以随意选择使用。
正确答案:A、D
6、关于评审检查表,下述说法中不恰当的是:
A.项目团队所有人应该共用一份评审检查表,体现统一性
B.评审检查表应该是个性化的
C.评审检查表应该定期更新
D.评审检查表应该保持稳定,确保缺陷不会被遗漏
正确答案:A、D
7、关于PQI,下述说法中不恰当的是:
A.PQI五个分指标都可以超过1.0,比如,设计时间多于编码时间的时候,该分指标就超过1.0了
B.PQI可以用来辅助判断模块开发的质量
C.PQI可以为过程改进提供依据
D.PQI越高越好,最好达到1.0
正确答案:A、D
8、关于评审,下述说法中不恰当是:
A.代码的个人评审也应该通过评审检查表来进行。
B.如果安排了代码的小组评审,那么代码个人评审就可以不用做。
C.代码的个人评审应该安排在单元测试之后,确保评审对象有着较高的质量,提升评审价值。
D.代码的个人评审最好交叉进行,因为阅读自己代码容易产生思维定式,不利于缺陷发现。
正确答案:C、D
9、关于质量的各种定义当中,下述哪些质量属性属于内部属性?
A.可扩展性
B.可移植性
C.可靠性
D.安全性
正确答案:A、B
10、PSP鼓励使用瀑布型生命周期模型。
A.√
B.×
正确答案:B
11、对于初学者来说,代码评审速度可以控制到每小时不超过400行。
A.×
B.√
正确答案:A
12、“高质量的软件开发是计划出来的”
A.√
B.×
正确答案:A
敏捷软件开发
1、下列哪一项更好地描述了敏捷宣言?
A.它包含了许多敏捷团队使用的实践
B.它包含了建立敏捷思维方式的价值观
C.它定义了构建软件的规则
D.它概述了构建软件的最有效方法
正确答案:B
2、你是一家社交媒体公司的开发人员,正在开发一个项目,项目需要一个为企业客户创建私有网站的新功能。 您需要与公司的网络工程师一起确定部署策略,并提出一组工程师可以用于管理站点的服务和工具。 网络工程师希望在你的网络内部部署所有服务,但您和您的团队成员不同意,并且认为服务应该部署在客户的网络上。 为了达成一个协议,该项目的工作已经停止。 哪种敏捷价值最适合这种情况?
A.工作的软件 高于 详尽的文档
B.响应变化 高于 遵循计划
C.客户合作 高于 合同谈判
D.个体和互动 高于 流程和工具
正确答案:C
3、你是一个软件团队的开发人员。 一个用户向你的团队询问有关构建新功能的信息,并以规范的形式提供了需求。 她非常确定这个功能要如何工作,并承诺不会有任何变化。 哪种敏捷价值最适用于这种情况?
A.响应变化 高于 遵循计划
B.工作的软件 高于 详尽的文档
C.客户合作 高于 合同谈判
D.个体和互动 高于 流程和工具
正确答案:B
4、Sean是一个正在构建财务软件的团队的开发人员。 他的团队被要求开发一个新的交易系统。 他和他的团队召开会议来提出他们正在使用的工作流的图景。 然后,他们将流程放在白板上,流程中的每个步骤都有一列。 经过对团队在白板上的工作项目进行了几周观察,他们注意到这个过程中有几个步骤似乎过载了。对于他们来说,下一步应该做什么?
A.在较慢的步骤中使用更多的人力
B.对过载步骤中正在进行的工作项目的数量进行限制
C.与团队合作,在工作进展缓慢的阶段更好地完成工作
D.专注于完成看板上的工作
正确答案:B
5、下列哪一个不是精益原则?
A.识别所有的步骤
B.尽可能晚的做决定
C.消除浪费
D.实施反馈循环
正确答案:D
6、下列哪一个更好地描述了如何使用看板?
A.观察特征如何流经过程,以便团队可以确定如何限制WIP并通过工作流程中的步骤确定最均匀的工作流程
B.跟踪缺陷和问题,并创建解决产品问题的最快途径
C.帮助团队自我组织,并了解工作流程中的瓶颈所在
D.跟踪WIP限制和当前任务状态,以便团队知道他们还有多少工作要做
正确答案:A
7、以下不是经常出现在Kanban上记事贴中的内容
A.完成时间
B.谁在处理这个工作项
C.工作项描述
D.团队名词
正确答案:D
8、一个公司内,各个团队的Kanban列设置应当一致,便于公司管理。
A.×
B.√
正确答案:A
9、在制品规模越小越好,因为这样可以优化前置时间,并且团队的效率会变高。
A.√
B.×
正确答案:B
10、 在DevOps中,可以使用Kanban方法,也可以使用Scrum等其他敏捷方法。
A.√
B.×
正确答案:A
软件架构演化
1、下面关于软件架构的描述哪个是不正确的?
A.软件架构即一系列重要的设计决策。
B.软件架构是一组特定的架构元素,包括处理元素、数据元素和上下文元素。
C.软件架构包含一系列重要决策,包括软件组织、构成系统的结构要素等。
D.软件架构包括系统组件、连接件和约束的集合。
正确答案:B
解析: B、软件架构不包含上下文元素。
2、在应用分层架构的软件系统中,最先处理外部请求的是:
A.应用层
B.表现层
C.业务层
D.数据层
正确答案:B
解析: B、在应用分层架构的软件系统中,各层处理外部请求的顺序依次是表现层、业务层、持久层和数据层。
3、以下哪个关于面向服务架构的描述是错误的?
A.面向服务架构包含服务提供者组件和服务消费者组件
B.在SOA中,服务消费者消费其他组件提供的服务不需要知道其具体的实现细节
C.SOA依赖企业服务总线为服务间的相互调用提供支持环境
D.面向服务架构是一个集中式组件的集合
正确答案:D
解析: D、面向服务架构应该是分布式组件的集合。
4、以下对于微服务优点的描述中,哪一个是错误的?
A.微服务可以使用RPC进行服务间通信
B.微服务系统测试变得非常简单
C.单个微服务很简单,只关注一个业务功能
D.不同的微服务可以使用不同的语言进行开发
正确答案:B
解析: B、分布式系统的复杂性使得系统测试变得复杂
5、在微服务架构中,ZooKeeper的主要作用是?
A.开发服务
B.调用服务
C.注册服务
D.封装服务
正确答案:C
6、除Spring Boot之外,主流的微服务开发框架还有什么?
A.Django
B.Apache Dubbo
C.Kubernetes
D.MyBaits
正确答案:B
7、在组成派看来,软件架构是指?
A.软件架构由软件元素、这些元素的外部可见属性,以及元素之间的关系组成。
B.软件架构包括系统组件、连接件和约束的集合。
C.软件架构将系统定义为计算组件及组件间的交互。
D.软件架构是一系列重要决策的集合,包括构成系统的结构要素及其接口的选择。
正确答案:A、B、C
解析: D、决策派的观点
8、分层架构将软件系统的组件分成多个互不重叠的层,包括
A.应用层
B.物理层
C.表现层
D.数据层
正确答案:C、D
解析: A、网络分层 B、网络分层
9、分层架构模式的缺点包括:
A.不易于持续发布和部署
B.代码调整通常比较麻烦
C.额外的性能开销
D.软件升级需要暂停整个服务
正确答案:A、B、C、D
解析: C、见分层架构部分“分层架构模式特点”。
10、以下哪几个不是面向服务架构强调的实现原则?
A.服务去中心化
B.服务简单
C.服务解耦
D.服务自治
正确答案:A、B
解析: A、微服务架构强调的实现原则。 B、微服务架构强调的实现原则。
11、以下选项中,哪些属于微服务架构的特点?
A.围绕业务能力组织
B.通过服务组件化
C.基础设施自动化
D.内聚和解耦
正确答案:A、B、C、D你
12、以下选项中,API网关模式的优点有哪些?
A.确保客户端不受服务实例位置的影响
B.增加请求往返次数
C.为每套客户端提供最优API
D.确保客户端不必关心应用程序的微服务拆分方式
正确答案:A、C、D
解析: B、应为“减少”
13、与面向服务架构相关的Web服务标准包括:
A.HTTPS
B.UML
C.WSDL
D.UDDI
正确答案:A、C、D
解析: B、应改为XML
14、单体应用的所有功能都被集成在一起作为一个单一的单元。
A.√
B.×
正确答案:A
15、单体架构更多地作为应用的部署架构,单体应用只运行在一个进程中。
A.√
B.×
正确答案:B
解析:可能存在单体应用的多个实例运行在多个进程中。
16、微服务架构架构风格是一种将一个单一应用程序开发为一个小型服务的方法。
A.×
B.√
正确答案:A
解析:一组小型服务,而非一个。
17、本质上,微服务架构是SOA的一种扩展。
A.√
B.×
正确答案:A
18、核心模式即针对采用微服务系统在通用场景下的所有问题,所使用的成熟的架构解决方案集合。
A.√
B.×
正确答案:B
解析:是在特定场景下的特定问题
云原生与容器技术
1、下列哪项不是Docker容器的特点:
A.资源使用较少
B.可以共享操作系统的资源
C.启动时间是分钟级
D.创建速度很快
正确答案:C
2、下列哪项不是Docker的网络模式
A.None模式
B.Host模式
C.其他全是
D.Bridge 模式
正确答案:C
3、以下哪些是Docker的存储驱动:
A.其他都是
B.Device mapper
C.AUFS
D.OverlayFS
正确答案:A
4、以下哪个命令可以查看当前运行容器:
A.docker logs
B.docker top
C.docker run
D.docker ps
正确答案:D
5、Kubernetes集群将元数据保存在以下哪个组件:
A.Etcd
B.Kubelet
C.Kube-apiserver
D.以上都不是
正确答案:A
6、以下哪些是Kubernetes的控制器:
A.ReplicaSet
B.Both ReplicaSet and Deployment
C.Deployment
D.Rolling Updates
正确答案:B
7、以下哪些是Kubernetes的核心概念
A.Services
B.其他都是
C.Volumes
D.Pods
正确答案:B
8、Kubernetes里面的Replication控制器的职责是:
A.帮助达到预期的状态
B.删除或者更新多个Pod
C.其他都是
D.当已存在的Pod异常退出后,创建新的Pod
正确答案:C
9、如何通过命令行创建一个容器
A.docker create
B.docker poll
C.docker start
D.docker run
正确答案:D
10、Dockerfile中的命令 RUN, CMD 和ENTRYPOINT几者有何区别?
A.ENTRYPOINT 配置容器启动时运行的命令
B.RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。
C.其他都是
D.CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参数替换
正确答案:C
11、使用Kubernetes带来的好处有哪些
A.自动调度
B.其他都是
C.横向扩展
D.自动回滚
正确答案:B
12、以下哪项用于确保pod不会被调度到不适当的节点上?
A.以上都不是
B.Taints
C.Taints 和 Tolerations
D.Tolerations
正确答案:C
13、Docker容器的状态有
A.Restarting
B.Running
C.Paused
D.Exited
正确答案:B、D
14、关于Kubernetes的namespace的论述是否正确:命名空间是在多个用户之间划分群集资源的方法
A.×
B.√
正确答案:B
15、以下描述是否正确:多步构建允许在Dockerfile中使用多个FROM指令。两个FROM指令之间的所有指令会生产一个中间镜像,最后一个FROM指令之后的指令将生成最终镜像。中间镜像中的文件可以通过COPY –from=
A.√
B.×
正确答案:A
DevOps工具链
1、下列哪项不属于DevOps工具生态圈?
A.编译
B.持续集成
C.持续部署
D.监控
正确答案:C
2、下列哪项不属于协同开发工具?
A.Confluence
B.Kanban
C.Rally
D.JIRA
正确答案:A
3、下列哪种持续集成工具是目前DevOps领域使用最广泛的?
A.Jenkins
B.Travis CI
C.TeamCity
D.VSTS
正确答案:A
4、下列哪种版本管理工具不是同宗同源的?
A.Git
B.Subversion
C.GitHub
D.GitLab
正确答案:B
5、以下哪项不是Git的文件目录?
A.工作目录
B.git目录
C.加载区
D.Documents
正确答案:D
6、下列哪种编译工具无法编译JAVA语言?
A.Ant
B.MSBuild
C.Maven
D.Gradle
正确答案:B
7、下列哪种工具无法实现对远程服务器的配置操作?
A.JIRA
B.Puppt
C.Ansible
D.Chef
正确答案:A
8、下列不属于测试的是
A.SIT部署
B.单元测试
C.UI测试
D.API测试
正确答案:A
9、 使用()工具完成DevOps持续交付流水线编排配置?
A.Java
B.Jenkins
C.JUnit
D.SonarQube
正确答案:B
10、Git是何种工具?
A.单元测试工具
B.监控工具
C.版本管理工具
D.持续集成工具
正确答案:C
11、以下哪种工具是开源工具?
A.JUnit
B.TeamCity
C.Zabbix
D.JIRA
正确答案:A
12、下列哪种工具能模拟市场上主流浏览器的操作?
A.Jenkins
B.JUnit
C.Selenium
D.FitNesse
正确答案:C
13、JIRA Software不支持极限编程这种敏捷开发方法。
A.√
B.×
正确答案:A
14、Jenkins支持工作流即代码(pipeline-as-code)。
A.√
B.×
正确答案:A
15、Git使用副本方式存储文件版本。
A.×
B.√
正确答案:A
16、Selenium能实现自动化单元测试。
A.×
B.√
正确答案:A
17、Nagios不属于监控工具。
A.×
B.√
正确答案:A
18、Zabbix有两种工作模式。
A.√
B.×
正确答案:A
19、SonarQube能完成持续交付流水线编排配置
A.×
B.√
正确答案:A
解析:静态代码扫描
20、Ansible只需要在Server端安装就能实现对远程服务器的配置管理?
A.×
B.√
正确答案:B
期末考试
客观题部分
1单选(1分)
下列描述中,不属于典型软件发展三大阶段的是:
A.软硬件一体化阶段
B.网络化和服务化
C.软件成为独立产品
D.软件作坊
正确答案:D
2单选(1分)
”Measure twice, Cut once” 是哪个阶段的典型开发特征?
A.软硬件一体化阶段
B.网络化阶段
C.软件成为独立产品阶段
D.软件作坊阶段
正确答案:A
3单选(1分)
关于软件过程管理,以下哪一种说法是比较贴切的:
A.软件过程管理主要关注软件成本和质量目标的达成。
B.进入互联网时代,软件过程管理是过于老套的话题。
C.软件过程管理关注的是企业软件过程能力的稳定输出和提升。
D.软件过程管理是软件企业发展到较高层次才需要关心的话题。
正确答案:C
4单选(1分)
软件开发的本质难题中哪一个与软件发展阶段没有直接关系?
A.复杂性
B.可变性
C.一致性
D.不可见性
正确答案:D
5单选(1分)
以下哪个因素促成了软件成为独立的产品?
A.个人电脑的出现
B.高级程序设计语言的出现
C.操作系统的出现
D.互联网的出现
正确答案:C
6单选(1分)
软件危机和软件工程这两个概念提出时间是?
A.上世纪六十年代
B.上世纪八十年代
C.上世纪七十年代
D.上世纪五十年代
正确答案:A
7单选(1分)
下述各个度量项中,哪一个不是PSP的基本度量项?
A.缺陷
B.时间
C.风险
D.规模
正确答案:C
8单选(1分)
根据敏捷宣言,以下哪项描述了更多的价值?
A.可工作的软件、个体交互、响应变化、相近的文档
B.响应变化、个体和交互、流程和工作、客户协作
C.客户协作、遵循计划、可工作的软件、个体交互
D.个体和交互、可工作的软件、客户协作、响应变化
正确答案:D
9单选(1分)
下列哪一项更好地描述了敏捷宣言?
A.它包含了建立敏捷思维方式的价值观
B.它定义了构建软件的规则
C.它概述了构建软件的最有效方法
D.它包含了许多敏捷团队使用的实践
正确答案:A
10单选(1分)
你是一家社交媒体公司的开发人员,正在开发一个项目,项目需要一个为企业客户创建私有网站的新功能。 您需要与公司的网络工程师一起确定部署策略,并提出一组工程师可以用于管理站点的服务和工具。 网络工程师希望在你的网络内部部署所有服务,但您和您的团队成员不同意,并且认为服务应该部署在客户的网络上。 为了达成一个协议,该项目的工作已经停止。 哪种敏捷价值最适合这种情况?
A.工作的软件 高于 详尽的文档
B.客户合作 高于 合同谈判
C.个体和互动 高于 流程和工具
D.响应变化 高于 遵循计划
正确答案:B
11单选(1分)
你是一个软件团队的开发人员。 一个用户向你的团队询问有关构建新功能的信息,并以规范的形式提供了需求。 她非常确定这个功能要如何工作,并承诺不会有任何变化。 哪种敏捷价值最适用于这种情况?
A.客户合作 高于 合同谈判
B.个体和互动 高于 流程和工具
C.响应变化 高于 遵循计划
D.工作的软件 高于 详尽的文档
正确答案:D
12单选(1分)
下列哪一个更好地描述了如何使用看板?
A.观察特征如何流经过程,以便团队可以确定如何限制WIP并通过工作流程中的步骤确定最均匀的工作流程
B.跟踪缺陷和问题,并创建解决产品问题的最快途径
C.帮助团队自我组织,并了解工作流程中的瓶颈所在
D.跟踪WIP限制和当前任务状态,以便团队知道他们还有多少工作要做
正确答案:A
13单选(1分)
下面关于软件架构的描述哪个是不正确的?
A.软件架构包括系统组件、连接件和约束的集合。
B.软件架构即一系列重要的设计决策。
C.软件架构包含一系列重要决策,包括软件组织、构成系统的结构要素等。
D.软件架构是一组特定的架构元素,包括处理元素、数据元素和上下文元素。
正确答案:D
14单选(1分)
以下哪个关于面向服务架构的描述是错误的?
A.面向服务架构包含服务提供者组件和服务消费者组件
B.面向服务架构是一个集中式组件的集合
C.SOA依赖企业服务总线为服务间的相互调用提供支持环境
D.在SOA中,服务消费者消费其他组件提供的服务不需要知道其具体的实现细节
正确答案:B
15单选(1分)
以下对于微服务优点的描述中,哪一个是错误的?
A.不同的微服务可以使用不同的语言进行开发
B.单个微服务很简单,只关注一个业务功能
C.微服务可以使用RPC进行服务间通信
D.微服务系统测试变得非常简单
正确答案:D
16单选(1分)
在微服务架构中,ZooKeeper的主要作用是?
A.封装服务
B.调用服务
C.注册服务
D.开发服务
正确答案:C
17单选(1分)
下列哪项不是Docker容器的特点:
A.资源使用较少
B.启动时间是分钟级
C.可以共享操作系统的资源
D.创建速度很快
正确答案:B
18单选(1分)
以下哪些是Docker的存储驱动:
A.Device mapper
B.AUFS
C.其他都是
D.OverlayFS
正确答案:C
19单选(1分)
以下哪个命令可以查看当前运行容器:
A.docker logs
B.docker ps
C.docker top
D.docker run
正确答案:B
20单选(1分)
Kubernetes集群将元数据保存在以下哪个组件:
A.Kubelet
B.其他都不是
C.Etcd
D.Kube-apiserver
正确答案:C
21单选(1分)
Kubernetes里面的Replication控制器的职责是:
A.其他都是
B.删除或者更新多个Pod
C.当已存在的Pod异常退出后,创建新的Pod
D.帮助达到预期的状态
正确答案:A
22单选(1分)
如何通过命令行创建一个容器
A.docker create
B.docker poll
C.docker start
D.docker run
正确答案:D
23单选(1分)
Dockerfile中的命令 RUN, CMD 和ENTRYPOINT几者有何区别?
A.RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。
B.ENTRYPOINT 配置容器启动时运行的命令
C.CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参数替换
D.其他都是
正确答案:D
24单选(1分)
使用Kubernetes带来的好处有哪些
A.其他都是
B.横向扩展
C.自动回滚
D.自动调度
正确答案:A
25单选(1分)
下列哪项不属于DevOps工具生态圈?
A.持续部署
B.监控
C.持续集成
D.编译
正确答案:A
26单选(1分)
下列哪项不属于协同开发工具?
A.Confluence
B.Rally
C.Kanban
D.JIRA
正确答案:A
27单选(1分)
下列哪种持续集成工具是目前DevOps领域使用最广泛的?
A.VSTS
B.Jenkins
C.TeamCity
D.Travis CI
正确答案:B
28单选(1分)
下列哪种版本管理工具不是同宗同源的?
A.GitLab
B.Git
C.Subversion
D.GitHub
正确答案:C
29单选(1分)
以下选项中,哪一项不属于API网关模式的优点?
A.确保客户端不受服务实例位置的影响。
B.确保客户端不必关心应用程序的微服务拆分方式。
C.增加请求往返次数。
D.将从客户端调用多项服务的逻辑转换为从API网关处调用,以简化整个客户端。
正确答案:C
30单选(1分)
以下选项中,哪一项不属于微服务架构的特点?
A.低内聚和高耦合
B.去中心化
C.基础设施自动化
D.围绕业务能力组织
正确答案:A
31多选(2分)
以下描述中,哪几种是网络化和服务化这个阶段的典型软件应用特征?
A.通过CD和DVD等方式支持大容量和快速分发软件拷贝
B.通过SaaS等方式来发布软件系统
C.用户数量急剧增加
D.快速演化、需求不确定
正确答案:B、C、D
32多选(2分)
关于形式化方法的描述当中,不正确的有哪些?
A.这种方法应用范围有限,例如:不适合跟客户讨论需求。
B.这种方法对开发人员技能有较高的要求
C.这种方法是网络化和服务化阶段用来应对软件开发本质四大难题而提出来的
D.这种方法的主要目的是解决软件开发的效率问题
正确答案:C、D
33多选(2分)
关于迭代式方法的说法哪些是比较恰当的?
A.迭代式方法是指一类具有类似特征的方法
B.迭代式方法主要特征在于将软件开发过程视作一个逐步学习和交流的过程
C.迭代式方法是上世纪九十年代中后期才出现的一种方法
D.迭代式方法主要是为了解决软件开发的质量问题
正确答案:A、B
34多选(2分)
DevOps方法的出现具有一定的必然性,与以下哪些软件应用特征相匹配?
A.软件系统部署环境越来越错综复杂
B.软件在社会生活当中扮演了越来越关键的角色
C.软件定义世界,软件随处可见
D.用户需求多变所带来了软件系统的快速演化的要求
正确答案:A、B、C、D
35多选(2分)
DevOps的哪些特点可以有效支撑当前社会对软件系统的期望?
A.敏捷开发、精益思想以及看板方法,支持快速开发、交付、迭代和演化
B.微服务架构设计
C.工具链支持高效率的自动化
D.虚拟机技术的大量应用
正确答案:A、B、C、D
36多选(2分)
关于面向用户的质量观,我们应该关注如下哪些问题:
A.用户期望的优先级对软件开发的影响?
B.真实用户是谁?
C.界面和可操作性是首要的,因为这是用户能直接感受到的。
D.用户期望是否有优先级?
正确答案:A、B、D
37多选(2分)
关于PROBE估算法,下述各种说法中,不正确的有哪些?
A.PROBE方法不能用来估算质量。
B.PROBE方法不需要历史数据。
C.PROBE不能给出精确估算,因而适合用来跟用户讨论需求和规模。
D.PROBE估算结果带着小数,肯定不准确,因而, 不应该在项目估算的时候使用。
正确答案:B、C、D
38多选(2分)
关于质量路径(Quality Journey),下列说法中哪些不恰当。
A.进入测试之前的高质量,是获得测试之后高质量软件系统的前提条件。
B.高质量软件产品最终还是需要依赖测试来确保。v
C.质量路径与个体软件工程师无关,是团队层面的集体努力。
D.质量路径中所列举的方法都是提升开发质量的有效手段,可以随意选择使用。
正确答案:C、D
39多选(2分)
关于评审检查表,下述说法中不恰当的是:
A.评审检查表应该保持稳定,确保缺陷不会被遗漏
B.项目团队所有人应该共用一份评审检查表,体现统一性
C.评审检查表应该定期更新
D.评审检查表应该是个性化的
正确答案:A、B
40多选(2分)
关于PQI,下述说法中不恰当的是:
A.PQI五个分指标都可以超过1.0,比如,设计时间多于编码时间的时候,该分指标就超过1.0了
B.PQI可以用来辅助判断模块开发的质量
C.PQI越高越好,最好达到1.0
D.PQI可以为过程改进提供依据
正确答案:A、C
41多选(2分)
关于质量的各种定义当中,下述哪些质量属性属于内部属性?
A.可靠性
B.安全性
C.可扩展性
D.可移植性
正确答案:C、D
42多选(2分)
在组成派看来,软件架构是指?
A.软件架构将系统定义为计算组件及组件间的交互。
B.软件架构由软件元素、这些元素的外部可见属性,以及元素之间的关系组成。
C.软件架构是一系列重要决策的集合,包括构成系统的结构要素及其接口的选择。
D.软件架构包括系统组件、连接件和约束的集合。
正确答案:A、B、D
43多选(2分)
分层架构将软件系统的组件分成多个互不重叠的层,包括
A.应用层
B.数据层
C.物理层
D.表现层
正确答案:B、D
44多选(2分)
分层架构模式的缺点包括:
A.不易于持续发布和部署
B.由于层间依赖关系,软件系统的可扩展性差
C.额外的性能开销
D.软件升级需要暂停整个服务
正确答案:A、B、C、D
45多选(2分)
以下哪几个不是面向服务架构强调的实现原则?
A.服务无状态
B.服务组成
C.服务简单
D.服务去中心化
正确答案:C、D
46多选(2分)
以下选项中,哪些属于微服务架构的特点?
A.围绕业务能力组织
B.基础设施自动化
C.内聚和解耦
D.通过服务组件化
正确答案:A、B、C、D
47多选(2分)
以下选项中,API网关模式的优点有哪些?
A.增加请求往返次数
B.为每套客户端提供最优API
C.确保客户端不必关心应用程序的微服务拆分方式
D.将从客户端调用多项服务的逻辑转换为从API网关处调用,以简化整个客户端。
正确答案:B、C、D
48多选(2分)
与面向服务架构相关的Web服务标准包括:
A.HTTPS
B.WSDL
C.SOAP
D.UDDI
正确答案:A、B、C、D
49多选(2分)
Docker容器的状态有
A.Paused
B.Exited
C.Running
D.Restarting
正确答案:B、C
50多选(2分)
以下对于微服务优点的描述中,哪几项是正确的?
A.不同的微服务可以使用不同的语言进行开发。
B.单个微服务很简单,只关注一个业务功能
C.微服务系统测试变得非常简单
D.微服务可以使用RPC进行服务间通信
正确答案:A、B、D
51判断(1分)
DevOps化的Three ways当中,建立反馈机制是二阶段应该实现的目标。
A.√
B.×
正确答案:A
52判断(1分)
一个公司内,各个团队的Kanban列设置应当一致,便于公司管理。
A.√
B.×
正确答案:B
53判断(1分)
单体架构更多地作为应用的部署架构,单体应用只运行在一个进程中。
A.×
B.√
正确答案:A
54判断(1分)
本质上,微服务架构是SOA的一种扩展。
A.×
B.√
正确答案:B
55判断(1分)
核心模式即针对采用微服务系统在通用场景下的所有问题,所使用的成熟的架构解决方案集合。
A.×
B.√
正确答案:A
56判断(1分)
JIRA Software不支持极限编程这种敏捷开发方法。
A.×
B.√
正确答案:B
57判断(1分)
Zabbix有两种工作模式。
A.√
B.×
正确答案:A
58判断(1分)
微服务架构的特点包括“围绕业务能力组织”、“内聚和解耦”、“基础设施自动化”等。
A.√
B.×
正确答案:A
59判断(1分)
持续集成是DevOps理念中重要的一个实践环节,它经历了纯脚本驱动到持续集成工具两个发展阶段,目前正向第三个阶段流水线即代码的阶段发展
A.√
B.×
正确答案:A
60判断(1分)
Ansible是一款开源的配置管理工具。它采用Server和Client管理模式,Server端和Client端均需要安装Ansible,方能实现软件多节点部署。
A.×
B.√
正确答案:A
主观题部分
1( 5分 )
请谈谈微服务架构与面向服务的架构存在哪些异同?
回答:
1、微服务是一种软件的架构风格,面向服务的架构(SOA)不是一种特定的技术,而是一种分布式计算的软件设计方法。
2、微服务简单的说就是组合化,它的每部分需要实现的功能可以有不同的小程序单独构成,然后相互之间协同实现一个大的目标。这个角度上来说,两者是一脉相承的,但是面向服务的架构,没有微服务的分离度高,相互之间的关联度还是相对较高。
3、微服务相比较来说,在各个组件上可以使用不一样的编程语言。
4、微服务更加关注于解耦,不追求系统之间的相关性。
5、微服务的系统发生改变只需要构建一个新的服务,简单快捷,但是SOA则需要对整个系统进行修改。
6、微服务使用的协议一般都是轻量级的协议,就像HTTP、Thrift API等协议,但是SOA则是使用更为复杂多样的多种消息协议。微服务的容错性能会更好,即使一个微服务出现问题,其他的微服务也会正常工作。
7、每个微服务都有单独的数据库,SOA则是共享一个数据库。
8、微服务的规模更小,SOA则是一个较大的规模。SOA可以是一个整体,也可以是多个微服务组成的。
该题得分:3.2
整体评价:无
2( 5分 )
从你的理解出发,谈谈为什么微服务架构具有高可用性、灵活性等优点?
回答:
1、微服务架构普遍被采用于云原生应用、无服务器计算、以及使用轻量级容器部署的应用等,根据Fowler的观点,由于服务数量众多(与单体应用实现相比),为了有效地开发、维护和运营这类应用,去中心化的持续交付和带有整体服务监控的DevOps是必要的。 遵循这种方法的一个合理性结果是,单独的微服务可以单独扩展。在单体应用架构方法中,一个支持三个功能的应用,即使只有其中一个功能需要添加资源约束,也需要对其进行整体的扩展。微服务则不同,只需要对有资源约束需求的微服务进行扩展, 这样就带来了资源和成本的优化。
2、微服务并不是单体应用中的一个层,相反,它是一个自成一体的业务功能,具有明确的接口,可以通过自己的内部组件实现分层架构。从策略的角度来看,微服务架构本质上遵循了Unix的 “做一件事,做好一件事 “的理念,改变应用程序的一小部分只需要重建和重新部署一个或少量的服务即可,使用可直达独立部署服务的精细化接口、业务驱动开发(如领域驱动设计)等原则。
该题得分:5
整体评价:无
3( 5分 )
请描述一个简单的持续交付流水线所包含的基本步骤。
回答:
开发–>版本控制–>代码检查–>构建–>自动化测试–>打包–>远程仓库发布–>自动化部署
该题得分:5
整体评价:无
4( 5分 )
请列举出敏捷软件开发中常见的3中开发方法?
回答:
1、极限编程(简称XP),是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
2、精益开发,思想起源于丰田公司,旨在创造价值的目标下,通过改良流程不断地消除浪费。这种方法现已被广泛用于生产制造管理,对于IT系统建设,精益开发的常用工具模型是价值流模型。
3、Scrum 是一个用于开发和维护复杂产品的框架 ,是一个增量的、迭代的开发过程。Scrum以经验性过程控制理论(经验主义)做为理论基础的过程。经验主义主张知识源于经验, 以及基于已知的东西做决定。Scrum 采用迭代、增量的方法来优化可预见性并控制风险。
该题得分:5
整体评价:无
5( 5分 )
请描述敏捷软件开发宣言内容?
回答:
我们一直在实践中探寻更好的软件开发方法,
身体力行的同时也帮助他人。由此我们建立了如下价值观:
个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作 高于 合同谈判
响应变化 高于 遵循计划
也就是说,尽管右项有其价值,
我们更重视左项的价值。
该题得分:5
整体评价:无
6( 5分 )
请解释一下什么是Kanban方法中的WIP?为什么要限制WIP?
回答:
WIP全称是work in progress,表示在途工作量,即同时进行中的工作数量。
限制WIP可以让团队成员更佳专注与手边的工作,减少工作切换所造成的浪费,因而可以加速工作完成的时间。此外,当工作卡住而无法完成的时候,开发团队不能以此为借口忽略这些被卡住的工作(因为有WIP限制,不能无限制的一直拿工作而不完成它),此时就有可能会有人闲置下来,而影响工作流程与产能。鼓励团队成员一起解决问题,排除阻碍。可以更均衡的工作产出,避免前期开发后期集中或者压缩测试时间,能够更稳健的长久的进行敏捷实践。
该题得分:5
整体评价:无
7( 5分 )
什么叫做面向用户的质量观?这种观点对软件开发有什么影响?
回答:
面向用户的质量观是定义质量为满足用户需求的程度。这个定义中需要进一步明确:用户究竟是谁?用户需求的优先级是什么?这种用户的优先级对软件产品的开发过程产生什么样的影响?怎样来度量这种质量观下的质量水平?
在软件开发中,用缺陷管理来替代质量管理,高质量产品也就意味着要求组成软件产品的各个组件基本无缺陷。缺陷消除的平均代价随着开发过程的进展会显著增加,各个组件的高质量是通过高质量评审来实现的。
该题得分:5
整体评价:无
8( 5分 )
DevOps有哪些常见的质量手段有助于确保最终软件服务的质量?
回答:
1、持续集成。持续集成 (CI) 是一个开发过程,每天多次将代码集成到共享存储库中。借助自动化测试,CI 帮助允许团队及早识别错误、轻松定位问题,提高了软件质量并缩短了交付时间。
2、持续部署。通过评估拉取请求并将它们组合到主分支,持续部署为开发人员提供了对流水线末端产品的的关注。它允许企业快速部署、验证新功能,并在测试自动化完成后立即做出响应。有了持续部署流水线,一旦客户提交质量问题,团队就可以轻松处理新版本的错误,因为每个版本都是小批量交付的。
3、持续测试。在 CI/CD 工作流中,构建往往以小批量进行。因此,为每次构建,手动运行测试用例会非常耗时。持续测试借助自动化手段,尽早、逐步和充分地执行测试,发现问题解决问题。
4、自动化。借助强大的部署自动化手段和标准化的环境管理来降低部署操作的成本,确保部署任务的可重复性,减少部署出错的可能性。
5、DevOps 致力于在整个开发过程中的每一个环节都引入QA 和测试管理,使它们成为质量的推动者,并确保产品符合利益相关者和用户所设定的质量标准。QA 实际上被认为是DevOps 中非常关键的组件,甚至于DevOps 强调质量保证是每个人的责任。
该题得分:3.6
整体评价:无