什麼是DevOps

什麼是DevOps

2018/5/25

前言:aws 這份定義清晰明瞭,值得回顧。

DevOps 模式定義

DevOps 集文化理念、實踐和工具於一身,可以提高組織高速交付應用程序和服務的能力,與使用傳統軟件開發和基礎設施管理流程相比,能夠幫助組織更快地發展和改進產品。這種速度使組織能夠更好地服務其客戶,並在市場上更高效地參與競爭。

DevOps 的工作原理

在 DevOps 模式下,開發團隊和運營團隊都不再是“孤立”的團隊。有時,這兩個團隊會合爲一個團隊,他們的工程師會在應用程序的整個生命週期(從開發測試到部署再到運營)內相互協作,開發出一系列不限於單一職能的技能。

在一些 DevOps 模式下,質保和安全團隊也會與開發和運營團隊更緊密地結合在一起,貫穿應用程序的整個生命週期。當安全是所有 DevOps 團隊成員的工作重心時,這有時被稱爲“DevSecOps”。
這些團隊會使用實踐經驗自動執行之前手動操作的緩慢流程。他們使用能夠幫助其快速可靠地操作和發展應用程序的技術體系和工具。這些工具還可以幫助工程師獨立完成通常需要其他團隊協作才能完成的任務(例如部署代碼或預置基礎設施),從而進一步提高團隊的工作速度。

DevOps 的優勢

速度

高速運轉,讓您可以更快速地針對客戶進行創新、更好地適應不斷變化的市場,同時更有效地推動業務成果。DevOps 模式能夠幫助您的開發人員和運營團隊實現這些目標。例如,微服務和持續交付能夠讓團隊充分掌控服務,然後更快速地發佈更新。

快速交付

提高發布的頻率和速度,以便您能夠更快速地進行創新並完善產品。您發佈新功能和修復錯誤的速度越快,就越能快速地響應客戶需求並建立競爭優勢。持續集成和持續交付是自動執行軟件發佈流程(從構建到部署)的兩項實踐經驗。

可靠性

確保應用程序更新和基礎設施變更的品質,以便您能夠在保持最終用戶優質體驗的同時,更加快速可靠地進行交付。使用持續集成和持續交付等實踐經驗來測試每次變更是否安全以及能夠正常運行。進行監控和記錄實踐經驗能夠幫助您實時瞭解當前的性能。

規模

大規模運行和管理您的基礎設施及開發流程。自動化和一致性可在降低風險的同時,幫助您有效管理複雜或不斷變化的系統。例如,基礎設施即代碼能夠幫助您以一種可重複且更有效的方式來管理部署、測試和生產環境。

增強合作

建立一個適應 DevOps 文化模式的更高效的團隊,強調主人翁精神和責任感。開發人員和運營團隊密切合作,共同承擔諸多責任,並將各自的工作流程相互融合。這有助於減少效率低下的工作,同時節約大家的時間(例如,縮短開發人員和運營團隊之間的交接時間,編寫將運行環境考慮在內的代碼)。

安全性

在快速運轉的同時保持控制力和合規性。利用自動實施的合規性策略、精細控制和配置管理技術,您可以在不犧牲安全性的前提下采用 DevOps 模式。例如,利用基礎設施即代碼和策略即代碼,您可以大規模定義並追蹤合規性。

DevOps 爲什麼很重要

軟件和 Internet 改變了我們身處的世界,同時也改變了購物、娛樂、銀行等行業的運營方式。軟件不再僅僅是爲業務提供支持,而是成爲業務的方方面面都不可或缺的組成部分。當前,公司通過採用在線服務或應用程序交付的軟件,在各種設備上與客戶進行互動。他們還使用軟件改變了價值鏈的各個部分(例如物流、通信和運營),從而提高運營效率。在整個 20 世紀,生產實體產品的公司通過工業自動化改變了其設計、構建和交付產品的方式,而在當今的環境中,公司必須以同樣的方式來改變其構建和交付軟件的方式。

如何採用 DevOps 模式

DevOps 的文化理念

向 DevOps 的過渡需要文化理念和心態上的轉變。簡單來說,DevOps 的宗旨就是消除兩個傳統上孤立的團隊(開發團隊和運營團隊)之間的壁壘。有些組織甚至沒有獨立的開發團隊和運營團隊,工程師可能身兼兩職。利用 DevOps,這兩個團隊可以攜手合作,共同提高開發人員的生產力,同時增強運營的可靠性。他們力求頻繁溝通、提高效率,並改善客戶服務的質量。他們能夠完全掌控自己的服務,並且經常越過自己的既定角色或職能的傳統工作範疇,思考最終用戶的需求以及解決這些需求。質保和安全團隊也可以與這兩個團隊緊密協作。凡是採用 DevOps 模式的組織,無論組織結構如何,參與團隊都會將整個開發和基礎設施生命週期視爲己任。

DevOps 實踐說明

有一些重要的實踐經驗能夠通過自動實施和簡化軟件開發與基礎設施管理流程,幫助組織加快創新速度。這些實踐經驗有大部分需要通過適當的工具來完成。

其中一個基本實踐經驗就是要頻繁地進行小規模更新。這是組織能爲客戶快速提供創新的有效方式。與傳統發佈實踐中偶爾的更新相比,這種更新通常更具漸進性質。頻繁的小規模更新能夠降低每次部署的風險。它們可以幫助團隊更快速地處理錯誤,因爲團隊能夠確定引發錯誤的最近一次部署。雖然更新的節奏和規模可能有所不同,但使用 DevOps 模式的組織與使用傳統軟件部署實踐的組織相比,會更頻繁更新。

