DevOps,CI,CD,自動化簡單介紹
2021-01-13 23:00:10 軟體

前言:

  隨著企業應用的不斷迭代,不斷擴大,應用的釋出釋出可能涉及多個團隊,如pc端,手機端,小程式端等等。應用釋出也就成為了一項高風險,高壓力的超過過程,以及應用的開發迭代的溝通,測試成本也大大的變得不可控了。這時候就出現了DevOps管理理念,CI,CD以及強大的部署自動化手段確保部署任務的可重複性、減少部署出錯的可能性。下面簡單的描述一下這四者的基本概念。

DevOps

什麼是DevOps?

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

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

DevOps好處?

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

CI/CD

CI/CD是什麼?

  CI/CD 是一種通過在應用開發階段引入自動化來頻繁向客戶交付應用的方法。CI/CD 的核心概念是持續整合、持續交付和持續部署。作為一個面向開發和運營團隊的解決方案,CI/CD 主要針對在整合新程式碼時所引發的問題。
具體而言,CI/CD 可讓持續自動化和持續監控貫穿於應用的整個生命週期(從整合和測試階段,到交付和部署)。這些關聯的事務通常被統稱為「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 自動化。
 

參考文章