天天看點

2011年10個最重要的開源軟體

2011年是一個開源項目标志性的一年。正因如此,挑選 10 個最重要的是相當困難的。要判斷的重要性,應該是影響深遠,并且日益普及的項目,或在新領域中的技術佼佼者。

Hadoop

首先出場的是Hadoop,毫無疑問這個來自 Apache 基金會的分布式計算平台當得起“重要”二字,在過去的一年中這個由 Yahoo 發起的項目正在為包括 Amazon、IBM、Twitter、Facebook 等公司所使用。

2011年10個最重要的開源軟體

Hadoop并不僅僅是一個用于存儲的分布式檔案系統,而是設計用來在由通用計算裝置組成的大型叢集上執行分布式應用的架構。

下圖是Hadoop的體系結構:

2011年10個最重要的開源軟體

盡管不是一個新項目,但 Hadoop 已經成為事實上的分布式計算标準。

Git

Git 已經無所不在了,不是嗎? Linus Torvalds 不隻是對 Linux 作業系統有貢獻,他也讓更多的開源項目變得流行起來,在分布式版本控制上,使用 Git 會比其他解決方案更可靠。

2011年10個最重要的開源軟體

Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。

Git 是 Linux Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體。

Torvalds 開始着手開發 Git 是為了作為一種過渡方案來替代 BitKeeper,後者之前一直是 Linux 核心開發人員在全球使用的主要源代碼工具。開放源碼社群中的有些人覺得 BitKeeper 的許可證并不适合開放源碼社群的工作,是以 Torvalds 決定着手研究許可證更為靈活的版本控制系統。盡管最初 Git 的開發是為了輔助 Linux 核心開發的過程,但是我們已經發現在很多其他自由軟體項目中也使用了 Git。例如,X.org 最近就遷移到 Git 上來了,很多 Freedesktop.org 的項目也遷移到了 Git 上。

Git與CVS的差別

分支更快、更容易。

Git 中的每個工作樹都包含一個具有完整項目曆史的倉庫。

沒有哪一個 Git 倉庫會天生比其他倉庫更重要。

Git 不隻是一個受歡迎的工具,還有一個基于 Git 的開源軟體社群 GitHub,這跟包括 Gitorious、SF、Google Code 項目托管平台類似,但遠不止于此。

Cassandra

Cassandra 獲得了 2011 最佳 NoSQL 解決方案獎項,

2011年10個最重要的開源軟體

Apache Cassandra是一套開源分布式Key-Value存儲系統。它最初由Facebook開發,用于儲存特别大的資料。Facebook目前在使用此系統。

主要特性:

分布式

基于column的結構化

高伸展性

Cassandra的主要特點就是它不是一個資料庫,而是由一堆資料庫節點共同構成的一個分布式網絡服務,對Cassandra 的一個寫操作,會被複制到其他節點上去,對Cassandra的讀操作,也會被路由到某個節點上面去讀取。對于一個Cassandra群集來說,擴充性能 是比較簡單的事情,隻管在群集裡面添加節點就可以了。

Cassandra是一個混合型的非關系的資料庫,類似于Google的BigTable。其主要功能比 Dynomite(分布式的Key-Value存 儲系統)更豐富,但支援度卻不如文檔存儲MongoDB(介于關系資料庫和非關系資料庫之間的開源産品,是非關系資料庫當中功能最豐富,最像關系資料庫 的。支援的資料結構非常松散,是類似json的bjson格式,是以可以存儲比較複雜的資料類型。)Cassandra最初由Facebook開發,後轉 變成了開源項目。它是一個網絡社交雲計算方面理想的資料庫。以Amazon專有的完全分布式的Dynamo為基礎,結合了Google BigTable基于列族(Column Family)的資料模型。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。

和其他資料庫比較,有幾個突出特點:

模式靈活 :使用Cassandra,像文檔存儲,你不必提前解決記錄中的字段。你可以在系統運作時随意的添加或移除字段。這是一個驚人的效率提升,特别是在大型部 署上。

真正的可擴充性 :Cassandra是純粹意義上的水準擴充。為給叢集添加更多容量,可以指向另一台電腦。你不必重新開機任何程序,改變應用查詢,或手動遷移任何資料。

多資料中心識别 :你可以調整你的節點布局來避免某一個資料中心起火,一個備用的資料中心将至少有每條記錄的完全複制。

