所謂開源,就是把軟件的源代碼開放出來,大家都能看到源代碼,大家可以一起研究源代碼並對軟件的進行優化和改進。越來越多的 IT 公司對開源持開放態度,一方面有了優秀的開源項目,就不用再重複造輪子,可以直接拿來使用;另一方面,自己公司有優秀的自研項目,爲了發展壯大可以選擇將項目開源,讓更多的開發者參與進來,一起努力提升軟件的功能!
近些年來,國內很多大型 IT 公司也逐漸推出了一些高質量的開源項目,比如華爲開源了鴻蒙系統、騰訊開源了自研的頂級數據庫 TBase、 阿里開源了自研的科學計算引擎 Mars 等。
下面,我們先大概回顧一下紅帽公司發佈的企業開源現狀的調查報告,然後簡單介紹一下最受 IT 公司青睞的一些開源項目。這些主要是面向企業的應用軟件項目,涵蓋 Web 服務器、大數據、雲計算、雲存儲、操作系統、數據庫等幾大類別。
web 服務器
Nginx
Nginx (engine x) 是俄羅斯人開發出來的一個高性能的 HTTP 和反向代理 web 服務器,同時也提供了 IMAP/POP3/SMTP 服務。其特點是佔有內存少,併發能力強,Nginx 的併發能力在同類型的網頁服務器中表現較好,很多人使用 Nginx 來做負載均衡器和 web 反向代理。
- 支持的操作系統:windows、linux 和 OS X
- 相關網站:https://nginx.org
Lighttpd
Lighttpd 是一個輕量級的開源 Web 服務器軟件,其根本的目的是提供一個專門針對高性能網站,安全、快速、兼容性好並且靈活的 web server 環境。具有非常低的內存開銷、cpu 佔用率低、效能好以及豐富的模塊等特點。廣泛地應用於一些嵌入式的 web 服務器上。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:https://www.lighttpd.net/
Tomcat
Tomcat 服務器是一個免費的開放源代碼的 Web 應用服務器,屬於輕量級應用服務器,主要用於運行 JSP 頁面和 Servlet。因爲 Tomcat 技術先進、性能穩定,而且免費,因而深受 JAVA 愛好者的喜愛並得到了部分軟件開發商的認可,成爲目前比較流行的 Web 應用服務器。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:https://tomcat.Apache.org
Apache HTTP Server
Apache HTTP Server(簡稱 Apache),是 Apache 軟件基金會的一個開放源代碼的網頁服務器,可以在大多數電腦操作系統中運行,由於其具有的跨平臺性和安全性,被廣泛使用,是自 1996 年以來互聯網上最受歡迎的 Web 服務器系統。據稱,目前所有網站中 55.3% 是由 Apache 支持的。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:https://httpd.apache.org
大數據與雲計算
Hadoop
Hadoop 是一個由 Apache 基金會所開發的分佈式系統基礎架構,被公認是一套行業大數據標準開源軟件,在分佈式環境下提供了海量數據的處理能力。幾乎所有主流廠商都圍繞 Hadoop 開發工具、開源軟件、商業化工具和技術服務,Hadoop 已經成爲大數據的標配框架。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:http://hadoop.apache.org
Docker
Docker 是一個開源的應用容器引擎,開發者可以打包自己的應用到容器裏面,然後遷移到其他機器的 docker 應用中,可以實現快速部署,廣泛地被應用於大數據的領域中。基本上做大數據的公司都會使用到該工具。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:https://www.docker.com
Spark
Apache Spark 是專爲大規模數據處理而設計的快速通用的計算引擎。Spark 類似於 Hadoop MapReduce 的通用並行框架。Apache Spark 聲稱,“它在內存中運行程序的速度比 Hadoop MapReduce 最多快 100 倍,在磁盤上快 10 倍。Spark 能更好地適用於數據挖掘與機器學習等需要迭代的 MapReduce 的算法。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:http://spark.apache.org
Storm
Storm 是一個 Twitter 開源的分佈式實時大數據處理系統,被業界稱爲實時版 Hadoop。隨着越來越多的場景對 Hadoop 的 MapReduce 高延遲無法容忍,比如網站統計、推薦系統、預警系統、金融系統 (高頻交易、股票) 等等,大數據實時處理解決方案(流計算)的應用日趨廣泛,目前已是分佈式技術領域最新爆發點,而 Storm 更是流計算技術中的佼佼者和主流。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:https://storm.apache.org
Cloud Foundry
Cloud Foundry 是業界第一個開源 PaaS 雲平臺,它支持多種框架、語言、運行時環境、雲平臺及應用服務,使開發人員能夠在幾秒鐘內進行應用程序的部署和擴展,無需擔心任何基礎架構的問題。它聲稱 “由行業領袖爲行業領袖構建”,其支持者包括 IBM、 Pivotal、惠普企業、VMware、英特爾、SAP 和 EMC。
- 支持的操作系統:與系統無關
- 相關網站:https://www.cloudfoundry.org
CloudStack
CloudStack 是一個開源的具有高可用性及擴展性的雲計算平臺,同時是一個開源雲計算解決方案。可以加速高伸縮性的公共和私有云(IaaS)的部署、管理、配置。使用 CloudStack 作爲基礎,數據中心操作者可以快速方便地通過現存基礎架構創建雲服務。
- 支持的操作系統:與操作系統無關
- 相關網站:https://cloudstack.apache.org
OpenStack
OpenStack 是一個開源的雲計算管理平臺項目,是一系列軟件開源項目的組合。由 NASA(美國國家航空航天局) 和 Rackspace 合作研發併發起,授權的開源代碼項目。OpenStack 爲私有云和公有云提供可擴展的彈性的雲計算服務。項目目標是提供實施簡單、可大規模擴展、豐富、標準統一的雲計算管理平臺。這種很受歡迎的雲計算平臺聲稱,“世界上成百上千個大品牌” 每天依賴它。
- 支持的操作系統:與操作系統無關
- 相關網站:https://www.openstack.org
雲存儲
Gluster
GlusterFS 是一個可高度擴展、可伸縮的分佈式文件系統,適用於雲存儲和媒體流等數據密集型任務。實現了全部標準 POSIX 接口,並用 fuse 實現虛擬化,讓用戶看起來就像是本地磁盤一樣。能夠處理千數量級的客戶端。
- 支持的操作系統:Linux、Windows
- 相關網站:https://www.gluster.org
FreeNAS
FreeNAS 是一套免費開源的 NAS 服務器,它能將一部普通 PC 變成網絡存儲服務器。該軟件基於 FreeBSD,Samba 及 php,支持 CIFS (samba), FTP, NFS protocols, Software RAID (0,1,5) 及 web 界面的設定工具。用戶可通過 Windows、macs、FTP、SSH 及網絡文件系統 (NFS) 來訪問存儲服務器;FreeNAS 可被安裝於硬盤或移動介質 USB Flash Disk 上。FreeNAS 服務器前途無量;它是組建簡單網絡存儲服務器的絕佳選擇。
- 支持的操作系統:與系統無關
- 相關網站:http://www.freenas.org
Lustre
Lustre 是一個開源、分佈式並行文件系統軟件平臺,具有高可擴展、高性能、高可用等特點。Lustre 的構造目標是爲大規模計算系統提供一個全局一致的 POSIX 兼容的命名空間,這些計算系統包括了世界上包含最強大的高性能計算系統。它支持數百 PB 數據存儲空間,支持數百 GB/s 乃至數 TB/s 併發聚合帶寬。一些最早採用它的用戶包括美國的幾大國家實驗室:勞倫斯 · 利物莫爾國家實驗室、桑迪亞國家實驗室、橡樹嶺國家實驗室和洛斯阿拉莫斯國家實驗室。
- 支持的操作系統:Linux
- 相關網站:http://lustre.org
Ceph
Ceph 是一種爲優秀的性能、可靠性和可擴展性而設計的分佈式文件系統,是最早致力於開發下一代高性能分佈式文件系統的項目。隨着雲計算的發展,Ceph 乘上了 OpenStack 的春風,進而成爲了開源社區受關注較高的項目之一。
- 支持的操作系統:Linux
- 相關網站:https://ceph.com
操作系統
centos
CentOS(Community Enterprise Operating System,中文意思是社區企業操作系統)是 Linux 發行版之一,它是來自於 Red Hat Enterprise Linux 依照開放源代碼規定釋出的源代碼所編譯而成。由於出自同樣的源代碼,因此有些要求高度穩定性的服務器以 CentOS 替代商業版的 Red Hat Enterprise Linux 使用。兩者的不同,在於 CentOS 完全開源。
Ubuntu
Ubuntu 也是開源的,也擁有龐大的社區力量,用戶可以方便地從社區獲得幫助,提供廣受歡迎的 Linux 發行版,有多個版本:桌面版、服務器版、雲版、手機版、平板電腦版和物聯網版。聲稱用戶包括亞馬遜、IBM、維基百科和英偉達。
數據庫
MySQL
MySQL 是用 C/C++ 編寫的關係型數據庫,自稱是 “世界上最流行的開源數據庫”,備受衆多互聯網公司的青睞,除了免費社區版外,它還有多款收費版。雖然是免費開源的,但是其性能有足夠的保證,國內很多 IT 公司都在使用 MySQL。
- 支持的操作系統:Windows、Linux、Unix 和 OS X
- 相關網站:https://www.mysql.com
PostgreSQL
PostgreSQL 是一個功能非常強大的、源代碼開放的客戶 / 服務器關係型數據庫管理系統。國內知名的華爲高斯數據庫和騰訊的 TBase 數據庫均是在該數據庫的基礎上發展而來的。國內最牛的阿里 OceanBase 數據庫所有代碼都是自主研發的,雖然不是 PostgreSQL 基礎上開發出來的,但應該也借鑑了 PostgreSQL 的很多特性和優點。
- 支持的操作系統:Windows、Linux、Unix 和 OS X
- 相關網站:https://www.postgresql.org
MongoDB
MongoDB 是一種 NoSQL 數據庫,是一個基於分佈式文件存儲的數據庫。由 C++ 語言編寫。旨在爲應用提供可擴展的高性能數據存儲解決方案。
MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫。用戶包括 Foursquare、《福布斯》、Pebble、Adobe、領英、eHarmony 及其他公司。提供收費的專業版和企業版。
- 支持的操作系統:Windows、Linux、OS X 和 Solaris
- 相關網站:https://www.mongodb.org
Cassandra
這種 NoSQL 數據庫由 Facebook 開發,其用戶包括蘋果、歐洲原子核研究組織(CERN)、康卡斯特、電子港灣、GitHub、GoDaddy、Hulu、Instagram、Intuit、網飛、Reddit 及其他科技公司。它支持極其龐大的數據集,聲稱擁有非常高的性能和出色的耐用性和彈性。可通過第三方獲得支持。
- 支持的操作系統:與操作系統無關
- 相關網站:https://cassandra.apache.org
CouchDB
CouchDB 是用 Erlang 開發的面向文檔的數據庫系統,這種 NoSQL 數據庫將數據存儲在 JSON 文檔中,這類文檔可通過 HTTP 來加以查詢,並用 JavaScript 來處理。CouchDB 現在歸 IBM 所有,它提供一款專業人員支持的軟件版本,用戶包括:三星、Akamai、Expedia、微軟遊戲工作室及其他公司。
- 支持的操作系統:Windows、Linux、OS X 和 Android
- 相關網站:https://couchdb.apache.org
Neo4j
Neo4J 一個高性能的 NOSQL 圖形數據庫,它將結構化數據存儲在網絡上而不是表中,自詡爲 “世界上領先的圖形數據庫”,用於欺詐檢測、推薦引擎、社交網站、主數據管理及更多領域。用戶包括電子港灣、沃爾瑪、思科、惠普、埃森哲、CrunchBase、eHarmony、Care.com 及另外許多企業組織。
- 支持的操作系統:Windows 和 Linux
- 相關網站:https://neo4j.com
開發工具和組件
Bugzilla
Bugzilla 是開源社區的寵兒,用戶包括 Mozilla、Linux 基金會、GNOME、KDE、Apache、Libreoffice、Open Office、Eclipse、紅帽、Novell 及其他公司。這款軟件缺陷追蹤系統(bugtracker)的重要功能包括:高級搜索功能、電子郵件通知、預定報告、時間追蹤、出色的安全及更多特性。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:https://www.bugzilla.org
Eclipse
Eclipse 項目最爲知名的是,它是一種大受歡迎的面向 Java 的集成開發環境(IDE),它還提供面向 C/C++ 和 PHP 的 IDE,此外提供另外一大批開發工具。主要支持者包括冠羣科技、谷歌、IBM、甲骨文、紅帽和 SAP。
- 支持的操作系統:與操作系統無關
- 相關網站:https://www.eclipse.org
Ember.js
Ember.js 是一個開源的 JavaScript 客戶端框架, 用於開發 Web 應用程序並使用 MVC 架構模式,這種框架用於 “構建野心勃勃的 Web 應用程序”,旨在爲 JavaScript 開發人員提高工作效率。官方網站上顯示用戶包括雅虎、Square、Livingsocial、Groupon、Twitch、TED、網飛、Heroku 和微軟。
- 支持的操作系統:與操作系統無關
- 相關網站:https://emberjs.com
Node.js
Node 是一個讓 JavaScript 運行在服務端的開發平臺,它讓 JavaScript 成爲與 PHP、Python、Perl、Ruby 等服務端語言平起平坐的腳本語言,它讓開發人員可以使用 JavaScript,編寫服務器端應用程序。開發工作之前由 Joyent 管控,現在交由 Node.js 基金會監管。用戶包括 IBM、微軟、雅虎、SAP、領英、貝寶和網飛。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:https://nodejs.org/en/
React Native
React Native 由 Facebook 開發,這種框架可用於使用 JavaScript 和 React JavaScript 庫(同樣由 Facebook 開發),構建原生移動應用程序。其他用戶包括:《探索》頻道和 CBS 體育新聞網。
- 支持的操作系統:OS X
- 相關網站:https://facebook.github.io/react-native/
Ruby on Rails
Ruby on Rails 是一個可以使你開發、部署、維護 web 應用程序變得簡單的框架。這個 Web 開發框架在開發人員當中極其流行,它聲稱 “爲確保編程員滿意和持續高效地工作進行了優化”。用戶包括 Basecamp、推特、Shopify 和 GitHub 等公司。
- 支持的操作系統:Windows、Linux 和 OS X
- 相關網站:https://rubyonrails.org
中間件
JBoss
JBoss 是一個基於 J2EE 的開放源代碼的應用服務器。JBoss 代碼遵循 LGPL 許可,可以在任何商業應用中免費使用。JBoss 是一個管理 EJB 的容器和服務器,支持 EJB 1.1、EJB 2.0 和 EJB3 的規範,但 JBoss 核心服務不包括支持 servlet/JSP 的 WEB 容器,一般與 Tomcat 或 Jetty 綁定使用。JBoss 中間件包括各種輕量級、對雲計算友好的工具,同時結合、集成和自動化各個企業應用程序和系統。用戶包括:橡樹嶺國家實驗室、日產、思科、冠羣科技、AMD 及其他公司。
- 支持的操作系統:Linux
- 相關網站:https://www.jboss.org/