Day17:從歷史看 CI/CD Pipeline(五)

昨天我們聊到 Container 出現後,對於 CI/CD Pipeline 也帶來巨大的影響,進入了第 2.5 代的 CI/CD Pipeline,今天我們要繼續推進下去,在那之後又有哪些東西對於 CI/CD Pipeline 帶來新的影響?

簡單來說,主力還是 Cloud 與 Container 的持續發展,當然不用說與 CNCF 及圍繞 K8s 建構的龐大生態系脫離不了關係。

最完整版 CI/CD 工具時間軸,含 Spinnaker(2015)、Jenkins X(2018)、Argo CD(2019)、GitOps(2017)、IaC 書籍第一版(2016)與第二版(2020)、Pulumi v2.0.0 與 Terraform v1.0.0(2021)等

  • 像是 2015 出現的 Bubby,它協助人們更容易、簡單地建立 DevOps Pipeline,將應用程式部署上雲;
  • 或是 2015 出現的 Spinnaker,你看看他們官網標題的關鍵字「Multi-cloud continuous delivery」; Spinnaker 官方介紹截圖:「Multi-cloud continuous delivery for the enterprise」,搭配藍色蜘蛛 logo (圖片擷取自 Spinnaker 官網。)
  • 2018 出現的超合金老爺爺 Jenkins X,一樣官網直白的就跟你說「All In One CI/CD including everything you need to start exploring Kubernetes」。 Jenkins X 官方網站截圖,標語為「All In One CI/CD including everything you need to start exploring Kubernetes」 (圖片擷取自 Jenkins X 官網。)
  • 2019 出現的 Argo CD——「Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.」

因此第 3 代的 CI/CD Pipeline,我覺得如果要直白一點說明,那就是完全根據 Cloud Native 思維而打造的 CI/CD Pipeline。

當世界接受 Cloud + Container 是未來的主流趨勢,IT 服務已能完全仰賴 Cloud 作為 infrastructure 之後,這導致軟體開發、部署及維運的思維又再一次的演化了——既然你遲早都要上雲的,為何不打從一開始就規劃適合上雲的應用程式架構、適合上雲的軟體開發、部署及維運流程、適合上雲的 DevOps Pipeline、適合上雲的⋯⋯

另外,與 Cloud & Container 技術及思維同一時期發展的還有另一個重要觀念,即是 Infrastructure as Code(IaC)。IaC 同名書籍的第一版於 2016 年出版上市,第一版還只有簡短地談到 Container,但在 2020 上市的第二版,就在書中大幅增加更多吻合 Cloud & Container 的內容。當 Cloud 變得更加的多元、複雜,我們確實需要一個更「簡單」更容易「管理」Cloud + Infrastructure 的方法及輔助工具,而 IaC 似乎有機會成為那個關鍵。

CI/CD 工具時間軸局部放大,聚焦 2014 年後的近代工具,含 Docker、Kubernetes、Spinnaker、IaC 書籍、Jenkins X、Argo CD、Pulumi、Terraform 等

最後 2017 由 weaveworks 率先喊出的 buzzword - GitOps,我個人也覺得是第 3 代的 CI/CD Pipeline 很重要的事件與思維。但這裡就先賣個關子,先拋出兩個提問,歡迎大家一起來思考一下:

  1. 在目前的當下,你的團隊或組織如果要實踐 GitOps,會遇到的難題是?
  2. GitOps 解決了什麼問題?這些問題是「新的問題」?還是原來「既有的問題」?

今天的 DevOps 輕鬆聊,就分享到此,我們明天見~