DevOps教程:DevOps 面試題
?【注】本文譯自:https://www.javatpoint.com/devops-interview-questions
? ??
? ??下面列出了常見的DevOps面試問題和答案。
1)?解釋DevOps?
? ? DevOp 是兩個(gè)詞的組合,一個(gè)是軟件?Development(開發(fā))、另一個(gè)是?Operations (運(yùn)營(yíng))。它允許一個(gè)團(tuán)隊(duì)處理從開發(fā)到測(cè)試、部署和運(yùn)營(yíng)的整個(gè)應(yīng)用程序生命周期。DevOps 可幫助您減少軟件開發(fā)人員、質(zhì)量保證(QA)工程師和系統(tǒng)管理員之間的聯(lián)系。
2) DevOps 的原則是什么?
? ? DevOps 背后的原則是:
持續(xù)部署
基礎(chǔ)設(shè)施即代碼
自動(dòng)化
監(jiān)控
安全
3) DevOps 對(duì)開發(fā)人員有何幫助?
? ? DevOps 對(duì)開發(fā)人員修復(fù)錯(cuò)誤并快速實(shí)現(xiàn)新功能非常有幫助。它還有助于團(tuán)隊(duì)成員之間更透明的溝通。
4) 解釋一些流行的 DevOps 工具?
? ? 下面是一些流行的 DevOps 工具,例如:
Jenkins:?Jenkins 是一個(gè) DevOps 工具,用于監(jiān)視重復(fù)任務(wù)的執(zhí)行。Jenkins 允許持續(xù)集成的軟件,安裝在進(jìn)行集中構(gòu)建的服務(wù)器上。
Ansible:?Ansible 是領(lǐng)先的DevOps工具。 Ansible 是一個(gè)開源 IT 引擎,可自動(dòng)執(zhí)行應(yīng)用程序部署、云供應(yīng)、內(nèi)部服務(wù)編排和其他 IT 工具。
Nagios:?Nagios 是 DevOps 較為有用的工具之一。它可以確定錯(cuò)誤,并在網(wǎng)絡(luò)、基礎(chǔ)架構(gòu)、服務(wù)器和日志監(jiān)視系統(tǒng)的幫助下進(jìn)行糾正。
Docker:?Docker 是一種高端 DevOps 工具,它允許在多個(gè)系統(tǒng)上構(gòu)建,發(fā)布和運(yùn)行分布式應(yīng)用程序。
Git:?Git 是一個(gè)開源的分布式版本控制系統(tǒng),每個(gè)人都可以免費(fèi)使用。它旨在快速高效地處理各種規(guī)模的項(xiàng)目。
5) 實(shí)施?DevOps 的前提條件是什么?
? ??以下是實(shí)現(xiàn) DevOps 的一些有用的先決條件:
團(tuán)隊(duì)成員之間的適當(dāng)溝通。
至少一個(gè)版本控制軟件。
自動(dòng)化測(cè)試。
自動(dòng)化部署。
6) DevOps?在應(yīng)用開發(fā)和基礎(chǔ)架構(gòu)方面的核心操作是什么?
? ? DevOps?應(yīng)用開發(fā)和基礎(chǔ)架構(gòu)的核心操作是:
應(yīng)用開發(fā)
代碼建設(shè)
代碼覆蓋率
單元測(cè)試
打包
部署
基礎(chǔ)架構(gòu)
供應(yīng)
配置
編排
部署
7) DevOps?的關(guān)鍵組件是什么?
? ? DevOps的最重要的關(guān)鍵組件是:
持續(xù)集成
持續(xù)測(cè)試
y持續(xù)交付
持續(xù)販賣
8) 什么是 Vagrant?
? ? Vagrant 是 DevOps 的工具,可以創(chuàng)建和管理用于測(cè)試和開發(fā)軟件的虛擬化環(huán)境。
9) DevOps 工作文化在技術(shù)和業(yè)務(wù)上有什么好處?
? ??以下是 DevOps 工作文化的技術(shù)和業(yè)務(wù)優(yōu)勢(shì):
技術(shù)優(yōu)勢(shì)
不要解決太復(fù)雜的問題。
持續(xù)交付軟件。
更快的錯(cuò)誤解決。
業(yè)務(wù)優(yōu)勢(shì)
最穩(wěn)定的操作環(huán)境。
有更多時(shí)間可用來增加產(chǎn)品價(jià)值。
更快地交付功能以使客戶滿意。
10) 什么是 Scrum?
Scrum 用于通過迭代和增加實(shí)踐將復(fù)雜的軟件和產(chǎn)品開發(fā)任務(wù)劃分為較小的塊。Scrum 由三個(gè)角色組成,例如:
產(chǎn)品擁有者
Scrum?大師
團(tuán)隊(duì)
11) 什么是版本控制?
? ? ?它是一個(gè)隨時(shí)間記錄對(duì)一個(gè)文件或一組文件的更改的系統(tǒng),因此您可以調(diào)用特定版本。
? ??版本控制系統(tǒng)由一個(gè)中央共享存儲(chǔ)庫組成,團(tuán)隊(duì)成員可以在其中將更改提交到一個(gè)文件或一組文件中。它允許:
將文件還原到以前的狀態(tài)。
比較一段時(shí)間內(nèi)的變化。
將整個(gè)項(xiàng)目還原到以前的狀態(tài)。
查看誰修改了文件中的內(nèi)容。
12) DevOps?中使用了哪些腳本工具?
? ? DevOps?中使用了Python和Ruby腳本工具。
13) AWS 在 DevOps 中的作用是什么?
? ? AWS?是 Amazon 提供的基于云的服務(wù),可通過無限的計(jì)算能力和存儲(chǔ)來確??蓴U(kuò)展性。它使 IT 企業(yè)能夠開發(fā)和交付經(jīng)驗(yàn)豐富的產(chǎn)品,并在云上部署應(yīng)用程序。
14) 為什么開源工具可以提升 DevOps?
? ? 由于 DevOps 在組織構(gòu)建、發(fā)布、變更管理和基礎(chǔ)架構(gòu)管理領(lǐng)域的各個(gè)方面都具有自動(dòng)化的特點(diǎn),開源工具被大部分組織用于流水線中。
15) 組織劇本作為角色的需求是什么?
? ??在考慮刪除Oracle DB后MySQL安裝的任務(wù)時(shí),作為角色的組織劇本為任何角色提供了更多的可靠性和可重用性。在安裝java之后,安裝MySQL還需要另一個(gè)需求。在這兩種情況下,都需要安裝MySQL,但是如果沒有角色,就需要分別為這兩種用例編寫劇本。不過,一旦使用了角色,通過調(diào)用site.yaml中的邏輯,就可以創(chuàng)建任意次數(shù)的MySQL安裝角色。
16) 有多少云平臺(tái)可用于 DevOps 實(shí)施?
? ? 以下是用于 DevOps 實(shí)施的一些云計(jì)算平臺(tái),例如:
谷歌云
亞馬遜網(wǎng)絡(luò)服務(wù)
微軟Azure
17) 解釋兩因素身份驗(yàn)證?
? ??兩因素身份驗(yàn)證是一種安全性方法,用戶可以通過它提供來自不同類別的兩種身份驗(yàn)證方法。18)PTR在DNS中的用途是什么?
PTR是用于反向DNS查找的指針記錄。
18) PTR 在 DNS 中的用途是什么?
? ? PTR 是用于反向 DNS 查找的指針記錄。
19) 說出一些網(wǎng)絡(luò)監(jiān)視工具?
? ??一些最重要的網(wǎng)絡(luò)監(jiān)視工具是:
Nagios
OpenNMS
Splunk
Icinga 2
Wireshark
20) 列出三個(gè)重要的DevOps KPI?
? ??三個(gè)最重要的DevOps KPI是:
部署頻率
失敗部署的百分比
平均故障恢復(fù)時(shí)間
21) 解釋關(guān)于 DevOps 的結(jié)對(duì)編程?
? ??結(jié)對(duì)編程是極限編程規(guī)則的一種工程實(shí)踐。在這種情況下,兩個(gè)程序員使用相同的設(shè)計(jì)或算法在同一系統(tǒng)上工作。
? ??一個(gè)程序員充當(dāng)驅(qū)動(dòng)者,另一個(gè)充當(dāng)觀察員,他不斷監(jiān)視項(xiàng)目進(jìn)度以發(fā)現(xiàn)問題。這些角色可以在任何時(shí)間點(diǎn)互換,而無需事先通知。
22) 什么是CBD?
? ??基于組件的開發(fā)(CBD)是進(jìn)行產(chǎn)品開發(fā)的獨(dú)特方法。在這種方法中,開發(fā)人員始終在尋找現(xiàn)有的定義良好、經(jīng)過測(cè)試和驗(yàn)證的組件,以將它們組合并組裝成產(chǎn)品,而不是從頭開始開發(fā)。
23) 給出 DevOps 自動(dòng)化的定義?
? ??自動(dòng)化是 DevOps 實(shí)踐的關(guān)鍵需求,使一切自動(dòng)化是 DevOps 的基本原則。自動(dòng)化從開發(fā)人員計(jì)算機(jī)上的代碼生成開始,直到將代碼推送到代碼,以監(jiān)視生產(chǎn)中的應(yīng)用和系統(tǒng)。
? ? DevOps 中的自動(dòng)化可提高速度、一致性、更高的準(zhǔn)確性、可靠性、并增加交付數(shù)量。
24)?什么是 DevOps 流水線?
? ??軟件工程團(tuán)隊(duì)中的流水線是一組自動(dòng)化流程,使 DevOps 專業(yè)人員和開發(fā)人員能夠可靠、高效地將其代碼編譯、生成并部署到生產(chǎn)平臺(tái)。
25) 什么是Azure DevOps?
? ? Azure DevOps 也稱為 Microsoft Visual Studio 團(tuán)隊(duì)服務(wù)(VSTS)。它是為云構(gòu)建的一組協(xié)作開發(fā)工具。 VSTS通常被用作獨(dú)立術(shù)語,Azure DevOps 是一個(gè)由幾種不同產(chǎn)品組成的平臺(tái),例如:
Azure Test Plans
Azure Boards
Azure Repos
Azure Pipeline
Azure Artifacts
26) 哪些因素使 AWS DevOps 具有高度可訪問性?
? ??以下是使AWS DevOps廣受歡迎的一些原因,例如:
AWS CloudFormation
AWS EC2
AWS CloudWatch
AWS CodePipeline
27) DevOps 中的構(gòu)建是什么?
? ? 構(gòu)建是一種方法,其中將源代碼放在一起以檢查其是否作為單個(gè)單元工作。在構(gòu)建創(chuàng)建過程中,將對(duì)源代碼進(jìn)行編譯、測(cè)試、檢查和部署。
28) 說明哪個(gè)場(chǎng)景中使用了 SSH?
? ??您可以使用SSH登錄到遠(yuǎn)程計(jì)算機(jī)并在命令行上工作。此外,您還可以使用它來隧穿系統(tǒng),以促進(jìn)不安全網(wǎng)絡(luò)上的兩個(gè)主機(jī)之間的安全加密通信。
29) AWS中如何執(zhí)行基礎(chǔ)架構(gòu)代碼?
? ? 在 AWS 中:
基礎(chǔ)結(jié)構(gòu)的代碼將采用簡(jiǎn)單的 JSON 格式。
此 JSON 代碼將組織到稱為模板的文件中。
這些模板可以部署在 AWS DevOps 上,然后作為堆棧進(jìn)行管理。
稍后,CloudFormation服務(wù)將在堆棧中執(zhí)行創(chuàng)建、刪除、更新等操作。
30) 請(qǐng)解釋 Git Bisect?
Git Bisect 使用二進(jìn)制搜索幫助查找哪些提交引入了錯(cuò)誤。