DevOps

什麼是DevOps?

DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用於促進開發、技術運營和質量保障(QA)部門之間的溝通、協作與整合。

可以把DevOps看作開發(軟體工程)、技術運營和質量保障(QA)三者的交集。

瞭解DevOps,CI,CD,自動化

DevOps好處?

DevOps 使以前孤立的角色(開發、IT 運營、質量工程和安全)可以協調和協作,以生產更好、更可靠的產品。透過採用 DevOps 文化、做法和工具,團隊能夠更好地響應客戶需求,增強對所構建應用程式的信心,更快地實現業務目標。

CI/CD

CI/CD是什麼?

CI/CD 是一種透過在應用開發階段引入自動化來頻繁向客戶交付應用的方法。CI/CD 的核心概念是持續整合、持續交付和持續部署。作為一個面向開發和運營團隊的解決方案,CI/CD 主要針對在整合新程式碼時所引發的問題(亦稱:“整合地獄”)。

具體而言,CI/CD 可讓持續自動化和持續監控貫穿於應用的整個生命週期(從整合和測試階段,到交付和部署)。這些關聯的事務通常被統稱為“CI/CD 管道”,由開發和運維團隊以敏捷方式協同支援。

瞭解DevOps,CI,CD,自動化

CI 持續整合(Continuous Integration)

現代應用開發的目標是讓多位開發人員同時處理同一應用的不同功能。但是,如果企業安排在一天內將所有分支原始碼合併在一起(稱為“合併日”),最終可能造成工作繁瑣、耗時,而且需要手動完成。這是因為當一位獨立工作的開發人員對應用進行更改時,有可能會與其他開發人員同時進行的更改發生衝突。如果每個開發人員都自定義自己的本地整合開發環境(IDE),而不是讓團隊就一個基於雲的 IDE 達成一致,那麼就會讓問題更加雪上加霜。

持續整合(CI)可以幫助開發人員更加頻繁地(有時甚至每天)將程式碼更改合併到共享分支或“主幹”中。一旦開發人員對應用所做的更改被合併,系統就會透過自動構建應用並執行不同級別的自動化測試(通常是單元測試和整合測試)來驗證這些更改,確保這些更改沒有對應用造成破壞。這意味著測試內容涵蓋了從類和函式到構成整個應用的不同模組。如果自動化測試發現新程式碼和現有程式碼之間存在衝突,CI 可以更加輕鬆地快速修復這些錯誤。

CD 持續交付(Continuous Delivery)

完成 CI 中構建及單元測試和整合測試的自動化流程後,持續交付可自動將已驗證的程式碼釋出到儲存庫。為了實現高效的持續交付流程,務必要確保 CI 已內置於開發管道。持續交付的目標是擁有一個可隨時部署到生產環境的程式碼庫。

在持續交付中,每個階段(從程式碼更改的合併,到生產就緒型構建版本的交付)都涉及測試自動化和程式碼釋出自動化。在流程結束時,運維團隊可以快速、輕鬆地將應用部署到生產環境中。

CD 持續部署(Continuous Deployment)

對於一個成熟的 CI/CD 管道來說,最後的階段是持續部署。作為持續交付——自動將生產就緒型構建版本釋出到程式碼儲存庫——的延伸,持續部署可以自動將應用釋出到生產環境。由於在生產之前的管道階段沒有手動門控,因此持續部署在很大程度上都得依賴精心設計的測試自動化。

實際上,持續部署意味著開發人員對應用的更改在編寫後的幾分鐘內就能生效(假設它通過了自動化測試)。這更加便於持續接收和整合使用者反饋。總而言之,所有這些 CI/CD 的關聯步驟都有助於降低應用的部署風險,因此更便於以小件的方式(而非一次性)釋出對應用的更改。不過,由於還需要編寫自動化測試以適應 CI/CD 管道中的各種測試和釋出階段,因此前期投資還是會很大。

自動化

IT 自動化是什麼意思?

IT 自動化有時也稱為基礎架構自動化,是使用軟體來建立可重複的指令和程序,以此取代或減少人類與 IT 系統的互動。自動化軟體在這些指令、工具和框架的約束範圍內工作,從而在幾乎不需人工干預的情況下執行任務。

為什麼需要 IT 自動化?

自動化是 IT 最佳化和數字化轉型的關鍵。如今多變的 IT 環境需要以前所未有的速度進行擴充套件,而這個目標的實現離不開 IT 自動化。

參考:

什麼是 DevOps?DevOps 解釋 | Microsoft Azure

DevOps(過程、方法與系統的統稱)_百度百科

什麼是 IT 自動化?一文帶你理解 IT 自動化的含義,範圍和好處

什麼是 CI/CD?一文帶你理解CI持續整合和CD持續交付/部署 - 紅帽