20 個最重要的 DevOps 面試題

DevOps 表明開發和運營。 這是一種新的軟件開發形式,完全改變了軟件產品的開發和分發方式。DevOps方法論着眼於提供頻繁的較小升級,而不是罕見的大型功能集。html

IT運營受益於DevOps。 在DevOps出現以前,IT團隊仍然存在一些內在的擔心。 這致使IT團隊面臨某種程度的意外懷疑。ios

可是,隨着DevOps的加入,這一切都發生了變化,這使IT運營部門能夠與組織的其餘部門共享這些問題,從而提升了透明度,並提升了IT運營部門與其餘團隊之間的協調性。git

如下部分介紹了前20個DevOps面試問題,這些問題將爲您下一次DevOps面試作準備:面試

問題1: 您能告訴咱們DevOps和Agile之間的根本區別嗎?

答 :儘管DevOps與敏捷方法(這是最流行的SDLC方法之一)有一些類似之處,但二者都是軟件開發的根本不一樣的方法。 如下是二者之間的各類基本差別:安全

  • 敏捷方法–敏捷方法僅適用於敏捷開發,而敏捷方法則適用於DevOps中的開發和運營。
  • 實踐和流程–敏捷涉及敏捷Scrum和敏捷看板等實踐,而DevOps涉及CD(持續交付),CI(持續集成)和CT(持續測試)等流程。
  • 優先級–敏捷優先考慮及時性,而DevOps優先考慮及時性和質量。
  • 發佈週期– DevOps提供較小的發佈週期並提供即時反饋,而Agile僅提供較小的發佈週期而沒有當即反饋。
  • 反饋源–敏捷依賴於客戶的反饋,而DevOps涉及到自身(監控工具)的反饋。
  • 工做範圍–對於敏捷,工做範圍僅是敏捷,而對於DevOps,這是敏捷和對自動化的需求。

問題2: 爲何咱們須要DevOps?

答 :現在,組織正在嘗試經過一系列發佈方式將小功能傳遞給客戶,而不是發佈大功能集。 這樣作有不少好處,包括更好的軟件質量和快速的客戶反饋。服務器

全部這些好處致使更高的客戶滿意度,這是任何產品開發項目的最重要目標。 爲此,公司須要:架構

  • 增長部署頻率
  • 縮短修復時間
  • 新版本的故障率更低
  • 萬一新版本崩潰,請有更快的平均恢復時間

DevOps有助於知足全部這些要求,從而實現無縫的軟件交付。 像Amazon,Etsy和Google這樣的成熟組織已採用DevOps方法,從而實現了之前未知的性能水平。框架

經過採用DevOps方法,組織能夠在一天以內完成數以萬計的部署。 此外,這樣作還能夠提供一流的可靠性,安全性和穩定性。微服務

問題3: 使用DevOps有哪些重要的業務和技術優點?

答 :DevOps爲該錶帶來了不少業務和技術優點。 下面列出了一些最重要的參數:工具

  • 商業利益

    • 加強的操做環境穩定性
    • 更快地交付功能
    • 更多時間爲產品增值
  • 技術優點

    • 持續交付軟件
    • 更快地解決問題
    • 較小的複雜問題

問題4: 您可否列舉一些最經常使用的DevOps工具?

答 :如下是一些使用最普遍的DevOps工具的列表:

  • Ansible –配置管理和應用程序部署工具
  • Chef –配置管理和應用程序部署工具
  • Docker –容器化工具
  • Git –版本控制系統(VCS)工具
  • Jenkins –持續集成(CI)工具
  • Jira –敏捷的團隊協做工具
  • Nagios –連續監控工具
  • Puppet –配置管理和應用程序部署工具
  • 硒–連續測試(CT)工具

問題5:硒的做用是什麼?

答 :硒用於DevOps中的連續測試。 該工具專門從事功能和迴歸形式的測試。

問題6: 您對DevOps中的Puppet有什麼瞭解?

答 :這是一個配置管理工具,用於自動執行管理任務。Puppet利用主從結構,其中兩個實體經過加密通道進行通訊。

