前言:
隨著企業(yè)應用的不斷迭代,不斷擴大,應用的發(fā)布發(fā)布可能涉及多個團隊,如pc端,手機端,小程序端等等。應用發(fā)布也就成為了一項高風險,高壓力的超過過程,以及應用的開發(fā)迭代的溝通,測試成本也大大的變得不可控了。這時候就出現(xiàn)了DevOps管理理念,CI,CD以及強大的部署自動化手段確保部署任務的可重復性、減少部署出錯的可能性。下面簡單的描述一下這四者的基本概念。
DevOps
什么是DevOps?
DevOps(Development和Operations的組合詞)是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進開發(fā)、技術運營和質量保障(QA)部門之間的溝通、協(xié)作與整合。
可以把DevOps看作開發(fā)、技術運營和質量保障(QA)三者的交集。
DevOps好處? DevOps 使以前孤立的角色(開發(fā)、IT 運營、質量工程和安全)可以協(xié)調(diào)和協(xié)作,以生產(chǎn)更好、更可靠的產(chǎn)品。通過采用 DevOps 文化、做法和工具,團隊能夠更好地響應客戶需求,增強對所構建應用程序的信心,更快地實現(xiàn)業(yè)務目標。
CI/CD
CI/CD是什么?
CI/CD 是一種通過在應用開發(fā)階段引入自動化來頻繁向客戶交付應用的方法。CI/CD 的核心概念是持續(xù)集成、持續(xù)交付和持續(xù)部署。作為一個面向開發(fā)和運營團隊的解決方案,CI/CD 主要針對在集成新代碼時所引發(fā)的問題。具體而言,CI/CD 可讓持續(xù)自動化和持續(xù)監(jiān)控貫穿于應用的整個生命周期(從集成和測試階段,到交付和部署)。這些關聯(lián)的事務通常被統(tǒng)稱為“CI/CD 管道”,由開發(fā)和運維團隊以敏捷方式協(xié)同支持。
CI 持續(xù)集成(Continuous Integration)
現(xiàn)代應用開發(fā)的目標是讓多位開發(fā)人員同時處理同一應用的不同功能。但是,如果企業(yè)安排在一天內(nèi)將所有分支源代碼合并在一起,最終可能造成工作繁瑣、耗時,而且需要手動完成。這是因為當一位獨立工作的開發(fā)人員對應用進行更改時,有可能會與其他開發(fā)人員同時進行的更改發(fā)生沖突。如果每個開發(fā)人員都自定義自己的本地集成開發(fā)環(huán)境(IDE),而不是讓團隊就一個基于云的 IDE 達成一致,那么就會讓問題更加雪上加霜?! 〕掷m(xù)集成(CI)可以幫助開發(fā)人員更加頻繁地(有時甚至每天)將代碼更改合并到共享分支或“主干”中。一旦開發(fā)人員對應用所做的更改被合并,系統(tǒng)就會通過自動構建應用并運行不同級別的自動化測試(通常是單元測試和集成測試)來驗證這些更改,確保這些更改沒有對應用造成破壞。這意味著測試內(nèi)容涵蓋了從類和函數(shù)到構成整個應用的不同模塊。如果自動化測試發(fā)現(xiàn)新代碼和現(xiàn)有代碼之間存在沖突,CI 可以更加輕松地快速修復這些錯誤。CD 持續(xù)交付(Continuous Delivery)完成 CI 中構建及單元測試和集成測試的自動化流程后,持續(xù)交付可自動將已驗證的代碼發(fā)布到存儲庫。為了實現(xiàn)高效的持續(xù)交付流程,務必要確保 CI 已內(nèi)置于開發(fā)管道。持續(xù)交付的目標是擁有一個可隨時部署到生產(chǎn)環(huán)境的代碼庫。在持續(xù)交付中,每個階段(從代碼更改的合并,到生產(chǎn)就緒型構建版本的交付)都涉及測試自動化和代碼發(fā)布自動化。在流程結束時,運維團隊可以快速、輕松地將應用部署到生產(chǎn)環(huán)境中。
CD 持續(xù)部署(Continuous Deployment)
對于一個成熟的 CI/CD 管道來說,最后的階段是持續(xù)部署。作為持續(xù)交付——自動將生產(chǎn)就緒型構建版本發(fā)布到代碼存儲庫——的延伸,持續(xù)部署可以自動將應用發(fā)布到生產(chǎn)環(huán)境。由于在生產(chǎn)之前的管道階段沒有手動門控,因此持續(xù)部署在很大程度上都得依賴精心設計的測試自動化。實際上,持續(xù)部署意味著開發(fā)人員對應用的更改在編寫后的幾分鐘內(nèi)就能生效(假設它通過了自動化測試)。這更加便于持續(xù)接收和整合用戶反饋??偠灾?,所有這些 CI/CD 的關聯(lián)步驟都有助于降低應用的部署風險,因此更便于以小件的方式(而非一次性)發(fā)布對應用的更改。不過,由于還需要編寫自動化測試以適應 CI/CD 管道中的各種測試和發(fā)布階段,因此前期投資還是會很大。
自動化
IT 自動化是什么意思?
IT 自動化有時也稱為基礎架構自動化,是使用軟件來創(chuàng)建可重復的指令和進程,以此取代或減少人類與 IT 系統(tǒng)的交互。自動化軟件在這些指令、工具和框架的約束范圍內(nèi)工作,從而在幾乎不需人工干預的情況下執(zhí)行任務。
為什么需要 IT 自動化?
自動化是IT 優(yōu)化和數(shù)字化轉型的關鍵。如今多變的 IT 環(huán)境需要以前所未有的速度進行擴展,而這個目標的實現(xiàn)離不開 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,自動化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 利用FlubuCore用C#來寫DevOps腳本的方法詳解