iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0

這幾天,我們一起建立了一個成品倉庫去儲存一些封裝了的套件。但是當我們要把程序作為服務部署的時候,我們還需要一個可供程序執行的運行環境。

在Docker還未盛行的年代,為了區分不同的用途環境,最簡單的方法是用不同的實體/虛擬機器去安裝各自獨立的環境。例如安裝一個Linux的環境配置JVM的運行環境等。但是這個方法有一個很大的問題,就是當時間過去,不同環境中的配置可能會慢慢有了分歧。例如不同的更新版本,不同的端口配置等。因此常常會發生在測試環境運作正常,但到了生產環境就出現問題的情況。

直到Docker出現,這個情況終於有了改善的空間。

為甚麼要使用Docker

使用Docker跟傳統的實體/虛擬機器部置有很明顯的優勢。

由於Docker的虛擬化,是不需要虛擬化硬件及完整的操作系統。因此在資源利用方面會更有效率。不論在讀寫速度,運算速度及記憶體效率,都會比傳統的部署方式更優異。而且由於没有虛擬化硬件及操作系統,服務啟動的速動亦會更快捷。

另外,Docker的虛擬化提供了核心以外的虛擬化環境。因此當Docker的容器配置到不同的環境時,可以保持著運行環境的一致性。減少環境因素引致的運行出錯的問題。

加上受惠於運行環境的一致性,使用 Docker可以更容易進行遷移。無論是使用實體機器、虛擬機器、或是公共雲服務等,運行的結果都是一致的。因此,我們可以隨時隨地按需要遷移到不同的服務供應商中。

而Docker亦有很好的擴展性,新的Docker映像檔可以建構於另一個Docker映像檔。而很多不同的團隊亦提供了很多不同的Docker映像檔,方便用戶在原有的服務上,按需要建構自己的Docker映像檔,大大降低了開發成本。

小結

對於CICD Pipeline來說,Docker提供了一致性的運行環境,因此在配置方面可以減輕了不少的工作量。今天我們先很簡單講解一下Docker的好處,明天我們嘗試為我們的NodeJS建置一個可供運行的Docker映像檔。

題外話

這陣子忙得連題外話都不想打了...


上一篇
Day 15: 封裝上傳自動化!Jenkins到Nexus的輸送鏈!
下一篇
Day 17: 我們的第一個NodeJS Docker映像檔!
系列文
不想吃土嗎?就利用開源軟體打造CICD Pipeline吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言