最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

如何擴(kuò)展及優(yōu)化CI/CD流水線?

2023-06-26 09:57 作者:SEAL安全  | 我要投稿

如今應(yīng)用程序的開發(fā)通常由多個(gè)開發(fā)人員組成的團(tuán)隊(duì)完成。每個(gè)人或團(tuán)隊(duì)在項(xiàng)目中發(fā)揮自己的作用,然后我們發(fā)現(xiàn)在項(xiàng)目的末尾總是有幾段代碼需要編譯,根據(jù)每個(gè)人的工作方法,管理這種集成可能會浪費(fèi)很多時(shí)間。持續(xù)集成和持續(xù)交付/部署(CI/CD)便用來解決該問題,確保發(fā)布更新順利進(jìn)行,避免不必要的延遲和沖突。
?

因此為應(yīng)用程序開發(fā)和實(shí)施 CI/CD 工作流程越來越普遍,與此同時(shí),實(shí)施 CI/CD 時(shí)也面臨許多挑戰(zhàn)。在今天的文章中我們將一同探討這些挑戰(zhàn)具體是什么,以及我們應(yīng)當(dāng)如何對 CI/CD 進(jìn)行擴(kuò)展和優(yōu)化。
?

CI/CD 流程中的挑戰(zhàn)

CI/CD 過程緩慢

速度是任何 CI/CD 過程的重要因素之一。如果您的 CI 服務(wù)器和部署需要半小時(shí)才能完成該過程,并且您有多個(gè)團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)計(jì)劃每天部署幾次,那么您的 CI/CD 流水線確實(shí)會被阻塞。開發(fā)人員必須在隊(duì)列中等待 CI/CD 可用。一些企業(yè)限制了可以在給定時(shí)間運(yùn)行的流水線,但這樣依舊無法有效提供現(xiàn)代企業(yè)所需的快速發(fā)布。
?

設(shè)置新流水線很復(fù)雜

當(dāng)今 CI/CD 流水線使用的基礎(chǔ)設(shè)施復(fù)雜且難以設(shè)置。大多數(shù)新應(yīng)用程序都使用微服務(wù),這會頻繁觸發(fā)新的 CI/CD 流水線啟動。但是當(dāng)您擴(kuò)展現(xiàn)有的 CI/CD 基礎(chǔ)架構(gòu)時(shí),必須處理與云基礎(chǔ)架構(gòu)相關(guān)的許多復(fù)雜問題。如果流水線和基礎(chǔ)設(shè)施管理不是自動化的,這將浪費(fèi)許多時(shí)間在為新流水線配置基礎(chǔ)設(shè)施和配置上。
?

單個(gè) CI 服務(wù)器產(chǎn)生阻塞

在基于微服務(wù)的應(yīng)用程序部署中,CI 服務(wù)器是平穩(wěn)發(fā)布工作流程的關(guān)鍵點(diǎn)。如前所述,微服務(wù)快速觸發(fā) CI 服務(wù)器,CI 服務(wù)器由于請求過多而阻塞是很常見的。您可以垂直擴(kuò)展 CI 服務(wù)器,這將暫時(shí)解決問題,但最終您將需要創(chuàng)建多個(gè)具有獨(dú)立職責(zé)的 CI 服務(wù)器。即使是一個(gè)整體但不斷增長的應(yīng)用程序也會在沖刺結(jié)束時(shí)阻塞你的 CI 服務(wù)器,因?yàn)樵谧詈笠环昼娪刑嗟拇a更改,并且平均每 30 分鐘就會有不同的開發(fā)人員進(jìn)行部署。
?

擴(kuò)展 CI/CD

當(dāng)微服務(wù)數(shù)量增加時(shí),對 CI/CD 進(jìn)行擴(kuò)展是不可避免的。微服務(wù)數(shù)量的增加導(dǎo)致不同的流水線連接到單個(gè) git 存儲庫,這增加了 CI 服務(wù)器的負(fù)載并降低了性能。要擴(kuò)展 CI/CD,為所有團(tuán)隊(duì)創(chuàng)建一個(gè)標(biāo)準(zhǔn)化和自動化的開發(fā)流水線,確保開發(fā)人員交付和團(tuán)隊(duì)交付的質(zhì)量,同時(shí)還讓流水線的管理變得容易。
?