一些使Cassandra提高競争力的其他功能:

範圍查詢 :如果你不喜歡全部的鍵值查詢,則可以設定鍵的範圍來查詢。

清單資料結構 :在混合模式可以将超級列添加到5維。對于每個使用者的索引,這是非常友善的。

分布式寫操作 :有可以在任何地方任何時間集中讀或寫任何資料。并且不會有任何單點失敗。

LibreOffice

LibreOffice 是一套自由的辦公軟體,它可以在Windows、Linux、Macintosh平台上運作,本套軟體共有六個應用程式供您使用,包括:Writer、 Calc、Impress、Draw、Math、Base。在過去一年中,LibreOffice 團隊做了大量的工作,讓你在 Sun 被 Oracle 收購之後仍有一個放心的相容 OpenOffice 的辦公軟體可使用。LibreOffice 不斷的釋出新版本,這不隻是新功能的釋出,還讓 LibreOffice 越來越穩定和可靠。

2011年10個最重要的開源軟體

OpenStack

雲計算可算是2011最熱的技術領域之一了,OpenStack 是由 Rackspace 和 NASA 共同開發的雲計算平台,幫助服務商和企業内部實作類似于 Amazon EC2 和 S3 的雲基礎架構服務(Infrastructure as a Service, IaaS)。

2011年10個最重要的開源軟體

OpenStack 包含兩個主要子產品:Nova 和 Swift,前者是 NASA 開發的虛拟伺服器部署和業務計算子產品;後者是 Rackspack 開發的分布式雲存儲子產品,兩者可以一起用,也可以分開單獨用。OpenStack 是開源項目,除了有 Rackspace 和 NASA 的大力支援外,後面還有包括 Dell, Citrix, Cisco, Canonical 這些重量級公司的貢獻和支援,發展速度非常快,有取代另一個業界領先開源雲平台 Eucalyptus 的态勢。

Nginx

Nginx 終于在今年釋出了 1.0 版本,同時也完成了商業化過程。而且根據最新的 Netcraft 的統計報告,Nginx 的市場佔有率已經達到 8.85% ,已經俨然成為 Web 伺服器中的老三,而且發展迅速。

2011年10個最重要的開源軟體

Nginx(發音同 engine x)是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,并在一個BSD-like 協定下發行。由俄羅斯的程式設計師Igor Sysoev所開發,最初供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。 其特點是占有記憶體少,并發能力強,事實上nginx的并發能力确實在同類型的網頁伺服器中表現較好

jQuery

現在已經比較難找到一個不使用 jQuery 的 Web 開發人員了,已經成為最受歡迎的 JavaScript 了,而且 jQuery 有着其他 JS 難以超越的地方就是它有一個龐大的插件庫,有大量的開發人員在為 jQuery 編寫擴充和插件。

Node.js

2011年10個最重要的開源軟體

Node.js 是一套用來編寫高性能網絡伺服器的JavaScript工具包,一系列的變化由此開始。比較獨特的是,Node.js會假設你是在POSIX環境下運作它 Linux 或 Mac OS X。如果你是在Windows下,那就需要安裝MinGW以獲得一個仿POSIX的環境。在Node中,Http是首要的。Node為建立http伺服器 作了優化,是以你在網上看到的大部分示例和庫都是集中在web上(http架構、模闆庫等)。

Puppet

2011年10個最重要的開源軟體

Puppet,您可以集中管理每一個重要方面,您的系統使用的是跨平台的規範語言,管理所有的單獨的元素通常聚集在不同的檔案,如使用者, CRON作業,和主機一起顯然離散元素,如包裝,服務和檔案。

Puppet的簡單陳述規範語言的能力提供了強大的classing制定了主機之間的相似之處,同時使他們能夠提供盡可能具體的必要的,它依賴的先決條件和對象之間的關系清楚和明确。

Linux

今年是 Linux 20周年,同時釋出了首個 3.0 版本,而後版本一直飙升,大量的商業公司參與核心開發。20周年、3.0 版本,這兩點讓 Linux 當選 2011 年最重要的開源軟體之一,應該沒有什麼質疑。

有人可能會說Android也很重要,但有不少人質疑 Android 的開源性質,質疑的人稱 Android 是一個代碼開放的項目,而不是一個開源項目。