2019 DevOps 必備面試題——持續集成篇

原文地址:medium.com/edureka/dev…
原文做者:Saurabh Kulshrestha
翻譯君:CODING 戴維奧普斯java

Q1:什麼是持續集成?

我會建議你以持續集成的最小定義做爲開始來回答這個問題。這是一種研發實踐,須要開發人員天天屢次將代碼集成到共享代碼庫中。而後經過自動構建來驗證每次代碼的修改,以便團隊儘早發現問題。shell

我建議你解釋一下在之前的工做中是如何實施持續集成的,能夠參考如下示例:安全

圖片

在上圖中: 一、開發人員將代碼 clone 至私有工做區。 二、完成編碼後,他們將更改提交至共享代碼庫中(版本控制倉庫)。 三、CI 服務器監視代碼倉庫並在發生更改時檢出更改。 四、緊接着 CI 服務器提取這些變動進行構建、運行單元以及集成測試。 五、CI 服務器會當即告知團隊構建成功與否。 六、若是構建失敗,CI 服務器會向團隊發送告警。 七、研發團隊將盡快解決問題。 八、這個過程會不斷重複。服務器

Q2:爲何研發團隊須要開發與測試的持續集成?

對於這個答案,你應該關注持續集成的需求。我建議你在回答中提到如下解釋: 開發和測試的持續集成經過在完成全部開發以後替換傳統的測試實踐,來提升軟件質量並減小交付耗時。它容許開發團隊儘早檢測和定位問題,由於開發人員須要天天屢次(或更頻繁地)將代碼集成到代碼倉庫中,而後自動驗證每次集成。maven

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

在這裏,你必須提到持續集成的要求,能夠在回答中包含如下幾點:工具

  • 維護代碼倉庫
  • 自動化構建
  • 讓構建自我檢測
  • 每一個人天天都確保已將修改提交至基線
  • 保持快速構建
  • 在生產環境的克隆環境中進行測試
  • 研發團隊能夠輕鬆得到最新的可交付成果
  • 每一個人均可以看到最新構建的結果
  • 自動部署

Q4:如何將 Jenkins 從一臺服務器遷移或者複製到另外一臺服務器?

我會經過將 jobs 目錄從舊服務器複製到新服務器的方式來完成這個事情。有不少種方法能夠作到這一點:測試

  • 只需複製相應的 job 目錄,便可將 job 從一個 Jenkins 服務器移動到另外一個。
  • 經過使用其它名稱克隆 job 目錄來製做現有 job 的副本。
  • 經過重命名目錄來重命名現有 job。請注意,若是你更改了 job 名稱,則須要更改嘗試調用該重命名 job 的全部 job 。

Q5:如何在 Jenkins 中建立備份和複製文件?

能夠很直接地回答這個問題:要建立備份。你須要作的就是按期備份 JENKINS_HOME 目錄。這包含全部構建 job 配置,從屬節點配置和構建歷史記錄。要建立 Jenkins 的備份,只需複製此目錄便可,你還能夠複製 job 目錄或重命名目錄。ui

Q6:如何配置 Jenkins 的 job?

關於這個答案的解決方法是首先提一下如何建立 job:轉到 Jenkins 首頁,選擇「New Job」,而後選擇「Build a free-style software project」。而後你能夠設置這個自由式 job 的元素:編碼

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

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

下面我將提到一些重要插件:.net

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

我以爲這些是最有用的插件,你也能夠添加你認爲有用的插件。可是請確保首先提到上述插件,而後添加你本身的插件。

Q8:如何保證 Jenkins 的安全?

  • 確保 global security 配置項已經打開。
  • 確保用適當的插件將 Jenkins 與企業員工目錄進行集成。
  • 確保啓用項目矩陣的權限訪問設置。
  • 經過自定義版本控制的腳原本自動化 Jenkins 中設置權限/特權的過程。
  • 限制對 Jenkins 數據/文件夾的物理訪問。
  • 按期對其進行安全審覈。

點擊使用 CODING 體驗 DevOps 全工具鏈敏捷研發

相關文章
相關標籤/搜索