系統管理員須要執行許多重複性任務,尤爲是安裝和配置服務器。 編寫腳原本自動執行此類任務是一種選擇,可是當基礎結構很大時,它變得很忙。 爲此,配置管理是一個不錯的解決方法。

Puppet幫助配置,部署和管理服務器。 這不只使此類冗餘任務變得更加容易,並且節省了總工做時間的很大一部分。 成熟的配置管理工具:

  • 持續檢查主機所需的配置是否到位。 若是更改,配置將自動還原
  • 爲每一個主機定義不一樣的配置
  • 對機器進行動態縮放(上下縮放)
  • 提供對全部已配置計算機的控制,以即可以將集中更改自動傳播到全部這些計算機

問題7:您對DevOps的反模式有什麼瞭解?

回答 :當其餘組織一般採用的DevOps模式在特定上下文中不起做用而組織仍在繼續使用它時,它將致使採用反模式。 換句話說,反模式是關於DevOps的神話。 一些著名的反模式是:

  • 一個組織須要有一個單獨的DevOps組
  • 敏捷等於DevOps
  • DevOps是一個過程
  • DevOps是開發驅動的發佈管理
  • 因爲組織獨特,所以沒法進行DevOps
  • 沒法進行DevOps,由於現有人員不適合
  • DevOps意味着開發人員管理生產
  • DevOps將解決全部問題
  • 沒法在正在進行的DevOps過渡中包含組織的全部方面
  • 在DevOps過渡開始時未定義KPI
  • 經過一個新的DevOps團隊來減小與其餘組織之間的隔離

問題8:DevOps有一個稱爲CI的東西。 它是什麼,目的是什麼?

答 :DevOps中的CI表明持續集成。CI是一種開發實踐,開發人員能夠在一天內屢次將代碼集成到共享存儲庫中。

開發和測試的持續集成提升了軟件的質量,並減小了交付所需的總時間。

若是檢查代碼的團隊成員遇到編譯失敗,則開發人員將破壞構建。 這樣,其餘開發人員若是不將編譯錯誤引入本身的工做空間中,就沒法與共享源代碼存儲庫進行同步。

這破壞了協做和共享的開發過程。 所以,一旦配置項構建中斷,當即識別並糾正問題就很重要。

一般,配置項流程包括每次編譯成功時都會運行的一組單元測試,集成測試和迴歸測試。 若是上述任何測試失敗,則CI構建被認爲是不穩定的(這在開發正在進行中的敏捷衝刺中很常見)而且沒有損壞。

問題9: 咱們常常聽到DevOps中的左移。 它是什麼?

答 :當在紙上畫圖時,傳統的軟件開發生命週期有左右兩邊。 圖的左側包括設計和開發,而右側包括生產階段,壓力測試和用戶接受度。

在DevOps中向左移動僅意味着須要在右側執行儘量多的任務,即一般在應用程序開發過程的結尾發生,並將其歸入DevOps方法的早期階段。

有幾種方法能夠完成DevOps中的操做,最值得注意的是:

  • 在每一個敏捷衝刺結束時建立準備就緒的工件
  • 在每一個版本中都包含靜態代碼分析例程

正確執行DevOps的級別直接取決於儘量左移的程度。

問題10:DevOps中的CAMS表明什麼?

答 :首字母縮寫詞CAMS一般用於描述DevOps方法論的核心信條。 它表明:

  • 文化
  • 斷言
  • 測量
  • 共享

問題11: 用於評估DevOps成功的幾個KPI是什麼?

答 :關鍵績效指標是關鍵績效指標的一種合同形式。 爲了衡量DevOps流程的成功,可使用幾個KPI。 一些最受歡迎的是:

  • 應用性能
  • 應用程序的使用和流量
  • 自動測試經過率
  • 可用性
  • 改變音量
  • 客戶票
  • 缺陷逃逸率
  • 部署頻率
  • 部署時間
  • 錯誤率
  • 部署失敗
  • 交貨時間
  • 檢測時間(MTTD)
  • 平均恢復時間(MTTR)

