iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0

在繼續其他開發工作之前,先來探討兩個經常一起提到但又有所不同的概念:CI/CD(持續整合和持續交付)和 DevOps。

頻繁地將新功能和更新推送給用戶是已經變成現代開發團隊的首要任務。但是開發→交付→維運的這種古早作法使得發佈周期被拉長,開發和維運部門之間還經常為各種問題鬧不愉快。

DevOps 的概念因此而生,通過強調協作和工作流程自動化,嘗試緩解兩者的衝突。

一、問題的根源:缺乏協作造成低效

在傳統的軟體開發,開發團隊 coding 好產品後就交由維運團隊負責部署和維護。這導致幾個嚴重問題:

  1. 上線周期冗長:新功能需要很長時間才能發布。
  2. 故障頻發:開發和維運的團隊可能分屬不同的部門,甚至是處。這會造成無法有效溝通和協作。
  3. 系统隔離:各開發/維運團隊孤立,無法協同工作。

二、DevOps 產生的背景和目標

DevOps 概念就是要於消除開發和維運之間的隔閡,它強調團隊之間的密切協作是成功的關鍵。
除此之外,DevOps 還通過對工作流程、工具和組織結構進行優化,實現從代碼到部署的全流程自動化和監控。

三、CI/CD 實踐是 DevOps 的關鍵

CI/CD (持續整合/持續交付)就是實踐 DevOps 理念的重要方式。

  • CI 要求開發者頻繁地將代碼合併到主分支,並通過自動化測試確保品質和正確性。

  • CD 將編譯、測試、發布和部署連貫起來,使產品可以自動快速交付給最終用戶。

CI/CD 構建起端到端的、自動化的流水線 (pipeline),極大地提升了發布效率和產品品質。

四、DevOps vs CI/CD

DevOps 跟 CI/CD 好像是同義詞,但其實不是。我們需要認識到兩者之間的區別:

  1. DevOps 更強調文化變革,而 CI/CD 專注於技術實踐層面。
  2. 建立CI/CD 流水線是實現 DevOps 的重要一環,但不能解決全部問題。
  3. 單純引入 CI/CD 並不等於 DevOps,團隊間的和諧、信任、互助合作也非常重要。
  4. 要真正實現 DevOps,除 CI/CD 外,還需要從流程、架構、文化等多方面著手。

五、總結

DevOps 和 CI/CD 密不可分,但要全面實施DevOps,僅建立CI/CD是不夠的,還需要開發和維運一起,在流程、文化各個層面共同努力。
我個人感覺 DevOps 要在已經將開發跟維運切開的公司推展開來感覺很難。目前工作的地方就是這樣,很常去跟 infra team 問東問西,對方都不回,但是 server 維運又是放在他們那邊,不去問又沒辦法讓系統上線,整個很麻煩...


上一篇
Day 1: 簡介、預計成果
下一篇
Day 3: GitHub Actions 的 CI/CD 流程
系列文
30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言