Q1,DevOps和Agile之間的根本區別是什么?
下表中列出了兩者之間的差異,
| 特征 | DevOps--開發運維 | Agile--敏捷 |
|---|---|---|
| 敏捷 | 開發和運營中的敏捷性 | 只有發展才能敏捷 |
| 流程/實踐 | 涉及CI,CD,CT等流程, | 涉及諸如敏捷Scrum,敏捷看板等實踐, |
| 時效與質量 | 時效與質量同等重要 | 及時是重中之重 |
| 發布周期/開發周期 | 釋放周期短,可立即獲得反饋 | 釋放周期更短 |
| 反饋來源 | 反饋來自自我(監視工具) | 反饋來自客戶 |
| 作業范圍 | 敏捷性與自動化需求 | 僅敏捷 |
Q2,DevOps有什么需求?
這個答案應該從解釋總體市場趨勢開始,公司沒有發布大量功能,而是嘗試查看是否可以通過一系列發布系列將小的功能傳輸給客戶,這具有許多優點,例如來自客戶的快速反饋,更好的軟體質量等,從而導致很高的客戶滿意度,為此,公司必須:
- 增加部署頻率
- 降低新版本的失敗率
- 縮短了兩次版本之間的交付時間
- 新版本崩潰時平均恢復時間更快
DevOps滿足所有這些要求,并有助于實作無縫的軟體交付,您可以舉一些像Etsy,ali,Google和Amazon這樣的公司的例子,這些公司采用DevOps來達到甚至五年前都無法想象的性能水平,他們每天進行數十,數百甚至數千個代碼部署,同時提供世界一流的穩定性,可靠性和安全性,
Q3,DevOps與Agile / SDLC有何不同?
我建議您遵循以下說明:
敏捷是關于如何生產(即開發軟體)的一套價值觀和原則,示例:如果您有一些想法,并且想要將這些想法變成可行的軟體,則可以使用敏捷的價值觀和原則來做到這一點,但是,該軟體可能只能在開發人員的筆記本電腦或測驗環境中運行,您需要一種以安全,簡單的方式快速,輕松且可重復地將軟體遷移到生產基礎架構中的方法,為此,您需要DevOps工具和技術,
可以這樣概括地說,敏捷軟體開發方法論著重于軟體開發,但另一方面,DevOps負責以最安全,最可靠的方式進行軟體的開發和部署,
Q4,有哪些頂級DevOps工具?您使用了哪些工具?
以下是最受歡迎的DevOps工具:
- Git:版本控制系統工具
- Jenkins:持續集成工具
- Selenium :連續測驗工具
- Puppet, Chef, Ansible:配置管理和部署工具
- Nagios:連續監視工具
- Docker:容器化工具
您還可以根據需要提及其他任何工具,但請確保在回答中包括上述工具,
答案的第二部分有兩種可能性:
- 如果您具有上述所有工具的經驗,那么您可以說我已經在所有這些工具上作業,以開發高質量的軟體并輕松,頻繁且可靠地部署這些軟體,
- 如果您僅對上述某些工具有經驗,請提及這些工具,并說我對這些工具有專長,并對其余工具進行了概述,
Q5,所有這些工具如何一起作業?
下面給出的是通用邏輯流程,其中所有內容均實作了自動化以實作無縫交付,但是,根據需求,每個組織的流程可能會有所不同,
- 開發人員開發代碼,此源代碼由版本控制系統工具(如Git等)管理,
- 開發人員將此代碼發送到Git存盤庫,并且對代碼所做的任何更改都將提交到此存盤庫,
- Jenkins使用Git插件從存盤庫中提取此代碼,并使用Ant或Maven之類的工具進行構建,
- 諸如puppet之類的配置管理工具會部署并配置測驗環境,然后Jenkins在測驗環境中發布此代碼,并使用硒等工具在此環境中進行測驗,
- 一旦測驗了代碼,Jenkins便將其發送以在生產服務器上進行部署(甚至生產服務器也由puppet之類的工具提供和維護),
- 部署后,它會被Nagios等工具持續監控,
- 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是開發驅動的發布管理
- DevOps不是由開發驅動的,
- DevOps不是由IT Operations驅動的,
- 我們無法做DevOps –我們是獨一無二的
- 我們無法進行DevOps –我們選錯了人
歡迎關注 Java架構師社區公眾號.
本文轉載自Java架構師必看 ,更多內容點擊查看!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/176986.html
標籤:Java
下一篇:JVM系列【6】GC與調優4
