本文講的是<b>容器趣聞:分租規模</b>【編者的話】本文介紹了容器在資源隔離和多租戶方面的優勢和細粒度需求,還有如何實作多租戶伸縮的一些問題的讨論,内容言簡意赅。
我們并不認為容器應當擺脫虛拟機運作,容器可以和虛拟機結合使用,大緻有三種常見方式:
容器運作在虛拟機之内。
容器和虛拟機分别運作在主機上。
虛拟機運作在容器之内(這種方式的确可行)。

我們可以任意使用以上列出的三種技術來運作我們的業務。是以對比他們之間的安全性是“不自然”的。我認為一種更“自然”的方式是比較業務負載的租賃需求和隔離性。
不知大家現在是否還記得,在我大學時代(1997年),多使用者Unix系統非常流行。每個使用者可以遠端登入(沒錯,使用telnet)到Unix伺服器來運作他們自己的程序。一些使用者用來運作批處理任務來進行研究,一些使用者運作獨立的網站伺服器,或者使用系統共享的網站伺服器。當你登入系統時,你可以列出所有人正在運作的程序。事實上,如果有人錯誤的設定了自己家目錄的權限,那麼任何人都可以通路他們的私人檔案,這真是瘋狂的一段時光。
在2016年,很少會有系統管理者會認為Linux程序間隔離足以應付不同使用者登入到系統中,特别是對于多租戶環境下不同組織及個人使用者隔離的場景中。
然而假設我是一個大學的系統管理者,不同的研究團隊想要運作他們自己的任務,比如一個研究組運作生物學計算,一個研究組運作地理學計算,那麼容器的隔離性對他們來講是否足夠呢?我的答案是肯定的。
在另一種假設場景中,我是一個公有雲提供商的系統管理者。使用者來自于不同的公司、政府組織、研究機構來共享實體資源,則容器本身可能無法提供足夠的隔離性。是以我認為虛拟機規模的隔離性才足以應付。
根據上面兩個假設的場景,那麼一個關心安全性的使用者還會有哪些疑問呢?
如何添加反親和規則(anti-affinity rules)來確定我的作業運作在不同的虛拟機、不同的實體機上?
如何確定不同的實體機運作在不同的機櫃中,來使用不同的電源配置設定單元(Power distribution Units, PDUs)和不同的機櫃交換機?
如何確定兩個作業執行個體分散在不同的資料中心,來防備氣象或地震災害?(我在資料中心工作時,客戶确實問到過這個問題。)
你可以讓其中一個作業執行個體運作在月球上以防地球爆炸麼?(手動滑稽)
好的,除了最後一個是開玩笑,相信你已經了解了我的意思。
隔離和分租是顆粒化的需求,通常作業會要求“足夠的”隔離性,但是什麼隔離性是足夠的呢?當然是,不同的應用有不同級别的要求。
是以我認為,不要一直在比較虛拟機和容器技術,想想看如何讓兩者聯合起來,以滿足你的作業的需求才是正道。
===========================================
譯者介紹
劉思賢 ,愛油科技架構師,PMP,喜歡關注網際網路相關技術與軟體項目管理,是一名DevOps實踐者,樂于整理和分享一些實踐經驗。
<b>原文釋出時間為:</b>2016-10-09
<b>本文作者:</b>劉思賢
<b>本文來自雲栖社群合作夥伴Dockerone.io,了解相關資訊可以關注Dockerone.io。</b>
<b>原文标題:</b><b>容器趣聞:分租規模</b>