編排工具充分發揮了 Linux 容器技術優勢
一旦公司越過了「讓我們看看這些容器如何工作」的階段,他們最終會在許多不同的地方運行容器
需要快速、高效地交付程序的公司 —— 而今天,哪些公司不需要這樣做?—— 是那些正在轉向 Linux 容器的公司。他們還發現,一旦公司越過了「讓我們看看這些容器如何工作」的階段,他們最終會在許多不同的地方運行容器。
Linux 容器技術不是新技術,但它隨著最初由 Docker 發明的創新性打包格式(現在的 OCI 格式)以及新應用對持續開發和部署的需求開始變得流行。在 Red Hat 的 2016 年 5 月的 Forrester 研究中,有 48% 的受訪者表示已經在開發中使用容器,今年的數字預計將達到 53%。只有五分之一的受訪者表示,他們在 2017 年不會在開發過程中利用容器。
像樂高積木一樣,容器鏡像可以輕鬆地重用代碼和服務。每個容器鏡像就像一個單獨的、旨在做好一部分工作的樂高積木。它可能是資料庫、數據存儲、甚至預訂服務或分析服務。通過單獨包裝每個組件,從而可以在不同的應用中使用。但是,如果沒有某種程序定義(即指令手冊instruction booklet),則難以在不同環境中創建完整應用程序的副本。那就是容器編排的來由。
life container megabricks
容器編排提供了像樂高系統這樣的基礎設施 —— 開發人員可以提供如何構建應用程序的簡單說明。編排引擎將知道如何運行它。這使得可以輕鬆創建同一應用程序的多個副本,跨越開發人員電腦、CI/CD 系統,甚至生產數據中心和雲提供商環境。
Linux 容器鏡像允許公司在整個運行時環境(操作系統部件)中打包和隔離應用程序的構建塊。在此基礎上,通過容器編排,可以很容易地定義並運行所有的塊,並一起構成完整的應用程序。一旦定義了完整的應用程序,它們就可以在不同的環境(開發、測試、生產等)之間移動,而不會破壞它們,且不改變它們的行為。
仔細調查容器
很明顯,容器是有意義的,越來越多的公司像「對輪胎踹兩腳」一樣去研究容器。一開始,可能是一個開發人員使用一個容器工作,或是一組開發人員在使用多個容器。在後一種情況下,開發人員可能會隨手編寫一些代碼來處理在容器部署超出單個實例之後快速出現的複雜性。
這一切都很好,畢竟他們是開發人員 —— 他們已經做到了。但即使在開發人員世界也會變得混亂,而且隨手代碼模式也沒法跟著容器進入 QA 和生產環境下。
編排工具基本上做了兩件事。首先,它們幫助開發人員定義他們的應用程序的表現 —— 一組用來構建應用程序實例的服務 —— 資料庫、數據存儲、Web 服務等。編排器幫助標準化應用程序的所有部分,在一起運行並彼此通信,我將這稱之為標準化程序定義。其次,它們管理一個計算資源集群中啟動、停止、升級和運行多個容器的過程,這在運行任何給定應用程序的多個副本時特別有用,例如持續集成 (CI) 和連續交付 (CD)。
想像一個公寓樓。居住在那裡的每個人都有相同的街道地址,但每個人都有一個數字或字母或兩者的組合,專門用來識別他或她。這是必要的,就像將正確的郵件和包裹交付給合適的租戶一樣。
同樣,在容器中,只要你有兩個容器或兩個要運行這些容器的主機,你必須跟蹤開發人員測試資料庫連接或用戶連接到正在運行的服務的位置。容器編排工具實質上有助於管理跨多個主機的容器的後勤。它們將生命周期管理功能擴展到由多個容器組成的完整應用程序,部署在一組機器上,從而允許用戶將整個集群視為單個部署目標。
這真的很簡單,又很複雜。編排工具提供了許多功能,從配置容器到識別和重新調度故障容器,將容器暴露給集群外的系統和服務,根據需要添加和刪除容器等等。
雖然容器技術已經存在了一段時間,但容器編排工具只出現了幾年。編排工具是 Google 從內部的高性能計算(HPC)和應用程序管理中吸取的經驗教訓開發的。在本質上,其要解決的就是在一堆伺服器上運行一堆東西(批處理作業、服務等)。從那時起,編排工具已經進化到可以使公司能夠戰略性地利用容器。
一旦你的公司確定需要容器編排,下一步就是確定哪個平台對於業務是最有意義的。在評估容器編排時,請仔細查看(尤其):
- 應用程序定義語言
- 現有能力集
- 添加新功能的速度
- 開源還是專有
- 社區健康度(成員的積極性/高效,成員提交的質量/數量,貢獻者的個人和公司的多樣性)
- 強化努力
- 參考架構
- 認證
- 產品化過程
有三個主要的容器編排平台,它們似乎領先於其他,每個都有自己的歷史。
- Docker Swarm: Swarm 是容器典範 Docker 的附件。Swarm 允許用戶建立並管理 Docker 節點的集群為單個虛擬系統。Swarm 似乎正在成為一個單一供應商的項目。
- Mesos: Mesos 是從 Apache 和高性能計算中成長起來的,因此是一個優秀的調度員。Mesos 的技術也非常先進,雖然與其他相比似乎沒有發展速度或投資優勢。
- Kubernetes: 由 Google 開發,由其內部編排工具 Borg 經驗而來,Kubernetes 被廣泛使用,並擁有強大的社區。其實這是 GitHub 上排名第一的項目。Mesos 目前可能比 Kubernetes 略有技術優勢,但是 Kubernetes 是一個快速發展的項目,這也是為了長期技術上的收益而進行的架構投資。在不久的將來,在技術能力上應該能趕超 Mesos。
編排的未來
展望未來,企業們可以期待看到編排工具在應用程序和服務為中心的方向上發展。因為在現實中,如今快速應用程序開發實際上是在快速地利用服務、代碼和數據的組合。無論這些服務是開源的,還是由內部團隊部署的抑或從雲提供商處購買的,未來將會是兩者的混合。由於今天的編排器也在處理應用程序定義方面的挑戰,所以期望看到它們越來越多地應對外部服務的整合。
此時此刻,想要充分利用容器的公司必須利用容器編排。
(題圖:Thinkstock)
via: https://www.infoworld.com/article/3205304/containers/orchestration-tools-enable-companies-to-fully-exploit-linux-container-technology.html
作者:Scott McCarty 譯者:geekpi 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
推薦閱讀:
※漫畫:小黃人學 Kubernetes Service
※梁勝關於容器的年終總結,沒再提Docker
※使用Heapster和Splunk監控Kubernetes運行性能
※docker 編排工具 2017最佳選擇是 swarm/kubernetes/Mesos ?
※有人在嘗試使用Kubernetes嗎?
TAG:容器 | Kubernetes |