可以通過定義用于執(zhí)行單元測試和驗(yàn)證交付代碼質(zhì)量的CI 流程來實(shí)現(xiàn)擴(kuò)展,隨后是用于構(gòu)建鏡像并將它們持續(xù)部署到環(huán)境中的 CD 過程,最后定義用于構(gòu)建鏡像并將它們部署到生產(chǎn)環(huán)境中的過程。接下來我們將按步驟來講解如何對 CI/CD 進(jìn)行擴(kuò)展。
?

擴(kuò)展 CI/CD 的步驟

流水線遵循 Git 分支到環(huán)境的映射(開發(fā) ?? 開發(fā)和主控 ?? 批準(zhǔn)和生產(chǎn))。然后在每次拉取請求時(shí)觸發(fā) CI 作業(yè),在映射分支中的每次更改時(shí)觸發(fā) CD 作業(yè)??梢园凑找韵虏襟E來創(chuàng)建 CI 和 CD 工作流。
?

CI 工作流程分為 7 個(gè)步驟:

  • 查看 Pull Request 源和目標(biāo)分支;

  • 檢查合并是否沒有需要手動解決的問題;

  • 運(yùn)行單元測試;

  • 構(gòu)建包以驗(yàn)證完整性和代碼可編譯性;

  • 觸發(fā)代碼質(zhì)量驗(yàn)證;

  • 增加并提交項(xiàng)目版本到源分支;

  • 通過 Webhook 或 Rest API 調(diào)用(Git 存儲庫)通知 Pull Request Git 存儲庫成功或失敗。

?
CD 作業(yè)流程遵循以下路徑:

  • 通知的分支被簽出。

  • 工使用正在處理的項(xiàng)目的特定構(gòu)建工具構(gòu)建工件。

  • 工件構(gòu)建好后,將庫項(xiàng)目發(fā)送到 Nexus 工件存儲,流程結(jié)束。

?
然后執(zhí)行以下操作:

  • 第 1 步:為生成的工件創(chuàng)建 Docker 鏡像,將工件版本應(yīng)用到 Docker 鏡像。

  • 第 2 步:鏡像上傳到 Docker registry。

  • 第 3 步:通過 Kubernetes 通過鏡像部署進(jìn)行部署。

?
對于審批/生產(chǎn)環(huán)境中的應(yīng)用程序項(xiàng)目,請按照上面的步驟 1 和 2,然后執(zhí)行以下操作:

  • 在審批環(huán)境中通過 Kubernetes 通過 image rollout 進(jìn)行部署;

  • 作業(yè)暫停等待 rollout 被批準(zhǔn)用于生產(chǎn);

  • 如果通過,則將正在通過的鏡像進(jìn)行生產(chǎn);

  • 如果不通過,它則會回滾批準(zhǔn)的鏡像。

CI/CD 優(yōu)化

CI/CD 改善了應(yīng)用開發(fā)周期,解決了集成新代碼和增加交付頻率帶來的問題。接下來我們會一起探討如何進(jìn)一步優(yōu)化 CI/CD 的使用。
?

優(yōu)先修復(fù)損壞的構(gòu)建

當(dāng)構(gòu)建出現(xiàn)故障時(shí),修復(fù)故障應(yīng)該是團(tuán)隊(duì)的首要任務(wù)。如果構(gòu)建不能在幾分鐘內(nèi)修復(fù),團(tuán)隊(duì)必須決定是刪除代碼還是禁用功能標(biāo)志。修復(fù)損壞的構(gòu)建背后的主要思想是構(gòu)建始終生成可以發(fā)布的工作代碼。
?

小批量頻繁部署

通常只要部署發(fā)生,應(yīng)用程序的穩(wěn)定性就會受到威脅。因此我們傾向于將部署分開,但這種方法的問題是部署中積累的變化太多,如果其中一項(xiàng)更改出錯(cuò),將會迫使我們回滾其他正在運(yùn)行的更改。因此請將復(fù)雜的變化分解成小而簡單的變化,如果更頻繁地部署并小批量工作,則部署的風(fēng)險(xiǎn)更低。
?

自動化 QA 測試以降低風(fēng)險(xiǎn)

