Spark
Spark是加州大學伯克利分校AMP實驗室開發通用內存并行計算框架,于2010年成為Apache的開源項目之一。Spark以其先進的設計理念,迅速成為社區熱門項目,并逐漸形成大數據處理一站式的解決平臺。在大數據領域還有另外一種技術不能不提,就是Hadoop。Hadoop這項技術大概已有十年歷史,一直被看做是首選的大數據集合處理解決方案,在諸多互聯網企業的云平臺中都有應用。不過Hadoop技術對于需要多路計算和算法的用例來說,并非十分高效,這也導致很多云計算應用選擇Hadoop也是一種無奈的選擇,當Spark出現后,局面就不同了。Spark與大數據現有技術中龍頭老大Hadoop相比,Spark為我們提供了一個全面、統一框架,用于管理各種有著不同性質的數據集和數據源的大數據處理需求。Spark可將Hadoop集群中應用在內存中的運行速度提升100倍,甚至能夠將應用在磁盤上的運行速度提升10倍,有望替代Hadoop在大數據中地位,成為大數據處理的主流標準。Spark使用Scala語言進行實現,它是一種面向對象、函數式編程語言,能夠像操作本地集合對象一樣輕松地操作分布式數據集。Spark具有運行速度快、易用性好、通用性強和隨處運行的特點,國內在騰訊、淘寶、優酷都已經開始使用了這種技術。未來,在大數據領域,Spark必將發揮更大的作用。
Docker
Docker恐怕是這兩年最火的一種云計算技術了,它實際上應該算是一種虛擬化技術,一種輕量級的虛擬化技術。Docker是 PaaS 開源的一個基于 LXC高級容器引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。可能有人會問不是有虛擬機VM技術嗎?是的,不過企業版的VM可不是免費的,收費還不便宜,還有虛擬機相關操作大多都很慢,啟動要幾分鐘、捕捉快照要幾分鐘、創建鏡像也需要幾分鐘,于是Docker出現了,啟動虛擬機之所以要花幾分鐘,是因需要占用大量內存,而啟動Docker容器只耗費很少的CPU和內存,并且非常快,與啟動一個常規進程沒有什么區別。與此同時,Docker實現了讓幾乎任何程序都可以在一個安全、隔離的容器中運行,安全和隔離使你可以同時在機器上運行多個容器。容器輕量級的特性,意味著你可以得到更多硬件性能。國內在京東、美團、芒果TV、新浪微博、大眾點評等企業均已部署了Docker技術。
Kubernetes
Kubernetes作為Docker生態圈中重要一員,是谷歌多年大規模容器管理技術的開源版本。它構建了一個容器調度服務,提供資源調度、均衡容災、服務注冊、動態擴縮容等功能的套件。Kubernetes和Docker關系就如Xen與OpenStack的關系,Docker是一種容器技術,和Hypervisor(KVM/Xen這類)不同的是,Docker不會提供整個操作系統,它只提供隔離的程序運行環境,對一個應用來說這已經夠了。而Kubernetes是谷歌的一個開源容器管理項目,基于Docker構建一個容器調度服務,為容器化的應用提供資源調度、部署運行、均衡容災、服務注冊,擴容縮容等功能。實際上,Kubernetes和Docker都源自于云計算PaaS技術,Kubernetes是基于Docker技術的mini-PaaS平臺,提取PaaS中業務編排和管理模塊而形成的。Kubernetes得到了如Microsoft、VMWare、Red Hat、CoreOS、Mesos等巨頭支持,這加速了Kubernetes開源代碼的完善。國內樂視云、騰訊游戲,華為均采用了Kubernetes來構建PaaS云平臺。
Mesos
Mesos也是由加州大學伯克利分校AMP開發的,后在Twitter得到廣泛使用,是開源分布式資源管理框架,被稱為是分布式系統的內核,其目標是可以將整個數據中心當做一臺電腦一樣使用,Mesos能夠保證集群內的所有用戶有平等的機會使用集群內的資源,這里的資源包括CPU、內存、磁盤等等。Mesos不試圖作為一個一站式解決問題的系統,而是以最小的成本來實現資源共享,Mesos定義一個最小化的接口來支持跨框架的資源共享,其他的調度以及執行工作都委托給框架自己來控制。與Kubernetes類似,Mesos提供的是操作系統級服務。不過Kubernetes 目前只支持 Docker,只是負責容器編排而不是集群資源管理,鮮有生產環境的用例;而Mesos不需要你的應用包到Docker里面并且其經歷過生產環境的考驗。不過Kubernetes的開源社區更加活躍,其正在高速發展中,前景非常好。所以一時也不好說孰好孰壞,都在高速發展著,看云計算用戶如何去選擇吧。國內的攜程、愛奇藝等網站都采用了Mesos技術實現了云計算。
不難發現,以上介紹的這些技術多是與容器技術有關。的確,容器技術這兩年得到了飛速發展,在各大技術論壇或云計算峰會議題中,都會占很大的比重,各主流云計算平臺也無一例外地迅速提供了容器服務。云計算過程中不關心虛擬機監控程序和虛擬機是不可能的,虛擬化是云計算核心,容器技術正是虛擬化技術最重要組成部分,它實現了秒級部署、易于移植、彈性伸縮,給云計算帶來了本質上的改變。云計算作為一種服務和應用的業務模式,很難講會被顛覆。不過,容器技術的確是云計算的改變者,它改變了我們思考云計算的視角,為云計算的發展帶來了活力,是推動云計算由理論走向實踐的最佳技術之一。