此外,組織還可以使用微服務架構來提升應用程序的靈活性,從而加快創新步伐。微服務架構將大型的複雜系統拆分爲簡單的獨立項目。應用程序被拆分爲許多單個組件(服務),每個服務限定到單個目的或功能,這些服務既可以與其同級服務相互獨立運行,也可以與應用程序一起作爲整體運行。這種架構降低了更新應用程序的協調開銷,當每個服務都與掌控各項服務的敏捷小型團隊一一對應時,組織就可以實現更快的發展。

但是,微服務與較高的發佈頻率相結合會導致部署量大幅度增加,可能會帶來運營挑戰。因此,持續集成和持續交付等 DevOps 實踐經驗有助於解決這些問題,讓組織能夠以安全可靠的方式快速交付。與基礎設施即代碼和配置管理一樣,基礎設施自動化實踐經驗也有助於維持計算資源的彈性和對頻繁變更的適應性。此外,進行監控和記錄這一實踐經驗可幫助工程師追蹤應用程序和基礎設施的性能,以便他們快速應對出現的問題。

綜合採用上述實踐經驗,可以幫助組織向客戶更快交付更可靠的更新。對重要 DevOps 實踐經驗的簡要介紹如下。

DevOps 實踐經驗

以下列舉了一些 DevOps 最佳實踐:

  • 持續集成
  • 持續交付
  • 微服務
  • 基礎設施即代碼
  • 監控和日誌記錄
  • 溝通與合作

您可以從下文中瞭解每種實踐的詳細信息。

持續集成
持續集成是一種軟件開發實踐經驗,採用持續集成時,開發人員會定期將他們的代碼變更合併到一箇中央存儲庫中,之後系統會自動運行構建和測試操作。持續集成的主要目標是更快發現並解決錯誤,提高軟件質量,並縮短驗證和發佈新軟件更新所需的時間。

持續交付
持續交付是一種軟件開發實踐經驗,採用持續交付時,系統會對代碼變更自動進行構建和測試,併爲發佈到生產環境做好準備。持續交付可以在構建階段後將所有代碼變更都部署到測試環境和/或生產環境中,從而實現對持續集成的擴展。當持續交付得以正確實施時,開發人員將始終能夠獲得一個已通過標準化測試流程的部署就緒型構建工件。

微服務
微服務架構是一種將單個應用程序構建爲一系列小服務的設計方法。其中每個服務均按各自的流程運行,並利用一種輕型機制(通常爲基於 HTTP 的應用程序編程接口 (API))通過一個明確定義的接口與其他服務進行通信。微服務圍繞着業務能力進行構建,每項服務均限定到單個目的。您可以使用不同的框架或編程語言來編寫微服務,並將其作爲單個服務或一組服務進行獨立部署。

基礎設施即代碼
基礎設施即代碼是一種實踐經驗,其中基礎設施通過代碼和軟件部署技術(例如版本控制和持續集成)得以預置和管理。藉助雲的 API 驅動型模式,開發人員和系統管理員能夠以編程方式與基礎設施進行大規模互動,而無需手動設置和配置資源。因此,工程師可以使用基於代碼的工具來連接基礎設施,並且能夠以處理應用程序代碼的方式來處理基礎設施。基礎設施和服務器由代碼進行定義,因此可以使用標準化模式進行快速部署、使用最新補丁和版本進行更新,或者以可重複的方式進行復制。

配置管理
開發人員和系統管理員使用代碼將操作系統和主機配置、操作性任務等自動化。代碼的使用實現了配置變更的可重複性和標準化。它將開發人員和系統管理員從手動配置操作系統、系統應用程序或服務器軟件的任務中解放出來。

策略即代碼
由於基礎設施及其配置全都通過雲進行代碼編寫,所以組織可以動態地大規模監控與實現合規性。因此,組織可以自動跟蹤、驗證和重新配置由代碼描述的基礎設施。這樣一來,組織能夠更加輕鬆地掌控資源變更,並確保安全措施以分佈式方式得到妥善執行(例如,採用 PCI-DSS 或 HIPAA 確保信息安全性或合規性)。這使組織內部的團隊能夠更快速地運作,因爲不合規的資源可能被自動標記爲需要進一步調查,甚至被自動糾正爲合規資源。

監控和日誌記錄
組織對各項指標和日誌進行監控,以瞭解應用程序和基礎設施性能如何影響其產品的最終用戶體驗。通過對應用程序和基礎設施生成的數據進行採集、分類和分析,組織可以瞭解變更或更新如何影響用戶,同時深入瞭解出現問題或意外變故的根本原因。由於服務必須全天候持續可用,而且應用程序和基礎設施的更新頻率不斷提高,因此主動監控變得日益重要。此外,創建警報或對這些數據執行實時分析也能幫助組織更主動地監控其服務。

溝通與合作
增強組織內部的溝通與合作是 DevOps 文化的一個重要方面。DevOps 工具的使用和軟件交付流程的自動化能夠以物理方式將開發和運行的工作流程及職責結合起來,從而建立團隊之間的相互協作。在此基礎上,這些團隊樹立了強大的文化規範,提倡信息共享和通過聊天應用程序、問題或項目追蹤系統以及 Wikis 來促進溝通。這有助於加快開發人員、運營團隊甚至其他團隊(如營銷團隊或銷售團隊)之間的溝通,從而使組織的各個部門圍繞共同的目標和項目更緊密地結合在一起。

ZYXW、參考

  1. 什麼是 DevOps?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章