您的本地環(huán)境與投入生產(chǎn)的環(huán)境之間可能存在許多不同之處,可以通過自動化 QA 任務(wù)(例如瀏覽器測試)來優(yōu)化 CI/CD,從而降低錯(cuò)誤影響實(shí)時(shí)應(yīng)用程序的風(fēng)險(xiǎn)。
?

信任自動化測試

為了驗(yàn)證開發(fā)人員何時(shí)集成新代碼,CI 依賴于自動化且可靠的測試套件。如果需要編譯代碼,第一個(gè)測試是編譯,然后您可以添加您認(rèn)為關(guān)鍵的任意數(shù)量的測試。
?

那么應(yīng)該包括多少個(gè)測試?請記住 CI 的目標(biāo)是盡快提供反饋。如果開發(fā)人員必須等待一個(gè)小時(shí)才能獲得反饋是行不通的。錯(cuò)誤難以避免,當(dāng)你發(fā)現(xiàn)生產(chǎn)中的錯(cuò)誤時(shí),可以創(chuàng)建一個(gè)測試用例并將其包含在 CI 循環(huán)中。
?

始終考慮安全性

始終考慮 CI/CD 工具在集成到現(xiàn)有配置或環(huán)境中時(shí)的安全性。CI/CD 要求以編程方式調(diào)用所有安全測試工具,并將它們的結(jié)果聚合在一個(gè)地方。請尋找具有用于自動加密審計(jì)的 API 的工具。
?

擴(kuò)展和優(yōu)化 CI/CD 的好處

減少開銷

當(dāng)您通過自動化測試、自動交付和自動回滾來擴(kuò)展 CI/CD 流程時(shí),您可以減少流程中涉及的手動工作。手動操作會浪費(fèi)很多時(shí)間并且容易出錯(cuò)。自動化大部分 CI/CD 流程將節(jié)省時(shí)間,這些時(shí)間可用于修復(fù)生產(chǎn)錯(cuò)誤等有價(jià)值的活動。
?

以更少的錯(cuò)誤和更低的風(fēng)險(xiǎn)交付

當(dāng)您的 CI/CD 通過自動化擴(kuò)展時(shí),通過更頻繁地發(fā)布較小的更改,您可以在開發(fā)過程中更早地發(fā)現(xiàn)錯(cuò)誤。當(dāng)您在開發(fā)的所有階段實(shí)施自動化測試時(shí),可以更頻繁地發(fā)布修復(fù)程序,而不必?fù)?dān)心 CI/CD 所花費(fèi)的時(shí)間。自動化集成測試是構(gòu)建運(yùn)行狀況的關(guān)鍵點(diǎn),您可以安全地將代碼移至下一階段。如果需要,自動化管道可以更輕松地回滾更改。
?

最大限度地提高開發(fā)人員的生產(chǎn)力

當(dāng)您的 CI/CD 流程被擴(kuò)展時(shí),您的開發(fā)人員可以專注于業(yè)務(wù)需求并監(jiān)控產(chǎn)品的行為。他們可以在不依賴運(yùn)營團(tuán)隊(duì)的情況下自行自助服務(wù)任何產(chǎn)品部署。自助服務(wù)功能還使他們能夠嘗試創(chuàng)新的產(chǎn)品解決方案。這種自主和自力更生的感覺造就了一款非常精致的產(chǎn)品。
?

總結(jié)

CI/CD 使您的集成和交付更快。但是,重要的是根據(jù)企業(yè)的需求和市場變化對其進(jìn)行擴(kuò)展和優(yōu)化,以避免該過程因復(fù)雜性增加而拖延產(chǎn)品交付的速度。

如何擴(kuò)展及優(yōu)化CI/CD流水線?的評論 (共 條)

分享到微博請遵守國家法律
道孚县| 壤塘县| 抚松县| 南木林县| 涡阳县| 城市| 潼关县| 巧家县| 伽师县| 铁岭市| 五华县| 潢川县| 屯留县| 英德市| 侯马市| 鄂托克旗| 同心县| 麻江县| 安溪县| 闽侯县| 阿巴嘎旗| 阆中市| 新巴尔虎左旗| 上饶市| 江山市| 镶黄旗| 苗栗县| 仁化县| 涞源县| 交口县| 方山县| 太白县| 芜湖县| 黑龙江省| 达拉特旗| 新安县| 通州市| 萝北县| 邓州市| 报价| 织金县|