iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 18
3

今天來討論一個現在的主流未來的趨勢,容器 Container,這個概念已經有好幾年的討論了,著名的軟體工具Docker也已經問世了五年以上,所以其實也不算真的很新的議題啦~~

網路上搜尋文章也都有一大票介紹,尤其Docker的安裝與操作教學更是每個系列文章的必備,但我今天因為是後端工程師的DevOps探討,屬於比較簡單入門的系列,所以不免俗的要再來介紹一下


我先假定大家都知道VM是什麼,如果不太清楚的朋友,請參考

什麼是容器?

容器是一個虛擬化的空間,裝載應用程式以及對應的資源環境,其實聽起來不是很懂那我換一句話來說,容器是一個空間可以搭載應用程式以及對應的環境,欸~好像跟VM差不多啊?!
其實,還是不一樣的!來看看這兩張圖

VM Container
https://ithelp.ithome.com.tw/upload/images/20191004/2011191668KcmmHa8X.png https://ithelp.ithome.com.tw/upload/images/20191004/20111916lBzdnY3dBA.png
圖片來源:容器和 Docker 簡介

有看出來最大的差異了嗎?對,Container不需要裝載OS

也因為不需要OS,Container會相較起來更加輕型,有別於以往VM動輒幾GB,容器大部分都可以在MB的容量下完成,很直接的省去了很多資源上不必要的浪費,基本上會放入容器中的都是必要的,包含Library、Binary,也因為比較輕量,他的啟動速度會相對快非常多,只需要幾秒,頂多一分鐘左右就可以完成,當有高流量活動出現時,容器的橫向擴充速度也相形優勢很多,而容器還有個特色是他的移轉性很強,由上圖可看出,只要在伺服器Host上裝載Container Engine就可以快速運行各個容器了,無論Host是哪種環境,另外,容器與容器之間也可以彼此隔離,與多個VM設定載同一台Host上的概念相同,因此,容器快速且越來越紅

再來條列一次上述的Conatiner的優點:

  • 不需要安裝OS
  • 不會占用不必要的資源,所以很輕量
  • 執行速度相較快速,便於擴充
  • 移轉性高,便於安裝
  • 有隔離性,安全且獨立

有這些優點也剛好符合了現在產業的趨勢,雲服務、微服務,因此現在大部分團隊會導入下列項目:

  • 將既有程式移轉與升級至雲架構
  • 用容器概念重構既有的應用程式
  • 以容器為基底開發新的應用程式
  • 提供更好支援微服務的結構
  • 提供DevOps支援導入CI / CD
  • 提供可以重複執行的作業和任務來達到輕鬆部署

最後,是不是所有團隊都要用呢?以後會不會沒有VM了?我想應該暫時是不會的,VM還是有它的優點存在,還是有情境是適合使用的,外加上現在很多的系統都是使用VM,要轉移到Container上,也不是一朝一夕就可以完成,所以還有段路程要走,那什麼情境下的專案適合使用Container呢?我認為

  • 維運團隊有需要管理系統底層的東西
  • 系統需要建立在多種不同作業系統下
  • 會有瞬間高流量的系統,例如:搶五月天的票、搶購物折扣的電商...
  • 有導入CI/CD的專案(每次上版正式機不能都停機10分鐘,老闆會殺人)

明天開始就會進入實作分享了,敬請期待!(也是我覺得最困難的Part...)

參考資料、延伸閱讀:

下集預告:實作分享 - 整體概觀與專案程式碼準備


上一篇
Test Plan 測試計畫
下一篇
實作分享 - 整體概觀與專案程式碼準備
系列文
後端功城獅30天DevOps探討挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言