DevOps,CI,CD,自動化簡述

前言:

  隨著企業應用的不斷迭代,不斷擴大,應用的發佈發佈可能涉及多個團隊,如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 自動化。

參考文章

https://azure.microsoft.com/zh-cn/overview/what-is-devops/https://baike.baidu.com/item/devops/2613029https://www.redhat.com/zh/topics/devops/what-is-ci-cdhttps://www.redhat.com/zh/topics/automation/whats-it-automation

到此這篇關於DevOps,CI,CD,自動化簡單介紹的文章就介紹到這瞭,更多相關DevOps,CI,CD,自動化內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: