容器生態系統簡介

很少有技術能夠像 Docker 這樣一出來就收到關注,並在很短的時間裡發展壯大,而且幾乎所有的技術公司都開始使用或者希望使用。隨著 docker 的出現,配置管理、微服務、數據中心自動化、devops 多個領域都重新煥發新機,好像 IT 行業的整個架構都要重新定義一樣。

容器引擎

容器引擎(Engine)或者容器運行時(Runtime)是容器系統的核心,也是很多人使用「容器」這個詞語的指代對象。容器引擎能夠創建和運行容器,而容器的定義一般是以文本方式保存的,比如 Dockerfile。

  • Docker Engine :目前最流行的容器引擎,也是業界的事實標準

  • Rkt:CoreOS 團隊推出的容器引擎,目前處於活躍發展階段,被 kubernetes 調度系統支持

    Advertisements

雲提供商(國外篇)

容器飛速發展的時候,很多公司反應迅速,都相繼推出了自己的公有雲或者私有雲的容器解決方案。國外比較有名的容器雲提供商包括:

  • Amazon EC2 Container Serveice(ECS):雲計算巨頭 AWS 推出的容器服務,比較吸引人的是構建在 EC2 上面的 ECS 是免費的,用戶只需要為底層的 EC2 資源付費

  • Google Container Engine(GKE):谷歌在錯過大數據的福利之後,在雲計算領域開始醒悟。在社區推出 kubernetes,企圖制定容器調度集群的標準,而同時推出公有的 GKE 服務

  • Azure Container Service:作為巨頭,微軟也積極推出了容器服務,憑藉積累的技術和商業資源迅速崛起

    Advertisements

  • Jelastic

  • Docker Cloud:docker 自家的容器雲服務,在收購了 Tutum 公司之後,利用 docker swarm 集群管理技術推出了方便使用的產品

雲提供商(國內篇)

每次新技術的出現都會催生一堆公司,有大公司也有創業公司。不管是大數據、Iaas、人工智慧還是現在的容器。國內公司目前對技術已經非常敏感,追逐和使用新技術的腳步從來沒有落後過。雖然現在還沒有在核心技術上制定標準和掀起浪潮,但是我相信不久之後中國會出現能夠影響世界的技術。

目前國內做容器比較知名的公司包括:

  • 阿里云:作為國內雲服務的一哥,阿里雲反應迅速,和 docker 建立 官方合作,也開始為自己的容器產品佈道

  • 網易蜂巢:網易在自家的 IaaS 平台成熟之後,在此之上推出了容器雲服務,據說內部產品已經大都遷移到容器

  • 靈雀云:雲雀科技成立於2014年,由原微軟Azure雲平台的核心創始團隊創立

  • 時速云:tenxcloud,基於 Kubernetes 的容器雲計算平台,提供公有雲和企業雲服務

  • 數人云:基於 mesos 研發的輕量級 Pass 平台

  • 才云:使用的是 kubernetes 方案,2015 年成立的公司,提供私有雲服務和人工智慧解決方案

  • daocloud:企業級應用雲平台及解決方案,坐標上海

以下是容器圈子(以Docker為主)的主要參與者,它們共同組成了繁榮的容器生態圈。

容器編排系統

容器與虛擬機相比有個很大的優勢就是輕量,這個特性的量變很快就引發了質變,讓容器在各個技術角落施展拳腳。不過輕量級的容很容易造成混亂,面對成百上千乃至更多的容器,必須要有統一的管理平台。所以目前容器技術最熱烈的激戰也在這個領域,所有要使用容器的企業必須要在容器管理系統做出自己的抉擇。

  • Kubernetes:Google 家開源的容器管理系統,起源於內部歷史悠久的 Borg 系統。因為其豐富的功能被多家公司使用,不僅支持 docker ,還支持其他容器(比如 Rkt),但是也相對複雜,易用性差一點

  • Docker Swarm: 從 docker1.12.0 版本之後,docker 就推出了 docker swarm 模式。用戶能夠輕鬆快速搭建出來 docker 容器集群,幾乎完全兼容 docker API 的特性讓它很容易被用戶接受。可以說潛力很大,至於最後能發展成什麼樣子還要時間檢驗

  • Mesosphere:起源於 Apache Mesos 的調度框架,目標是成為數據中心的操作系統,完全接管數據中心的管理工作

  • Rancher:其易用的界面和完全開源的特性吸引不少剛接觸容器的技術人員,同時兼容 kubernetes、mesos 和 swarm 集群系統。但目前社區不是很活躍,二次開發的難度較大

  • Nomad:HashiCorp 開源的集群管理和調度系統,如果需要其他功能(比如服務發現、密碼管理等)需要自己使用其他工具進行集成

容器基礎鏡像

容器雖然輕量,但是傳統的基礎鏡像並非如此。因此有很多企業嘗試著打造專門為容器而生的操作系統,希望能成為容器時代的新選擇。

  • CoreOS:以容器為中心的操作系統,配置管理、自動擴容、安全等方面有一套完整的工具

  • Project Atomic:一個輕量級的操作系統,可以運行 docker、kubernetes、rpm 和 systemd

  • Ubuntu Core:輕量級 ubuntu 操作系統,適合運行 IoT 設備或者容器集群

  • Rancher OS:只有 50M+ 的操作系統,為運行 docker 容器打造。有趣的是,它可以讓系統容器和用戶容器運行在不同的 Docker Daemon 上,從而實現隔離效果

  • Project Photon:VMware 開源的項目,旨在提供極簡化的容器主機系統

鏡像 registry

鏡像 registry 是存儲鏡像的地方,可以方便地在團隊、公司或者世界各地分享容器鏡像,也是運行容器最基本的基礎設施。

  • Docker Registry:Docker 公司提供的開源鏡像伺服器,也是目前最流行的自建 registry 的方案

  • Dockerhub:docker 公司提供的公共鏡像 registry,可以通過 UI 來查看和管理鏡像,上面也有大量的標準鏡像可以下載

  • Quay:提供鏡像管理和安全檢查服務的 公有 registry

  • Harbor:企業級的鏡像 registry,提供了許可權控制和圖形界面

容器監控

  • cAdvisor:Google 開源的容器使用率和性能監控工具

  • Datadog Docker:能夠收集 docker 的運行信息,併發送到 Datadog 進行分析

  • NewRelic Docker:收集 docker 的運行信息,併發送到 NewRelic 進行分析

  • Sysdig:同時提供開源版本和企業版本,能夠監控容器使用率和性能,並對性能就行分析

網路

容器的大規模使用,也對網路提供了更高的要求。網路的不靈活也是很多企業的短板,目前也有很多公司和項目在嘗試解決這些問題,希望提出容器時代的網路方案。

  • Weave Net:weaveworks 給出的網路的方案,使用 vxlan 技術, 支持網路的隔離和安全

  • Flannel:CoreOS 開源的網路方案,為 kubernetes 設計,支持不同的後端實現

  • Calico:一個純三層的網路解決方案,使用 BGP 協議進行路由,可以集成到 openstack 和 docker

  • Contiv: 能夠打通物理機、虛擬機和容器之間連通性的網路方案

服務發現

容器和微服務的結合創造了另外的熱潮,也讓服務發現成功了熱門名詞。可以輕鬆擴展微服務的同時,也要有工具來實現服務之間相互發現的需求。目前主要有三種工具,當然它們可能已經集成到其他的容器管理系統中。

  • etcd:CoreOS 開源的分散式 key-value 存儲,通過 HTTP 協議提供服務,因此使用起來簡單。但是 etcd 只是一個 key-value 存儲,默認不支持服務發現,需要三方工具來集成。kubernetes 默認就使用 etcd 作為存儲

  • consul:HashiCorp 開源的服務發現和配置管理工具,自帶服務發現特性(DNS Server)。它是強一致性的數據存儲,使用 gossip 協議形成動態集群

  • zookeeper:比較悠久的服務發現項目,起源於 Hadoop 社區,優點是成熟、可靠、功能豐富,缺點是使用 Java 開發,配置比較麻煩

  • 如需了解零空信息更多資訊及最新進展,敬請關注公眾號:毅德零空&魔法隧道

Advertisements

你可能會喜歡