五分鐘讀懂什麼是容器雲

2022-06-30 10:15:10 字數 2648 閱讀 7090

說起 「容器」 ,大家的第一反應肯定是日常生活中使用的鍋碗瓢盆,或者裝運貨物的箱子盒子,用來盛放各種各樣的物品。那麼拿港口碼頭來說,每天都要通過船舶向外運送大量的貨物。裝貨的時候肯定不會直接扔進船艙,所以每個碼頭都會用大量的貨櫃來運載貨物。有了這些貨櫃,貨物不用雜亂無章地堆放在一起,又可以按照分類一層一層地擺放,更易於管理,同時也方便運輸。

那麼我們今天說的 「容器」 究竟是什麼呢?它的靈感其實就**於那些 「貨櫃」 。在說 「容器」 之前,先來簡單講一下我們很耳熟的 —— 「虛擬機器(vm)」,並對比一下兩者的區別。

虛擬機器(vm),大家肯定不會陌生了,作為一名計算機專業畢業的小編,在大學課程中也會使用虛擬機器來學習 linux 作業系統。顧名思義,虛擬機器就是用來模擬計算機系統的軟體,讓使用者可以在一台計算機上執行看似多台計算機的裝置。在一些需要不同型別的硬體或作業系統上執行軟體的需求,虛擬機器是乙個好幫手,這樣就無需使用其他的硬體了。

自從虛擬化技術和雲計算服務出現以來,大大小小的 it 公司都將虛擬機器作為降低成本和提高效率的一種方式。但是,虛擬機會占用大量系統資源。每個虛擬機器不僅要執行乙個完整的作業系統,還需要執行作業系統要執行的所有虛擬硬體。這樣就會消耗大量的記憶體和 cpu 資源。與執行單獨的物理計算機相比,這樣是比較經濟的;但對於某些應用程式而言卻是很浪費的。

這種情況下,就促進了容器的發展。

容器(container)是一種更輕量級,更靈活的虛擬化處理方式,它將乙個應用程式所需的一切打包在一起。容器包括所有**,各種依賴甚至作業系統,這讓應用程式幾乎在任何地方都可以執行。因此它的誕生,解決了乙個重要問題:如何確保應用程式從乙個環境移動到另乙個環境的正確執行。它只是虛擬了作業系統,而不像虛擬機器一樣去虛擬底層計算機。

△ 虛擬機器(vm)與容器(container)

那麼對比虛擬機器,容器有哪些特點呢?

目前容器技術的現代形式主要體現在應用程式容器化(如 docker)和系統容器化(如 lxc)中。這兩種形式的容器都能讓 it 團隊從底層架構中抽象出程式**,從而實現跨各種部署環境的可移植性。

容器通常位於物理伺服器及其主機作業系統之上。它可以通過單個作業系統安裝來執行多個工作環境。因此容器特別 「輕」 —— 它們只有幾兆位元組,只需幾秒鐘即可啟動。

與虛擬機器相比,記憶體,cpu 和儲存效率的提高是容器技術的關鍵優勢。由於可以在同一基礎架構上支援更多容器,那麼這些資源的減少就可以轉化為巨大的成本節省,同時還可以減少管理開銷。

虛擬機器容器重量級輕量級表現有限原生表現每個 vm 都在自己的作業系統中執行所有容器共享主機作業系統硬體級虛擬化作業系統虛擬化啟動時間(以分鐘為單位)啟動時間(以毫秒為單位)分配所需的記憶體需要更少的記憶體完全隔離程序級隔離

△ 虛擬機器和容器的特點對比

說到容器技術,就不得不提一下 devops。devops(development 和 operations 的組合詞)是一組過程、方法與系統的統稱,用於促進開發(應用程式/軟體工程)、技術運營和質量保障(qa)部門之間的溝通、協作與整合。

2014 年 11 月,docker 作為有潛在趨勢的容器技術進入了 devops 的世界。它通過簡單的包裝和應用程式運輸加快了持續部署的能力,進而得到了普及。docker 作為一項開源工具,可以將應用程式及其依賴(如配置檔案等)打包到容器中,就可以在任何 linux 伺服器上執行該容器,而不會出現任何相容性問題。

容器化是乙個相當古老的概念,但 docker 帶來了一些新的東西,早期的技術卻沒有。

如今,docker 主要由開發人員和系統管理員用於與 devops 相關聯地構建和執行分布式應用程式。

微服務作為乙個新興的軟體架構,和容器技術也有著密不可分的關係。微服務就是把乙個大型的單個應用程式和服務拆分為數十個小型的服務。乙個微服務的策略可以讓工作變得更為簡便,它最大的乙個優點是可以比傳統的應用程式更有效地利用計算資源。

大多數服務都有不同的資源要求。無論是網路,磁碟,cpu 還是記憶體,某個資源會比其他資源使用得更多。雖然雲**商可以提供針對記憶體,磁碟 io 或 cpu 的不同設定,但系統仍然會留下大量的冗餘資源。

△ 資源冗餘

有了微服務,混合具有不同資源分配配置檔案的服務可以提供最佳利用率。

△ 微服務提供最佳利用率

由於微服務類似於小型應用程式,因此我們必須將微服務部署到自己的虛擬機器例項。可以想象,將整個虛擬機器專門用於部署應用程式的一小部分並不是最有效的選擇。但是,使用容器技術,可以降低效能開銷並在同一臺伺服器部署上千個微服務,因為容器比虛擬機器需要的計算資源要少得多。微服務進行容器化是很有必要的。它可以提高利用率和可用性,降低成本。

又拍雲容器雲是基於 docker 的分布式計算資源網,節點分散在全國各地及海外,提供電信、聯通、移動和多線網路,融合微服務、devops 理念,滿足精益開發、運維一體化,大幅降低分布式計算資源構建複雜度,大幅降低使用成本。

五分鐘讀懂UML詳解

平時閱讀一些遠嗎分析類文章或是設計應用架構時沒少與uml類圖打交道。實際上,uml類圖中最常用到的元素五分鐘就能掌握,下面趕緊來一起認識一下它吧 一 類的屬性的表示方式 在uml類圖中,類使用包含類名 屬性 field 和方法 method 且帶有分割線的矩形來表示,比如下圖表示乙個employee...

五分鐘了解什麼是Openstack

什麼是openstack openstack是全球雲計算技術專家和開發者為公有雲和私有雲聯合協作完成的開源雲計算平台。這個專案通過實現簡單 超大規模以及特性豐富等特點為所有型別的雲提供解決方案。這項技術包含了很多相關的專案用以為雲基礎架構的解決方案提供各種元件。openstack的幕後英雄 由rac...

python命名空間(五分鐘讀懂)

1.命名空間指的是變數儲存的位置,每乙個變數都需要儲存到指定的命名空間當中 2.每乙個作用域都會有乙個它對應的命名空間 3.全域性命名空間,用來儲存全域性變數。函式命名空間用來儲存函式中的變數 4.命名空間實際上就是乙個字典,是乙個專門用來儲存變數的字典 1.在全域性作用域中呼叫locals 則獲取...