天天看點

什麼是DevOps什麼是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 驅動型模式,開發人員和系統管理者能夠以程式設計方式與基礎設施進行大規模互動,而無需手動設定和配置資源。是以,工程師可以使用基于代碼的工具來連接配接基礎設施,并且能夠以處理應用程式代碼的方式來處理基礎設施。基礎設施和伺服器由代碼進行定義,是以可以使用标準化模式進行快速部署、使用最新更新檔和版本進行更新,或者以可重複的方式進行複制。

配置管理

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

ZYXW、參考

  1. 什麼是 DevOps?

繼續閱讀