1. 程式人生 > >雲宏大講壇 | 容器的前世今生

雲宏大講壇 | 容器的前世今生

con 文件系統 聯網 伸縮 完成 engine 服務 容器雲 主機

容器是什麽?

專業地講,容器是實現操作系統虛擬化的一種途徑,可以讓用戶在資源受到隔離的進程中運行應用程序及其依賴關系;簡單地講,容器就是基於linux內核技術的一種隔離手段。

很多人認為容器就是另外一種虛擬機(VM)。實際上,虛擬機通過Guest OS來運行對應的應用的,而容器通過使用Docker Engine使用系統原生隔離技術進行隔離。

虛擬化和容器的對比

為啥這樣做?有什麽好處呢?這就從PaaS的出現開始說起了。

PaaS(Platform-as-a-Service,平臺即服務)把服務器平臺作為一種提供服務的商業模式。之前的PaaS平臺是使用VM的方式去部署平臺應用服務的,但是由於VM啟動的特點,部署一個應用時間十分長。前期,這樣的部署還可以適應企業的需要,但隨著互聯網發展,企業越來越需要適應迅速多變的業務場景,部署在主機上的的環境不可控制及啟動時間問題成為了PaaS平臺發展的阻力;後期,微服務架構及持續集成部署CI/CD大行其道,PaaS部署應用必須要有新的解決方案。

於是,容器隨之而生——

2000年,容器技術概念最先出現,時稱“FreeBSD jail”,其誕生是為了讓進程在經過修改的chroot環境中創建,而不會脫離和影響整個系統,在環境中,對文件系統、網絡和用戶的訪問都實現了虛擬化。

2001年,隔離環境實施進入了Linux領域。在完成多個受控制用戶空間的基礎性工作後,Linux容器開始逐漸成形並最終發展成了現在的模樣。

2007年,Google的控制組(CGroups)成功研發。這是一種可以限制、記錄、隔離進程組(process groups)所使用的物理資源的機制,並貢獻加入到linux內核。

2008年,LXC(LinuX Containers)出現,是第一個完善的Linux容器管理器的實現方案。

2013年,Docker橫空出世。一開始Docker創建的目的是為了更容易使用LXC,但後來這個作用被其他技術替代,而Docker反而成為了容器使用的標準,其它的容器技術如LXC、Rocket、Pouch等市場占有率已不足Docker的一半。

容器為PaaS平臺帶來了以下特點:

環境一致性。通過容器及其獨特文件系統,使得應用程序在開發、測試、生產環節中高度一致,實現跨多環境無差別移動。

解放開發人員生產力。使用容器主要的目的是采用微服務架構改變應用,開發人員把主要精力集中在當前業務服務的開發,不必再擔心語言依賴庫問題。

運營高效。由於容器基於原生linux內核的虛擬隔離技術,容器運行與原生進程消耗資源基本一致。容器可以讓用戶在一個系統中輕松運行多個容器鏡像,這與在一個系統中運行多個進程一樣。用戶還可以創建容器映像,將其作為其他映像的基礎,使用洋蔥文件系統,使大應用遷移部署達到秒級。

版本控制。運營團隊可以創建基本映像,將操作系統、配置和所需的各種工具實用程序囊括在其中。開發團隊可以在基礎鏡像的基礎上構建其不同版本的服務鏡像,這樣有利於從開發測試到生產使用統一配置環境。

在微服務的發展中,使用容器的目的就是用來管理微服務架構。於是新的重點問題衍生了:包裝服務的容器如何編排調度?技術社區逐漸把關註點轉移到“容器編排”上。用IaaS類比容器編排的概念,就類似於IaaS的Hypervisor的角色,只是位置是在OS(或guest OS)之上,主要功能是管理調度容器在多個OS上運行,關註點在於微服務的治理。

目前出現的容器編排引擎有Swarm、Mesos、Cattle、Kubernetes等,以Kubernetes為主流。Kubernetes把微服務應用以容器為粒度,按照一定的約束,自動編排分配到底層計算資源上,實現不同場景下的計算資源充分利用。

隨著微服務的發展,基於容器及容器編排技術優勢特點,利用容器技術實現新一代PaaS平臺成為可能,未來其主要往以下幾個方向推進:

減低復雜性。目前的Kubernetes容器平臺有些復雜,用戶首次使用需要花較大的學習成本,很多功能用戶甚至無法知道如何使用,應該朝簡單化方向發展。

混合雲和多雲。由於采用了容器,企業可以把應用從內部測試環境放到跨多個平臺運行。這種混合使用場景未來會增多,如何更安全快速調度容器服務成為容器技術研究的重點。

持續集成及部署應用。使用容器技術及微服務架構,目的是基於敏捷實現持續集成及部署,像流水線一樣生產服務應用。未來如何把這套理念根據不同需求簡單落地,成為必須解決的問題。

雲宏新一代WinGarden容器雲平臺為管理多kubernetes的企業級容器管理平臺,是專門針對企業級客戶設計的安全、穩定、易管理和運維的輕量級容器雲平臺,為企業提供真正的雲原生應用管理架構,幫助企業建立彈性、可伸縮、快速叠代和靈活敏捷的應用架構。

雲宏WinGarden容器雲平臺結合了雲宏IaaS平臺的技術優勢,並針對私有雲領域的PaaS平臺作了多方面的創新在銀行、航空等多個行業均有成功部署的案例。未來,雲宏將繼續深入打造容器雲平臺,打造更有價值的容器雲產品。

雲宏大講壇 | 容器的前世今生