天天看點

2019 DevOps 必備面試題——持續內建篇

原文位址: https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3

原文作者:Saurabh Kulshrestha

翻譯君:CODING 戴維奧普斯

Q1:什麼是持續內建?

我會建議你以持續內建的最小定義作為開始來回答這個問題。這是一種研發實踐,需要開發人員每天多次将代碼內建到共享代碼庫中。然後通過自動建構來驗證每次代碼的修改,以便團隊盡早發現問題。

我建議你解釋一下在以前的工作中是如何實施持續內建的,可以參考以下示例:

2019 DevOps 必備面試題——持續內建篇

在上圖中:

1、開發人員将代碼 clone 至私有工作區。

2、完成編碼後,他們将更改送出至共享代碼庫中(版本控制倉庫)。

3、CI 伺服器監視代碼倉庫并在發生更改時檢出更改。

4、緊接着 CI 伺服器提取這些變更進行建構、運作單元以及內建測試。

5、CI 伺服器會立即告知團隊建構成功與否。

6、如果建構失敗,CI 伺服器會向團隊發送告警。

7、研發團隊将盡快解決問題。

8、這個過程會不斷重複。

Q2:為什麼研發團隊需要開發與測試的持續內建?

對于這個答案,你應該關注持續內建的需求。我建議你在回答中提到以下解釋:

開發和測試的持續內建通過在完成所有開發之後替換傳統的測試實踐,來提高軟體品質并減少傳遞耗時。它允許開發團隊盡早檢測和定位問題,因為開發人員需要每天多次(或更頻繁地)将代碼內建到代碼倉庫中,然後自動驗證每次內建。

Q3:持續內建的成功因素有哪些?

在這裡,你必須提到持續內建的要求,可以在回答中包含以下幾點:

  • 維護代碼倉庫
  • 自動化建構
  • 讓建構自我檢測
  • 每個人每天都確定已将修改送出至基線
  • 保持快速建構
  • 在生産環境的克隆環境中進行測試
  • 研發團隊可以輕松獲得最新的可傳遞成果
  • 每個人都可以看到最新建構的結果
  • 自動部署

Q4:如何将 Jenkins 從一台伺服器遷移或者複制到另一台伺服器?

我會通過将 jobs 目錄從舊伺服器複制到新伺服器的方式來完成這個事情。有很多種方法可以做到這一點:

  • 隻需複制相應的 job 目錄,即可将 job 從一個 Jenkins 伺服器移動到另一個。
  • 通過使用其它名稱克隆 job 目錄來制作現有 job 的副本。
  • 通過重命名目錄來重命名現有 job。請注意,如果你更改了 job 名稱,則需要更改嘗試調用該重命名 job 的所有 job 。

Q5:如何在 Jenkins 中建立備份和複制檔案?

可以很直接地回答這個問題:要建立備份。你需要做的就是定期備份 JENKINS_HOME 目錄。這包含所有建構 job 配置,從屬節點配置和建構曆史記錄。要建立 Jenkins 的備份,隻需複制此目錄即可,你還可以複制 job 目錄或重命名目錄。

Q6:如何配置 Jenkins 的 job?

關于這個答案的解決方法是首先提一下如何建立 job:轉到 Jenkins 首頁,選擇“New Job”,然後選擇“Build a free-style software project”。然後你可以設定這個自由式 job 的元素:

  • 可選的 SCM,例如源代碼所在的 CVS 或 Subversion。
  • 用于控制 Jenkins 何時執行建構的觸發器。
  • 某種建構腳本,用于執行實際工作的建構(ant,maven,shell 腳本,批處理檔案等)。
  • 從建構中收集資訊的可選步驟,例如歸檔制品、記錄 javadoc 和測試結果。
  • 配置建構結果通知其他人/系統的步驟,例如發送電子郵件、即時消息、更新問題跟蹤器等。

Q7:列舉 Jenkins 中一些有用的插件

下面我将提到一些重要插件:

  • Maven 2 project
  • Amazon EC2
  • HTML publisher
  • Copy artifact
  • Join
  • Green Balls

我覺得這些是最有用的插件,你也可以添加你認為有用的插件。但是請確定首先提到上述插件,然後添加你自己的插件。

Q8:如何保證 Jenkins 的安全?

  • 確定 global security 配置項已經打開。
  • 確定用适當的插件将 Jenkins 與企業員工目錄進行內建。
  • 確定啟用項目矩陣的權限通路設定。
  • 通過自定義版本控制的腳本來自動化 Jenkins 中設定權限/特權的過程。
  • 限制對 Jenkins 資料/檔案夾的實體通路。
  • 定期對其進行安全稽核。