問題12: 您認爲實施DevOps自動化的主要好處是什麼?

答 :如下是實現DevOps自動化的主要好處:

  • 從CD方程式中消除人爲錯誤的可能性(核心收益)
  • 隨着任務變得更加可預測和可重複,當出現問題時,很容易識別和糾正。 所以,它能夠產生更可靠,更強大的系統
  • 消除CI管道的瓶頸。 這會致使部署頻率增長和失敗的部署數量減小。 它們都是重要的DevOps KPI

問題13: 您對容器瞭解什麼?

答 :容器是一種輕量級虛擬化形式,有助於在進程之間提供隔離。 容器比chroot重,但比管理程序輕。

問題14:微服務是DevOps的核心部分。 您能夠命名兩個流行的Java開發框架來建立微服務嗎?

答 :有幾種Java框架容許建立微服務。 可是,Eclipse MicroProfile和Spring Boot做爲DevOps中用於建立微服務的兩個主要Java開發框架而脫穎而出。

問題15: 您對版本控制系統(VCS)瞭解什麼? 定義其用途。

答 :版本控制系統或VCS是一種可以記錄一段時間內對一個文件或一組文件所作的更改的系統。Git和Mercurial是兩個最受歡迎的版本控制系統。VCS的重要用途是:

  • 檢查什麼引發了問題的最後修改
  • 比較隨着時間的變化
  • 肯定誰介紹了新問題以及何時提出的
  • 將一個或多個文件還原到某個較早的狀態
  • 將整個項目還原到之前的狀態

問題16:Git是流行的DevOps工具。 告訴咱們您將如何還原已經推送並公開的提交。

答 :有兩種方法能夠這樣作:

  • 經過建立新的提交來撤消已被推送並公開的提交所作的全部更改。 執行如下命令:

    git 還原
  • 經過修復或刪除新提交中的錯誤文件,而後將其推送到遠程存儲庫。 對文件進行必要的更改後,使用如下命令將其提交到遠程存儲庫:

    git commit -m「提交消息」

    問題17: 什麼是post mortem會議?

答 :不少時候須要討論在DevOps流程中出了什麼問題。 爲此,安排了驗後會議。 這些會議產生了應該採起的步驟,以免未來安排會議時遇到的相同或一組失敗。

問題18: 在資產管理和配置管理之間進行比較。

答 :監視和維護實體或組的有價值的東西的過程稱爲資產管理。

配置管理是指控制,識別,計劃和驗證服務中的配置項以支持變動管理的過程。

問題19:您可否陳述和解釋連續測試的各個關鍵要素?

答 :連續測試的各類關鍵要素包括:

  • 高級分析–用於預測和預測未知的將來事件
  • 策略分析–旨在改善測試過程的手段
  • 需求可追溯性–指描述需求以及從需求的起源到部署的整個過程的能力
  • 風險評估–識別可能形成潛在損害的危害和風險因素的方法或過程
  • 服務虛擬化–容許使用虛擬服務代替生產服務。 仿真軟件組件以進行簡單測試
  • 測試優化–改善總體測試流程

問題20: 請從開發和基礎結構方面說明DevOps的核心操做。

答 :在開發和基礎架構方面,DevOps的核心運營是:

  • 應用程序開發–開發可以知足全部客戶要求並提供卓越質量水平的產品
  • 代碼覆蓋率–衡量在運行自動測試時執行的代碼的塊,線或弧的總數
  • 代碼開發–準備產品開發所需的代碼庫
  • 配置–以最佳方式使用產品
  • 部署–安裝要由最終用戶使用的軟件
  • 編排–安排一些自動化任務
  • 打包–準備發佈時涉及的活動
  • 調配–確保基礎結構更改隨須要的代碼及時到達
  • 單元測試–測試單個單元或組件的方法

這樣就構成了20個重要的DevOps面試問題的清單。 除了增長得到DevOps職位的機會以外,這些絕對能夠幫助您評估並提升您對DevOps的當前瞭解水平。

來源:http://bjbsair.com/it/1307.html

相關文章
相關標籤/搜索