【9】進大廠必須掌握的面試題-DevOps面試

Q1。DevOps和Agile之間的根本區別是什麼?

下表中列出了二者之間的差別。java

特徵 DevOps--開發運維 Agile--敏捷
敏捷 開發和運營中的敏捷性 只有發展才能敏捷
流程/實踐 涉及CI,CD,CT等流程。 涉及諸如敏捷Scrum,敏捷看板等實踐。
時效與質量 時效與質量同等重要 及時是重中之重
發佈週期/開發週期 釋放週期短,可當即得到反饋 釋放週期更短
反饋來源 反饋來自自我(監視工具) 反饋來自客戶
工做範圍 敏捷性與自動化需求 僅敏捷

Q2。DevOps有什麼需求?

這個答案應該從解釋整體市場趨勢開始。公司沒有發佈大量功能,而是嘗試查看是否能夠經過一系列發佈系列將小的功能傳輸給客戶。這具備許多優勢,例如來自客戶的快速反饋,更好的軟件質量等,從而致使很高的客戶滿意度。爲此,公司必須:ios

  1. 增長部署頻率
  2. 下降新版本的失敗率
  3. 縮短了兩次版本之間的交付時間
  4. 新版本崩潰時平均恢復時間更快

DevOps知足全部這些要求,並有助於實現無縫的軟件交付。您能夠舉一些像Etsy,ali,Google和Amazon這樣的公司的例子,這些公司採用DevOps來達到甚至五年前都沒法想象的性能水平。他們天天進行數十,數百甚至數千個代碼部署,同時提供世界一流的穩定性,可靠性和安全性。安全

Q3。DevOps與Agile / SDLC有何不一樣?

我建議您遵循如下說明:服務器

敏捷是關於如何生產(即開發軟件)的一套價值觀和原則。示例:若是您有一些想法,而且想要將這些想法變成可行的軟件,則可使用敏捷的價值觀和原則來作到這一點。可是,該軟件可能只能在開發人員的筆記本電腦或測試環境中運行。您須要一種以安全,簡單的方式快速,輕鬆且可重複地將軟件遷移到生產基礎架構中的方法。爲此,您須要DevOps工具和技術。架構

能夠這樣歸納地說,敏捷軟件開發方法論着重於軟件開發,但另外一方面,DevOps負責以最安全,最可靠的方式進行軟件的開發和部署。運維

Q4。有哪些頂級DevOps工具?您使用了哪些工具?

如下是最受歡迎的DevOps工具:工具

  • Git:版本控制系統工具
  • Jenkins:持續集成工具
  • Selenium :連續測試工具
  • Puppet, Chef, Ansible:配置管理和部署工具
  • Nagios:連續監視工具
  • Docker:容器化工具

您還能夠根據須要說起其餘任何工具,但請確保在回答中包括上述工具。
答案的第二部分有兩種可能性:性能

  1. 若是您具備上述全部工具的經驗,那麼您能夠說我已經在全部這些工具上工做,以開發高質量的軟件並輕鬆,頻繁且可靠地部署這些軟件。
  2. 若是您僅對上述某些工具備經驗,請說起這些工具,並說我對這些工具備專長,並對其他工具進行了概述。

Q5。全部這些工具如何一塊兒工做?

下面給出的是通用邏輯流程,其中全部內容均實現了自動化以實現無縫交付。可是,根據需求,每一個組織的流程可能會有所不一樣。測試

  1. 開發人員開發代碼,此源代碼由版本控制系統工具(如Git等)管理。
  2. 開發人員將此代碼發送到Git存儲庫,而且對代碼所作的任何更改都將提交到此存儲庫。
  3. Jenkins使用Git插件從存儲庫中提取此代碼,並使用Ant或Maven之類的工具進行構建。
  4. 諸如puppet之類的配置管理工具會部署並配置測試環境,而後Jenkins在測試環境中發佈此代碼,並使用硒等工具在此環境中進行測試。
  5. 一旦測試了代碼,Jenkins便將其發送以在生產服務器上進行部署(甚至生產服務器也由puppet之類的工具提供和維護)。
  6. 部署後,它會被Nagios等工具持續監控。
  7. Docker容器提供了測試環境以測試構建功能。

Q6。DevOps有哪些優點?

技術優點:網站

  • 持續交付軟件
  • 不太複雜的問題須要解決
  • 更快地解決問題

商業利益:

  • 更快地交付功能
  • 更穩定的操做環境
  • 更多時間可用於增長價值(而不是修復/維護)

Q7。DevOps幫助咱們實現的最重要的事情是什麼?

據我說,DevOps幫助咱們實現的最重要的事情是儘快將變動投入生產,同時最大程度地下降軟件質量保證和合規性方面的風險。可是,您能夠添加DevOps的許多其餘積極做用。例如,團隊之間的更清晰的溝通和更好的工做關係,即Ops團隊和Dev團隊共同協做以交付高質量的軟件,從而提升了客戶滿意度。

Q8。說明能夠在工業/現實生活中使用DevOps的用例。

Etsy是一個對等電子商務網站,專一於手工或老式物品和用品,以及獨特的工廠製造物品。Etsy在緩慢而痛苦的網站更新中苦苦掙扎,這些更新常常致使網站崩潰。這影響了數百萬Etsy用戶的銷售量,這些用戶經過在線市場出售商品並冒着將商品推向競爭對手的風險。
在新的技術管理團隊的幫助下,Etsy從其瀑布模型(該模型每週兩次進行四小時的全站點部署)過渡到了更加敏捷的方法。現在,它擁有一個徹底自動化的部署流程,據報道,其持續交付實踐天天可進行50屢次部署,中斷次數更少。

Q9。在過去與您合做過的團隊中,說明您在軟件開發方面和技術運營方面的理解和專業知識。

DevOps工程師幾乎老是在24/7關鍵業務在線環境中工做。我適應了隨叫隨到的職責,能夠承擔實時的實時系統職責。我成功地實現了流程自動化,以支持連續的軟件部署。我對公共/私有云,Chef或Puppet等工具,使用Python和PHP等工具進行腳本編寫和自動化以及在Agile中具備背景知識有豐富的經驗。

Q10。DevOps的反模式是什麼?

模式一般是經常使用的用法。若是其餘人一般採用的模式對您的組織不起做用,而且您繼續盲目地遵循它,那麼您其實是在採用反模式。關於DevOps的神話。其中一些包括:

  • DevOps是一個過程
  • 敏捷等於DevOps?
  • 咱們須要一個單獨的DevOps組
  • Devops將解決咱們全部的問題
  • DevOps意味着開發人員管理生產
  • DevOps是開發驅動的發佈管理
    1. DevOps不是由開發驅動的。
    2. DevOps不是由IT Operations驅動的。
  • 咱們沒法作DevOps –咱們是獨一無二的
  • 咱們沒法進行DevOps –咱們選錯了人

歡迎關注 Java架構師社區公衆號.
本文轉載自Java架構師必看 ,更多內容點擊查看!

相關文章
相關標籤/搜索