自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于Kubernetes的CICD實戰(zhàn)

云計算 云原生
CICD 是 DevOps 文化的一種實現(xiàn),旨在通過 CICD 流水線讓應用可以從代碼簽入、測試、構建和部署直至生產階段都在流水線中向前推進。企業(yè)一旦引入 CICD,就可以將其部分或者全部自動化,而且加快交付流程,降低溝通成本以及錯誤成本。

什么是DevOps

在過去十年,DevOps 一直是大家熱議的話題,10 個人心中有 10 個哈姆雷特,十家公司卻不止十個 DevOps 定義,也許在你從事技術的生涯中,聽過不止 100 種 DevOps 定義。

那究竟什么是 DevOps 呢?

在維基百科上是這么說的,DevOps 是一種重視“軟件開發(fā)人員(Dev)”和“IT 運維人員(Ops)”之間溝通合作的文化、運動或慣例。通過自動化“軟件交付”和“架構變更”的流程,來使構建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。

在我看來,DevOps 是一套圍繞軟件開發(fā)整個生命周期,以不斷改進和提高交付價值的最佳實踐。通過 DevOps,讓開發(fā)、運維、運營之間可以平等的傳播文化,而不用局限在特定的角色。

DevOps 強調通過一系列手段來實現(xiàn)既快又穩(wěn)的工程流程,使每個想法從開發(fā)到生產的周期內都能不斷的為用戶帶來價值。它是一個方法論,并不指代某一特定的軟件工具或軟件工具組合。各種工具軟件或軟件組合可以實現(xiàn) DevOps 的概念方法。其本質是一整套的方法論,而不是指某種或某些工具集合,與軟件開發(fā)中設計到的 OOP、AOP、IOC(或 DI)等類似,是一種理論或過程或方法的抽象或代稱。

什么是CICD

CICD 是 DevOps 文化的一種實現(xiàn),旨在通過 CICD 流水線讓應用可以從代碼簽入、測試、構建和部署直至生產階段都在流水線中向前推進。企業(yè)一旦引入 CICD,就可以將其部分或者全部自動化,而且加快交付流程,降低溝通成本以及錯誤成本。

CI

CI 的英文名稱是 Continuous Integration,中文翻譯為:持續(xù)集成。

圖片

CI 中,開發(fā)人員將會頻繁地向主干提交代碼,這些新提交的代碼在最終合并到主干前,需要經過編譯和自動化測試流進行驗證。持續(xù)集成(CI)是在源代碼變更后自動檢測、拉取、構建和(在大多數(shù)情況下)進行單元測試的過程。持續(xù)集成的目標是快速確保開發(fā)人員新提交的變更是好的,并且適合在代碼庫中進一步使用。CI 的流程執(zhí)行和理論實踐讓我們可以確定新代碼和原有代碼能否正確地集成在一起。

CD

CD 可對應多個英文名稱,持續(xù)交付 Continuous Delivery 和持續(xù)部署 Continuous Deployment ,下面分別介紹。

持續(xù)交付

完成 CI 中構建及單元測試和集成測試的自動化流程后,持續(xù)交付可自動將已驗證的代碼發(fā)布到存儲庫。為了實現(xiàn)高效的持續(xù)交付流程,務必要確保 CI 已內置于開發(fā)管道。持續(xù)交付的目標是擁有一個可隨時部署到生產環(huán)境的代碼庫。

在持續(xù)交付中,每個階段(從代碼更改的合并,到生產就緒型構建版本的交付)都涉及測試自動化和代碼發(fā)布自動化。在流程結束時,運維團隊可以快速、輕松地將應用部署到生產環(huán)境中或發(fā)布給最終使用的用戶。

持續(xù)集成

對于一個成熟的 CI/CD 管道(Pipeline)來說,最后的階段是持續(xù)部署。作為持續(xù)交付——自動將生產就緒型構建版本發(fā)布到代碼存儲庫——的延伸,持續(xù)部署可以自動將應用發(fā)布到生產環(huán)境。

圖片

持續(xù)部署意味著所有的變更都會被自動部署到生產環(huán)境中。持續(xù)交付意味著所有的變更都可以被部署到生產環(huán)境中,但是出于業(yè)務考慮,可以選擇不部署。如果要實施持續(xù)部署,必須先實施持續(xù)交付。

持續(xù)交付并不是指軟件每一個改動都要盡快部署到產品環(huán)境中,它指的是任何的代碼修改都可以在任何時候實施部署。持續(xù)交付表示的是一種能力,而持續(xù)部署表示的則一種方式。持續(xù)部署是持續(xù)交付的最高階段。

CICD 和 DevOps 的關系

CICD 是軟件工程實踐的方法,而 DevOps 是一種文化,CICD 只是 DevOps 文化體系中的一環(huán),但是從目前國內的實踐來看,CICD 算是最重要的一環(huán)了。

圖片

企業(yè)如何落地CICD

對于企業(yè)來說,CICD是必不可少的一環(huán),而且隨著云原生的發(fā)展,CICD工具集也百花齊放。

但是,作為老牌的CICD工具,Jenkins在其中依然處于至關重要的位置,大部分企業(yè)在落地CICD的時候都會優(yōu)先考慮使用Jenkins。

為此,我開發(fā)了一套基于Jenkins實現(xiàn)的CICD課程,帶你從0到1建立一套完整的CICD,整個課程涵蓋:

  • Kubernetes的部署使用
  • Helm Chart開發(fā)使用
  • Jenkins Pipeline開發(fā)、共享庫使用
  • Argocd持續(xù)部署
  • Argo Rollouts灰度發(fā)布
  • ......
責任編輯:姜華 來源: 運維開發(fā)故事
相關推薦

2022-10-17 10:35:34

DevOpsCICD

2021-07-07 10:21:26

技術

2021-07-26 14:31:49

GitLab KubernetesFlask Web

2020-04-09 15:23:19

Kubernetes發(fā)布系統(tǒng)集群

2015-07-17 10:25:43

kubernetesDocker集群系統(tǒng)

2017-08-23 11:10:44

Kubernetes 調度詳解

2020-01-07 09:25:02

服務網(wǎng)格微服務Kubernetes

2020-04-27 09:38:15

Kubernetes多云混合云

2020-03-06 16:00:04

KubernetesSpark容器

2021-02-24 09:15:48

kubernetes混合云云端

2021-03-11 10:24:58

Kubernetes混合云云平臺

2023-09-05 08:21:07

項目CICD場景

2015-08-04 10:26:44

OpenStackKubernetes容器管理

2023-11-08 00:23:08

網(wǎng)關API

2019-05-21 10:45:44

Docker架構容器

2020-12-01 08:21:05

微服務監(jiān)控Kubernetes

2023-09-26 06:54:01

2022-05-11 08:45:49

VaultGitlab加密

2025-01-22 13:15:10

2022-04-01 10:51:33

TektonArgoCDGitOps
點贊
收藏

51CTO技術棧公眾號