iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
2

CI/CD 說文解字

談到 DevOps 一定會常常聽到 CI/CD ,不知道有多少人跟我一樣,聽了老半天還是不知道在說什麼?先來說文解字一下,什麼是 CI/CD 呢?先來看一下英文原文跟中文翻譯:

  • CI 原文為 Continuous Integration,中文翻譯是「持續性整合」
  • CD 原文為 Continuous Delivery,中文翻譯是「持續性發佈」

翻譯之後看起來比較好懂了嗎?我覺得還是有點難,所以我們還是再來多解釋一點,「持續性整合」跟「持續性發佈」我比較先能理解的是「持續性發佈」,所以本文會從「持續性發佈」先介紹,再來介紹「持續性整合」。

說文解字「持續性發佈」

我們先來解釋,什麼是「發佈」?

一般工程師在撰寫程式碼的時候,會在自己的電腦中寫,當程式完成到一個段落之後,才會把整包程式碼「丟」至服務主機,把程式碼從開發的主機放置到正式提供服務的主機,這樣的動作,我們稱之為「發佈」。那什麼是「持續性發佈」呢?就是一直把程式碼從開發的地方丟到服務的主機上嗎??

我自己的認知到的概念確實是這樣沒錯,實際上的做法或是工具有很多種,不管選用哪種方式,想要達到的目的是,當程式碼開發完成後,可以自動且快速的部署到正式的服務主機。

為什麼需要「持續性發佈」?

其實也是源自於組織以及提供的服務很大,如果今天團隊小小的,提供的服務少少的,那每次開發完,手工發布可能不會是一個負擔,但當組織變大,服務也變多了,除了定時的更新,或許還會有線上問題處理後需要快速上線,這樣的時空背景下,手工發佈就會是一個瓶頸點。

為了解決手工發佈造成的困擾,「持續性發佈」的概念就這樣因應而生。

什麼是「持續性整合」?

持續性整合我算是聽了真的很久很久才有稍微了解這五個字指的是什麼?我覺得問題是源自於對於背景概念不夠清楚,我說的背景觀念是一般軟體工程中理想應該要做到的事情,其實開發久了,就會知道除了寫出功能的程式碼以外,如果要確保程式品質,有一些是在發佈程式之前要做的檢查。

最最基本的就是確認程式碼是否有語法錯誤,你沒看錯,有時候因為時間急迫,或是不小心疏忽,語法錯誤的問題程式碼是有可能被發佈到正式環境,除了一般的語法檢查,理想的程式開發過程中,有很多測試要寫!蛤?寫測試?沒錯,就是寫測試,工程師除了把需要的功能用程式實現以外,還要撰寫測試程式運作是否正確的測試程式碼,當發佈程式之前,要執行測試的程式碼來檢查功能程式碼運作是否符合預期。

所以在我們發布程式前,需要做的任何檢查步驟,把這些步驟透過工具在上線前就一步檢查完畢,就稱之為「持續性整合」。

所以,什麼是 CI/CD ?

CI/CD 說的就是當工程師把程式開發完畢後,把開發好的代碼進行一連串的上線前檢查,通過檢查的代碼可以直接發佈上線,這樣的過程就是所謂的 CI/CD。


上一篇
我所認知的 DevOps 概念 (2/2)
下一篇
DevOps, Agile, 跟系統思考(1/2)
系列文
誤入 Ops 叢林的 Dev 小白兔30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言