IronCloud:哪些問題困擾著我們?DevOps使用建議

隨著 DevOps 被欲來越多機構採用,一些共性的問題也暴露出來。近日,Joe Yankel在「Devops Q&A: Frequently Asked Questions」一文中總結了近段時間參與各種活動中經常遇見的幾個問題。本文系 OneAPM 工程師編譯整理:

IronCloud:哪些問題困擾著我們?DevOps使用建議

從11月至今,在維護 DevOps 部落格、參加網路研討會與各種會議的過程中,筆者遇見了很多有關 DevOps 的各方面問題,包括變更管理、安全性與具體方法。本文將就幾個頻繁被問及的問題進行回答。

1。 變更與釋出管理與 DevOps 如何整合?

首先,變更一直是 DevOps 文化之一。Gene Kim在 “The Three Ways”中描述了支撐 DevOps 的3個原則,他表示,DevOps 的一個核心原則(第2條)就是增強 feedback loop(反饋環)。透過持續反覆的反饋迴路,開發者能夠快速響應客戶需求。feedback loop 是變更管理發揮作用的環節。一般來講,在情況脫離預期時就會對變更管理,或者由客戶(內部或者外部客戶)決定變更應當進行,以增強商業價值。事實上,這種型別的變更是良性的,開發者應當促成這種變更。

在沒有 DevOps 並缺少持續整合(CI)與持續交付(CD)激勵的情況下,正式釋出之前,沒人會對變更提出要求。但隨著 CI 與 CD 到位,release 會更快速更頻繁。從而,客戶有機會提前發現是否需要變更。快速提交能讓他們更迅速地評估產品與自身需求,從而反過來促成需求的變更。事實上,沒什麼比能親眼看到、親手使用更加清晰產品需要變更的方向。

2。 在這樣一個迭代環境/流程中,如何確保一直兼顧安全性需求?在 DevOps 環節中是否需要專門的安全人員?

安全性在整個 DevOps 環節中的優先順序一直是最高的。下圖是用來描述 DevOps 典型的文氏圖(Venn diagram):

實際上,人們經常忽視安全性,甚至沒有畫出這一環節。在描述安全的 DevOps 時,SEI‘s CERT Division中推薦使用的圖表如下:

必須時刻考慮到安全性問題,同時整個 DevOps 環節都應當有安全專家的參與。不能指望開發或支援團隊在專案中作出安全決策。如果對公司來說,安全性舉足輕重(並且近期一直如此),那麼專門的安全/隱私專家就非常必要。專業的開發或運營人員應當精通以下方面:

資料隱私性 入侵偵測 入侵載體 通用漏洞列表(CVEs) 安全性封裝 身份驗證 授權 安全標準合規性

微軟 SDL(安全開發週期)列出了在一個專案週期中引入安全性的方式。在整個專案週期中,至少應當有一名專業的安全人員與 DevOps 團隊緊密合作,他會考慮其他人不會考慮到的安全性相關問題,結果顯然喜聞樂見。

3。 DevOps 是否只能用於敏捷開發中,還是適用於任何種類的開發週期?

DevOps 的確是敏捷開發的延伸,但它更多是一種文化或理念(請參看第一個問題中提到的「The Three Ways」)。無需採用敏捷開發便可使用 DevOps,因為很明顯使用 DevOps 會比普通的SDLC(軟體開發生命週期)更為高效,但單獨使用 DevOps 可能困難度更高一些。敏捷開發當然比其他的 SDLC(例如瀑布開發)對 DevOps 幫助更大。不使用敏捷開發仍能達成目的,但使用後效果更佳。