iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0

CI/CD

CI (Continuous Integration) 持續整合

build 程式建置(編譯)
當一個團隊共通開發一個專案的時候,一定都會使用版本控制,當每次commit&push,需要保證push上去後的程式碼不會導致整個專案無法編譯成功,例如有可能環境變數、版本套件的原因導致這些問題。但是這些苦功如果都要我們工程式每次push上新的版本都要親自手動編譯實在也太麻煩了,因此就需要自動化的流程幫我們自動編譯好,看新push上去的程式碼有沒有出現錯誤。

unit test 單元測試
前面當自動化的流程幫我們編譯好程式後,下一步就是要就是進行單元測試,看專案內的預先寫好的單元測試是否都有通過,如此一來才能保證新push上去的程式碼,不僅可以被成功建置也保證專案的功能沒有出現漏洞。當然,這也是要單元測試寫得好才行XD不過單元測試這東西嘛,確實如果要寫的細是會佔據工程師許多時間的,個人認為寫單元測試也是一種很大的學問的。

因此,可以知道在CI這個階段,不僅可以減輕團隊的loading,工程師只需要寫好程式並且push上去即可,由CI的自動化程式幫團隊做檢查,只要發現錯誤,就能快速根據錯誤進行修改。通常一個團隊都會定好整個CI的測試流程,按照這個流程產生一定品質的專案。

CD (Continuous Deployment) 持續部署

部署服務
其實就是前面CI的自動化流程做完後,那麼接下來就是部署專案!因此CD其實就是透過自動化流程的方式將程式自動更新到伺服器上並使得整個專案服務可以運作,此外更好的設計就是會一併啟動監控程式,去監控服務是否有異常現象,並主動通知開發人員。

以例子來說就是假設我現在有一台虛擬機當作伺服器,我想要在裡面架設網站,所以push程式碼,CI幫我檢查程式是否可以編譯成功,單元測試是否都通過,當CI部分都通過後,接著執行CD的部分,幫我把程式碼丟到伺服器上,並且架設好web server,幫我開好對外服務等等。

所以好處就出現了,工程師的我們只需要負責寫程式,自動化檢查及部署就丟給CI/CD去執行吧

參考


上一篇
[day19] 軟體架構design
下一篇
[day21] 軟體設計原則
系列文
Backend Developer roadmap study30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言