你可能已經(jīng)聽說過Docker容器這項(xiàng)新技術(shù)。開發(fā)人員很喜歡它,因?yàn)榭梢杂媚_本來構(gòu)建容器,添加一層層服務(wù),并直接從MacBook Pro將它們推送到服務(wù)器進(jìn)行測試。容器之所以切實(shí)可行,是因?yàn)樗鼈兂p量級(jí),不像那些現(xiàn)在已經(jīng)過時(shí)的虛擬機(jī)。容器以及交付服務(wù)的其他輕量級(jí)方法正在改變操作系統(tǒng)、應(yīng)用程序及管理工具的格局。這份榜單上的最佳數(shù)據(jù)中心和云計(jì)算軟件更是其中的佼佼者。
Docker Machine、Compose和Swarm
Docker的開源容器技術(shù)已經(jīng)得到了各大公有云的采用,正內(nèi)置到Windows Server的下一個(gè)版本中。Docker是一款功能強(qiáng)大的數(shù)據(jù)中心自動(dòng)化工具,讓廣大開發(fā)人員和運(yùn)營團(tuán)隊(duì)得以將應(yīng)用程序與基礎(chǔ)設(shè)施分開來。
然而,容器只是Docker生態(tài)系統(tǒng)的一部分。Docker還提供了一系列工具,讓你可以使用Docker API,讓容器的整個(gè)生命周期實(shí)現(xiàn)自動(dòng)化,另外可自動(dòng)處理應(yīng)用程序的設(shè)計(jì)和編排。
Machine讓你可以實(shí)現(xiàn)Docker容器配置自動(dòng)化。從命令行開始入手,你可以使用一行代碼,鎖定一個(gè)或多個(gè)主機(jī),部署Docker引擎,甚至將它加入到Swarm集群。支持大多數(shù)虛擬機(jī)管理程序和云平臺(tái),你只需要自己的訪問憑據(jù)。
Swarm處理集群和調(diào)度,還可以與Mesos整合起來,提供更高級(jí)的調(diào)度功能。你可以使用Swarm建立容器主機(jī)池,那樣需求增加時(shí),應(yīng)用程序可以相應(yīng)擴(kuò)展。應(yīng)用程序及所有依賴項(xiàng)都可以用Compose來定義,它讓你可以把諸容器連接起來,連入到一個(gè)分布式應(yīng)用程序,作為一個(gè)組來啟動(dòng)。Compose描述可適用于諸平臺(tái),那樣拿來開發(fā)人員的配置后,可迅速部署到生產(chǎn)環(huán)境中。
CoreOS和RKT
CoreOS是一種瘦薄的輕量級(jí)服務(wù)器操作系統(tǒng),基于谷歌的Chromium OS。它旨在與Linux容器結(jié)合使用,而不是使用程序包管理器來安裝功能。通過使用容器來擴(kuò)展瘦薄的核心,CoreOS讓你可以快速部署應(yīng)用程序,在云基礎(chǔ)設(shè)施上順暢運(yùn)行。
CoreOS的容器管理工具fleet旨在把CoreOS服務(wù)器集群當(dāng)作單個(gè)部件來對(duì)待,相應(yīng)工具可用來管理高可用性,并根據(jù)資源可用性,將容器部署到集群。跨集群鍵/值存儲(chǔ)系統(tǒng)etcd負(fù)責(zé)處理設(shè)備管理,并支持服務(wù)發(fā)現(xiàn)。如果某個(gè)節(jié)點(diǎn)出現(xiàn)故障,etcd就能在新的副本上迅速恢復(fù)狀態(tài),提供一個(gè)連接到CoreOS自動(dòng)化更新服務(wù)的分布式配置管理平臺(tái)。
雖然CoreOS也許因支持Docker而家喻戶曉,但CoreOS的團(tuán)隊(duì)正在開發(fā)自己的容器運(yùn)行時(shí)環(huán)境rkt,有自己的容器格式:應(yīng)用容器映像(App Container Image)。rkt還與Docker容器兼容,采用了模塊化架構(gòu),允許不同的容器化系統(tǒng)(甚至硬件虛擬化系統(tǒng))可以插入。然而,rkt仍處于發(fā)展的早期階段,所以還沒有完全準(zhǔn)備好用于生產(chǎn)環(huán)境。
RancherOS
由于我們使用容器從底層操作系統(tǒng)抽取越來越多的服務(wù),開始隨之考慮未來的操作系統(tǒng)會(huì)是什么樣子。類似我們的應(yīng)用程序,未來的操作系統(tǒng)將會(huì)是在瘦薄內(nèi)核上運(yùn)行的一組模塊化服務(wù),可以自我配置,只提供應(yīng)用程序所需的服務(wù)。
我們可以從RancherOS領(lǐng)略未來操作系統(tǒng)的模樣。RancherOS結(jié)合了Linux內(nèi)核和Docker,是一種極簡操作系統(tǒng),適合將基于容器的應(yīng)用程序托管在云基礎(chǔ)設(shè)施中。RancherOS利用Docker,將Linux用戶空間服務(wù)和應(yīng)用程序托管在不同的容器層中,而不是使用標(biāo)準(zhǔn)的Linux包裝技術(shù)。低級(jí)別的Docker實(shí)例先啟動(dòng),將系統(tǒng)服務(wù)托管在各自的容器中。用戶的應(yīng)用程序在較高級(jí)別的Docker實(shí)例中運(yùn)行,獨(dú)立于系統(tǒng)容器。即使其中一個(gè)容器崩潰了,主機(jī)照樣正常運(yùn)行。
RancherOS只有20MB大小,所以很容易在整個(gè)數(shù)據(jù)中心中進(jìn)行復(fù)制。它還旨在使用自動(dòng)化工具加以管理,而不是人工管理,API級(jí)訪問既適用于Docker的管理工具,又適用于Rancher Labs自己的云基礎(chǔ)設(shè)施和管理工具。
Kubernetes
谷歌的Kubernetes容器編排系統(tǒng)旨在管理和運(yùn)行用Docker和Rocket容器構(gòu)建的應(yīng)用程序。Kubernetes專注于管理微服務(wù)應(yīng)用程序,讓你可以跨主機(jī)群集分發(fā)容器,同時(shí)處理擴(kuò)展問題,確保托管的服務(wù)可靠地運(yùn)行。
由于容器提供了應(yīng)用程序抽象層,Kubernetes是一種以應(yīng)用程序?yàn)橹行牡墓芾矸?wù),支持許多現(xiàn)代開發(fā)模式,側(cè)重于用戶意圖。這意味著你啟動(dòng)應(yīng)用程序后,Kubernetes會(huì)管理容器,以便容器在你設(shè)定的參數(shù)范圍內(nèi)運(yùn)行,并使用Kubernetes調(diào)度器,確保它獲得所需的資源。容器被分成了一個(gè)個(gè)pod,由復(fù)制引擎加以管理。該引擎可以恢復(fù)出現(xiàn)故障的容器,或者應(yīng)用程序增加時(shí),添加更多的pod。
Kubernetes支持谷歌自己的容器引擎(Container Engine),它可以在一系列其他的云和數(shù)據(jù)中心服務(wù)上運(yùn)行,包括AWS和Azure,以及vSphere和Mesos。容器可以松散耦合或緊密耦合,那樣不是為云平臺(tái)即服務(wù)(PaaS)運(yùn)營環(huán)境設(shè)計(jì)的應(yīng)用程序可以作為一組緊密耦合的容器,遷移到云端。Kubernetes還支持將應(yīng)用程序快速部署到群集,為你提供了實(shí)現(xiàn)持續(xù)交付過程的端點(diǎn)。
Mesos
將數(shù)據(jù)中心變成私有云或公有云不僅僅需要虛擬機(jī)管理程序,還需要一種新的操作層,可以管理數(shù)據(jù)中心資源,就好像它們是單一計(jì)算機(jī),處理資源和調(diào)度。Apache Mesos被稱為是一種“分布式系統(tǒng)內(nèi)核”,讓你可以管理成千上萬臺(tái)服務(wù)器,使用容器來托管應(yīng)用程序和API,支持應(yīng)用程序并行開發(fā)。
Mesos的核心是一組守護(hù)進(jìn)程,將資源暴露在中央調(diào)度程序面前。任務(wù)跨節(jié)點(diǎn)分發(fā),充分利用可用的處理器和內(nèi)存資源。一個(gè)關(guān)鍵方法是,要是提供的資源滿足不了要求,應(yīng)用程序可以拒絕這些資源。這種方法很適用于大數(shù)據(jù)應(yīng)用,你可以使用Mesos運(yùn)行Hadoop和Cassandra分布式數(shù)據(jù)庫,還有Apache自己的Spark數(shù)據(jù)處理引擎。還支持Jenkins持續(xù)集成服務(wù)器,讓你可以在服務(wù)器集群上并行運(yùn)行構(gòu)建worker和測試worker,并根據(jù)工作負(fù)載的大小,動(dòng)態(tài)調(diào)整任務(wù)。
Mesos設(shè)計(jì)成可在Linux和Mac OS X上運(yùn)行,最近還被移植到Windows上,以支持在Azure平臺(tái)上開發(fā)可擴(kuò)展的并行應(yīng)用程序。
SmartOS和SmartDataCenter
Joyent的SmartDataCenter是一款運(yùn)行其公有云的軟件,在SmartOS瘦服務(wù)器操作系統(tǒng)上面添加了一個(gè)管理平臺(tái)軟件。SmartOS是OpenSolaris的后續(xù)版本,結(jié)合了Zones容器和KVM虛擬機(jī)管理程序,這是一種內(nèi)存中的操作系統(tǒng),可從U盤快速啟動(dòng),可以在裸機(jī)服務(wù)器上運(yùn)行。
使用SmartOS,你可以快速部署一組輕量級(jí)服務(wù)器,這些服務(wù)器可通過一組JSON API,以編程的方式加以管理,而功能通過虛擬機(jī)來交付,由內(nèi)置的映像管理工具來下載。通過使用虛擬機(jī),所有用戶空間(userland)操作與底層操作系統(tǒng)隔離開來,減小了主機(jī)和訪客的安全隱患。
SmartDataCenter在SmartOS服務(wù)器上運(yùn)行,一臺(tái)服務(wù)器作為專用管理節(jié)點(diǎn)來運(yùn)行,集群的其余服務(wù)器作為計(jì)算節(jié)點(diǎn)來運(yùn)行??梢詮墓P記本電腦上的云版本(這是一種VMware虛擬設(shè)備)開始入手,因而可以試用管理服務(wù)器。在實(shí)際數(shù)據(jù)中心,你將把SmartOS部署到服務(wù)器上,使用ZFS來處理存儲(chǔ)――這包括本地映像庫。服務(wù)作為映像來部署,而各組件存儲(chǔ)在對(duì)象庫中。
SmartDataCenter和SmartOS這個(gè)組合改善了Joyent公有云的體驗(yàn),提供了一套屢試不爽的工具,可以幫助你啟動(dòng)自己的云數(shù)據(jù)中心。這個(gè)基礎(chǔ)架構(gòu)專注于如今的虛擬機(jī),但也為明天的虛擬機(jī)奠定了基礎(chǔ)。一個(gè)相關(guān)的Joyent項(xiàng)目sdc-docker將整個(gè)SmartDataCenter集群暴露為單單一個(gè)Docker主機(jī),受原生Docker命令的控制。
Sensu
管理大規(guī)模數(shù)據(jù)中心的關(guān)鍵不是使用服務(wù)器的圖形用戶界面(GUI),而是根據(jù)來自監(jiān)控工具和服務(wù)的信息,自動(dòng)編制腳本,轉(zhuǎn)發(fā)來自傳感器和日志的信息,然后將操作/行動(dòng)告知應(yīng)用程序。Sensu就是開始提供這種功能的一個(gè)工具,它常常被稱為“監(jiān)控路由器”。
在數(shù)據(jù)中心中運(yùn)行的腳本將信息發(fā)送給Sensu,然后Sensu再將信息發(fā)送給相應(yīng)的處理程序,使用一種基于RabbitMQ的發(fā)布/訂閱架構(gòu)。服務(wù)器可以呈分布式,將發(fā)布的檢查結(jié)果發(fā)送給負(fù)責(zé)處理的代碼。你可以在電子郵件、Slack房間或Sensu自己的儀表板中查看結(jié)果。消息格式由JSON文件來定義,變異器(mutator)被用來實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)格式化,消息經(jīng)過濾后交給一個(gè)或多個(gè)事件處理程序。
Sensu仍是一種比較新興的工具,但是大有希望。如果你想實(shí)現(xiàn)數(shù)據(jù)中心自動(dòng)化,就需要這樣一款工具,不僅用來表明數(shù)據(jù)中心出現(xiàn)的情況,還可用來在最需要的時(shí)候提供這方面信息。一款商業(yè)版本增加了支持與第三方應(yīng)用程序集成的功能,但是開源版本含有管理數(shù)據(jù)中心所需的大部分功能。
Prometheus
管理現(xiàn)代數(shù)據(jù)中心是項(xiàng)復(fù)雜的任務(wù)。一排排服務(wù)器需要小心對(duì)待,你還需要旨在處理成千上萬個(gè)節(jié)點(diǎn)的監(jiān)控系統(tǒng)。監(jiān)控應(yīng)用軟件帶來了特殊的挑戰(zhàn),這時(shí)候Prometheus可以發(fā)揮用場。作為一種旨在向操作人員提供警報(bào)的服務(wù)監(jiān)控系統(tǒng),Prometheus可以在各系統(tǒng)上運(yùn)行,無論是一臺(tái)筆記本電腦,還是多臺(tái)監(jiān)控服務(wù)器組成的高可用性集群。
時(shí)間序列數(shù)據(jù)捕獲后存儲(chǔ)起來,然后與模式進(jìn)行比對(duì),識(shí)別故障和問題。你需要暴露HTTP端點(diǎn)上的數(shù)據(jù),使用YAML文件來配置服務(wù)器?;跒g覽器的報(bào)告工具可處理數(shù)據(jù)顯示,還有一個(gè)表達(dá)式控制臺(tái),你可以試用查詢。儀表板可以用GUI構(gòu)建器來構(gòu)建,或使用一系列模板來編寫,那樣你可以提供應(yīng)用程序控制臺(tái),這些控制臺(tái)可使用Git等版本控制系統(tǒng)來加以管理。
比如說,捕獲的數(shù)據(jù)可使用表達(dá)式加以管理,因而很容易聚合來自幾個(gè)數(shù)據(jù)源的數(shù)據(jù),比如說可以將來自一系列Web端點(diǎn)的數(shù)據(jù)集中到一個(gè)存儲(chǔ)區(qū)。一個(gè)試驗(yàn)性的警報(bào)管理模塊將警報(bào)發(fā)送給常見的協(xié)作和開發(fā)運(yùn)營工具,包括Slack和PagerDuty。提供了面向Go和Java等常見語言的官方客戶軟件庫,這意味著很容易為應(yīng)用程序和服務(wù)添加支持Prometheus的功能,而第三方選件可以將Prometheus擴(kuò)展到Node.js和.Net。
Elasticsearch、Logstash和Kibana
運(yùn)行現(xiàn)代數(shù)據(jù)中心會(huì)生成大量數(shù)據(jù),還需要從這些數(shù)據(jù)中獲取信息的工具。這時(shí)候,Elasticsearch、Logstash和Kibana這對(duì)組合(常常被稱為ELK架構(gòu))可以發(fā)揮作用。
Elasticsearch旨在處理可擴(kuò)展的搜索任務(wù),對(duì)多種類型的內(nèi)容執(zhí)行搜索,包括結(jié)構(gòu)化和非結(jié)構(gòu)化文檔。它基于Apache的Lucene信息檢索工具,還有一組充分利用REST的JSON API。它用來為維基百科和GitHub等網(wǎng)站提供搜索服務(wù),使用分布式索引,具有自動(dòng)化負(fù)載平衡和路由功能。
現(xiàn)代云架構(gòu)的基礎(chǔ)是物理服務(wù)器陣列,作為虛擬機(jī)主機(jī)來運(yùn)行。監(jiān)控成千上萬臺(tái)服務(wù)器需要集中式日志。Logstash負(fù)責(zé)采集和過濾那些服務(wù)器(以及在服務(wù)器上運(yùn)行的應(yīng)用程序)生成的日志,并使用每一臺(tái)物理機(jī)和虛擬機(jī)上的轉(zhuǎn)發(fā)器。然后,Logstash格式的數(shù)據(jù)發(fā)送給Elasticsearch,為你提供了搜索索引:添加更多的服務(wù)器后,搜索引擎可以迅速擴(kuò)展。
在更高層面上,Kibana為Elasticsearch添加了可視化層,提供Web儀表板,用于探究和分析數(shù)據(jù)。儀表板可以圍繞定制搜索來構(gòu)建,并與團(tuán)隊(duì)共享,提供了一種快速、易于理解的開發(fā)運(yùn)營信息源。
Ansible
管理服務(wù)器配置是管理現(xiàn)代數(shù)據(jù)中心或云基礎(chǔ)設(shè)施的任何開發(fā)運(yùn)營方法的一個(gè)關(guān)鍵部分。配置管理工具采用了期望狀態(tài)的方法,簡化云級(jí)別系統(tǒng)管理,使用服務(wù)器和應(yīng)用程序的描述來處理服務(wù)器和應(yīng)用程序的部署。
Ansible提供了極簡的管理服務(wù),使用SSH來管理Unix節(jié)點(diǎn),使用PowerShell與Windows服務(wù)器協(xié)同運(yùn)行,無需部署代理。Ansible Playbook用YAML描述服務(wù)器或服務(wù)的狀態(tài),將Ansible模塊部署到處理配置的服務(wù)器,一旦服務(wù)運(yùn)行起來,就刪除模塊。你可以使用Playbook來編排任務(wù),比如說使用一個(gè)腳本來部署多個(gè)Web端點(diǎn)。
可以讓模塊創(chuàng)建和Playbook交付成為持續(xù)交付過程的一部分,并使用構(gòu)建工具來提供配置、實(shí)現(xiàn)部署自動(dòng)化。 Ansible可以匯集來自云服務(wù)提供商的信息,簡化虛擬機(jī)和網(wǎng)絡(luò)的管理。Ansible中的監(jiān)控工具能夠自動(dòng)觸發(fā)額外的部署,幫助管理和控制云服務(wù),還竭力管理Hadoop等大規(guī)模數(shù)據(jù)平臺(tái)所使用的資源。
Jenkins
做好持續(xù)交付不僅僅需要一種井然有序的方法來處理開發(fā),還需要管理測試和構(gòu)建的工具。這時(shí)候,Jenkins持續(xù)集成服務(wù)器應(yīng)運(yùn)而生。Jenkins與你選擇的源代碼控制、測試工具以及構(gòu)建服務(wù)器協(xié)同運(yùn)行。它是個(gè)靈活的工具,最初用來與Java協(xié)同運(yùn)行,現(xiàn)在已擴(kuò)大到可支持Web開發(fā)和移動(dòng)開發(fā),甚至可以構(gòu)建Windows應(yīng)用程序。
把Jenkins比作交換網(wǎng)絡(luò)可能最恰當(dāng),讓文件通過測試和構(gòu)建過程,并回應(yīng)來自所使用的各個(gè)工具的信號(hào)――這歸功于1000多個(gè)插件組成的龐大庫。這些包括將Jenkins與本地Git實(shí)例和GitHub整合起來的工具,那樣可以將持續(xù)開發(fā)模式擴(kuò)展到你的構(gòu)建和交付過程。
使用Jenkins之類的自動(dòng)化工具不僅要奉行一種理念,還要實(shí)施構(gòu)建過程。一旦你致力于持續(xù)集成作為持續(xù)交付模式的一部分,只要代碼分發(fā)給源代碼控制版本分支,你就要運(yùn)行測試和構(gòu)建周期,一旦代碼進(jìn)入到主分支,就要分發(fā)給用戶。
Node.js和io.js
現(xiàn)代云應(yīng)用程序使用不同于我們熟悉的n層企業(yè)和Web應(yīng)用程序的設(shè)計(jì)模式構(gòu)建而成。它們是分布式、事件驅(qū)動(dòng)的服務(wù)組合,這些服務(wù)可迅速擴(kuò)展,并支持成千上萬個(gè)并發(fā)用戶。Node.js就是采用這種新模式的一項(xiàng)關(guān)鍵技術(shù),它被許多主要的云平臺(tái)所使用,易于安裝,成為云基礎(chǔ)設(shè)施上瘦服務(wù)器或容器的一部分。
Node.js大獲成功,關(guān)鍵是Npm程序包格式,它讓你可以迅速安裝核心Node.js服務(wù)的擴(kuò)展件。這包括Express和Seneca等框架,這些框架有助于構(gòu)建可擴(kuò)展的應(yīng)用程序。中央注冊(cè)中心處理程序包分發(fā),依賴項(xiàng)自動(dòng)安裝。
雖然io.js分支暴露了項(xiàng)目管理方面的問題,但是它也讓一組開發(fā)人員得以積極地將ECMAScript 6支持功能添加到與Npm兼容的引擎中。兩支團(tuán)隊(duì)協(xié)調(diào)后,Node.js的和io.js代碼庫已合并,現(xiàn)在新版本來自io.js代碼庫。
明年,其他分支可能會(huì)重新并入到主分支,比如微軟的io.js分支增加了對(duì)64位Chakra JavaScript引擎以及谷歌V8的支持,從而讓Node.js的平臺(tái)不斷發(fā)展,鞏固其作為云級(jí)別微服務(wù)首選主機(jī)的地位。
Seneca
Seneca微服務(wù)框架的開發(fā)人員有句座右銘:“現(xiàn)在構(gòu)建,以后擴(kuò)展”。對(duì)任何想開發(fā)微服務(wù)的人來說,這句格言再恰當(dāng)不過了,因?yàn)樗屇憧梢詮男√幾銎?,然后隨著服務(wù)增多,逐步添加功能。
從本質(zhì)上講,Seneca實(shí)施了對(duì)象/消息(actor/message)設(shè)計(jì)模式,專注于使用Node.js作為交換引擎:獲取消息后,處理其內(nèi)容,然后發(fā)送適當(dāng)?shù)捻憫?yīng),無論是發(fā)給消息始發(fā)者還是另一個(gè)服務(wù)。由于專注于與業(yè)務(wù)用例相對(duì)應(yīng)的消息模式,拿來Seneca后,比較容易為你的應(yīng)用程序迅速構(gòu)建極簡的可行產(chǎn)品。插件架構(gòu)讓你很容易將Seneca與其他工具集成起來,迅速為服務(wù)添加功能。
應(yīng)用程序的要求提高或有變時(shí),可以迅速為代碼庫添加新的模式,或者把現(xiàn)有模式分解成不同的服務(wù)。一個(gè)模式還可以調(diào)用另一模式,以便迅速重復(fù)使用代碼。還很容易將Seneca添加到消息總線,那樣可以把它用作一個(gè)框架,處理來自物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù),因?yàn)槟阒恍枰x監(jiān)聽端口,監(jiān)視JSON數(shù)據(jù)在哪里提供。
服務(wù)可能不具有持續(xù)性,Seneca為你提供了這個(gè)選擇:使用內(nèi)置的對(duì)象關(guān)系映射層來處理數(shù)據(jù)抽象,并提供了常用數(shù)據(jù)庫的插件。
.Net Core和ASP.Net vNext
微軟開放了.Net的源代碼,此舉無異于公開了該公司的這個(gè)Web平臺(tái)的大部分代碼。新的.Net Core版本可以在Windows、OS X和Linux上運(yùn)行。.Net Core目前從微軟的Codeplex代碼庫遷移到了GitHub,為.Net提供了一種更模塊化的方法,讓你可以在需要時(shí),安裝所需的功能。
ASP.Net 5目前處于開發(fā)之中,這個(gè)Web平臺(tái)的開源版本可在.Net Core上運(yùn)行。你可以使用微軟的MVC 6框架,將它作為Web應(yīng)用程序的基礎(chǔ)。還支持新的SignalR庫,這些庫增添了對(duì)WebSockets及其他實(shí)時(shí)通信協(xié)議的支持。
如果你計(jì)劃使用微軟的新款Nano服務(wù)器,就要使用.Net Core編寫代碼,因?yàn)樗菫槭莪h(huán)境設(shè)計(jì)的。新的DNX是.Net執(zhí)行環(huán)境,簡化了將ASP.Net應(yīng)用程序部署到眾多平臺(tái)上的任務(wù),還有用于包裝代碼、在主機(jī)上啟動(dòng)運(yùn)行時(shí)環(huán)境的工具。特性可使用NuGet程序包管理器來添加,讓你可以只要使用所需的庫。
微軟的開源.Net還很年輕,但是微軟已承諾確保它取得成功。微軟自己的下一代服務(wù)器操作系統(tǒng)支持開源.Net,這意味著它在數(shù)據(jù)中心和云都有一席之地。
GlusterFS
GlusterFS是一個(gè)分布式文件系統(tǒng)。Gluster把各種存儲(chǔ)服務(wù)器聚合到一個(gè)龐大的并行網(wǎng)絡(luò)文件系統(tǒng)。你甚至可以用它來代替Hadoop集群中的HDFS,或者代替成本高昂的存儲(chǔ)區(qū)域網(wǎng)(SAN)系統(tǒng),或者同時(shí)代替兩者。雖然HDFS很適合Hadoop,但有一個(gè)不需要將數(shù)據(jù)傳輸?shù)搅硪惶巵矸治龅耐ㄓ梅植际轿募到y(tǒng)是一大優(yōu)勢(shì)。
在當(dāng)下商品化硬件、商品化計(jì)算以及對(duì)性能和延遲要求更高的時(shí)代,購買又大又貴的EMC SAN,希望它能滿足所有要求(自然滿足不了)不再是你唯一切實(shí)可行的選擇。GlusterFS在2011年被紅帽收購。