【編者按】隨着 DevOps 被欲來越多機構採用,一些共性的問題也暴露出來。近日,Joe Yankel在「Devops Q&A: Frequently Asked Questions」一文中總結了近段時間參與各類活動中常常碰見的幾個問題。本文系 OneAPM 工程師編譯整理:html
從11月至今,在維護 DevOps 博客、參加網絡研討會與各類會議的過程當中,筆者碰見了不少有關 DevOps 的各方面問題,包括變動管理、安全性與具體方法。本文將就幾個頻繁被問及的問題進行回答。安全
1. 變動與發佈管理與 DevOps 如何集成?網絡
首先,變動一直是 DevOps 文化之一。Gene Kim] (https://en.wikipedia.org/wiki/Gene_Kim)在 [「The Three Ways」中描述了支撐 DevOps 的3個原則,他表示,DevOps 的一個核心原則(第2條)就是加強 feedback loop(反饋環)。經過持續反覆的反饋迴路,開發者可以快速響應客戶需求。feedback loop 是變動管理髮揮做用的環節。通常來說,在狀況脫離預期時就會對變動管理,或者由客戶(內部或者外部客戶)決定變動應當進行,以加強商業價值。事實上,這種類型的變動是良性的,開發者應當促成這種變動。oop
在沒有 DevOps 並缺乏持續集成(CI)與持續交付(CD)激勵的狀況下,正式發佈以前,沒人會對變動提出要求。但隨着 CI 與 CD 到位,release 會更快速更頻繁。從而,客戶有機會提早發現是否須要變動。快速提交能讓他們更迅速地評估產品與自身需求,從而反過來促成需求的變動。事實上,沒什麼比能親眼看到、親手使用更加清晰產品須要變動的方向。spa
2. 在這樣一個迭代環境/流程中,如何確保一直兼顧安全性需求?在 DevOps 環節中是否須要專門的安全人員?htm
安全性在整個 DevOps 環節中的優先級一直是最高的。下圖是用來描述 DevOps 典型的文氏圖(Venn diagram):blog
實際上,人們常常忽視安全性,甚至沒有畫出這一環節。在描述安全的 DevOps 時,SEI's CERT Division中推薦使用的圖表以下:three
必須時刻考慮到安全性問題,同時整個 DevOps 環節都應當有安全專家的參與。不能期望開發或支持團隊在項目中做出安全決策。若是對公司來講,安全性舉足輕重(而且近期一直如此),那麼專門的安全/隱私專家就很是必要。專業的開發或運營人員應當精通如下方面:生命週期
數據隱私性ip
入侵偵測
入侵載體
安全性封裝
身份驗證
受權
安全標準合規性
微軟 SDL(安全開發週期)列出了在一個項目週期中引入安全性的方式。在整個項目週期中,至少應當有一名專業的安全人員與 DevOps 團隊緊密合做,他會考慮其餘人不會考慮到的安全性相關問題,結果顯然喜聞樂見。
3. DevOps 是否只能用於敏捷開發中,仍是適用於任何種類的開發週期?
DevOps 的確是敏捷開發的延伸,但它更可能是一種文化或理念(請參看第一個問題中提到的「The Three Ways」)。無需採用敏捷開發即可使用 DevOps,由於很明顯使用 DevOps 會比普通的SDLC(軟件開發生命週期)更爲高效,但單獨使用 DevOps 可能困難度更高一些。敏捷開發固然比其餘的 SDLC(例如瀑布開發)對 DevOps 幫助更大。不使用敏捷開發仍能達成目的,但使用後效果更佳。