阿里巴巴開源github地址:https://github.com/alibaba php
騰訊開源github地址:https://github.com/Tencentcss
奇虎360github地址:https://github.com/Qihoo360html
小米開源github地址:https://github.com/XiaoMi前端
豆瓣開源github地址:https://github.com/doubanhtml5
網易開源github地址:https://github.com/neteasenode
紅色字體是現階段比較火的python
----------------------------------------------------------------------------------------------------------------mysql
奇虎360 https://github.com/Qihoo360linux
1.MySQL中間層 Atlasnginx
Atlas是由 Qihoo 360, Web平臺部基礎架構團隊開發維護的一個基於MySQL協議的數據中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了不少功能特性。目前該項目在360公司內部獲得了普遍應用,不少MySQL業務已經接入了Atlas平臺,天天承載的讀寫請求數達幾十億條。
主要功能:
* 讀寫分離
* 從庫負載均衡
* IP過濾
* SQL語句黑白名單
* 自動分表更多內容:https://github.com/Qihoo360/Atlas
2.360黑科技=》DroidPlugin
DroidPlugin 是360手機助手在 Android 系統上實現了一種新的插件機制:它能夠在無需安裝、修改的狀況下運行APK文件,此機制對改進大型APP的架構,實現多團隊協做開發具備必定的好處。
特色:
支持Androd 2.3以上系統
插件APK徹底不需作任何修改,能夠獨立安裝運行、也能夠作插件運行。要以插件模式運行某個APK,你無需從新編譯、無需知道其源碼。
插件的四大組件徹底不須要在Host程序中註冊,支持Service、Activity、BroadcastReceiver、ContentProvider四大組件
插件之間、Host程序與插件之間會互相認爲對方已經"安裝"在系統上了。
API低侵入性:極少的API。HOST程序只是須要一行代碼便可集成Droid Plugin
超強隔離:插件之間、插件與Host之間徹底的代碼級別的隔離:不能互相調用對方的代碼。通信只能使用Android系統級別的通信方法。
支持全部系統API
資源徹底隔離:插件之間、與Host之間實現了資源徹底隔離,不會出現資源竄用的狀況。
實現了進程管理,插件的空進程會被及時回收,佔用內存低。
插件的靜態廣播會被看成動態處理,若是插件沒有運行(即沒有插件進程運行),其靜態廣播也永遠不回被觸發。
更多查看:https://github.com/Qihoo360/DroidPlugin/
3.高性能分佈式存儲服務 HustStore
huststore 是一個高性能的分佈式存儲服務,不但提供了 10w QPS 級別的 kv 存儲的功能,還提供了 hash、set 等一系列數據結構的支持,而且支持 二進制 的 kv 存儲,能夠徹底取代 Redis 的功能。此外,huststore 還結合特有的 HA 模塊實現了分佈式消息隊列的功能,包括消息的流式推送,以及消息的 發佈-訂閱 等功能,能夠徹底取代 RabbitMQ 的功能。
特性
huststore 分爲 hustdb 以及 HA 模塊兩大部分。hustdb (存儲引擎)的底層設計採用了自主開發的 fastdb,經過一套獨特的 md5 db 將QPS 提高至 10w 級別的水準(含網絡層的開銷)。HA 以 nginx 模塊的方式開發。nginx 是工業級的 http server 標準,得益於此,huststore 具有如下特性:
高吞吐量
hustdb 的網絡層採用了開源的 libevhtp 來實現,結合自主研發的高性能 fastdb 存儲引擎,性能測試 QPS 在 10w 以上。高併發
參考 nginx 的併發能力。高可用性
huststore 總體架構支持 Replication (master-master),支持 load balance 。
HA 的可用性由nginx 的 master-worker 架構所保證。當某一個 worker 意外掛掉時, master 會自動再啓動一個 worker 進程,並且多個 worker 之間是相互獨立的,從而保證了 HA 的高可用性。
huststore 的高可用性由其總體架構特色保證。因爲 hustdb 的存儲節點採用了 master-master 的結構,當某一個存儲節點掛掉時,HA 會自動將請求打到另一臺 master,同時 HA 會按照自動進行負載均衡,將數據分佈存儲在多個 hustdb節點上,所以存儲引擎不存在單點限制。
同時 HA 集羣自己也是分佈式的設計,並且每一個 HA 節點都是獨立的,當某一臺 HA 掛掉時, LVS 會自動將請求打到其餘可用的 HA 節點,從而解決了 HA 得單點限制。通用性的接口
huststore 使用 http 做爲通用協議,所以客戶端的實現不限制於語言。支持二進制的 key-value
更多查看:https://github.com/Qihoo360/huststore
4.分佈式配置管理工具 QConf
QConf 是奇虎 360 內部分佈式配置管理工具。用來替代傳統的配置文件,使得配置信息和程序代碼分離,同時配置變化可以實時同步到客戶端,並且保證用戶高效讀取配置,這使的工程師從瑣碎的配置修改、代碼提交、配置上線流程中解放出來,極大地簡化了配置管理工做。
特色
一處修改,全部機器實時同步更新
高效讀取配置
安裝部署方便,使用簡單
服務器宕機、網絡中斷、集羣遷移等異常狀況對用戶透明
支持c/c++、shell、php、python、lua 等語言
更多查看:https://github.com/Qihoo360/QConf
5.開源類Redis存儲系統 Pika
Pika 是 360 DBA 和基礎架構組聯合開發的類 Redis 存儲系統,徹底支持 Redis 協議,用戶不須要修改任何代碼,就能夠將服務遷移至 Pika。有維護 Redis 經驗的 DBA 維護 Pika 不須要學習成本。
Pika 主要解決的是用戶使用 Redis 的內存大小超過 50G、80G 等等這樣的狀況,會遇到啓動恢復時間長,一主多從代價大,硬件成本貴,緩衝區容易寫滿等問題。Pika 就是針對這些場景的一個解決方案。
特色
容量大,支持百G數據量的存儲
兼容redis,不用修改代碼便可平滑從redis遷移到pika
支持主從(slaveof)
完善的運維命令
更多內容:https://github.com/Qihoo360/pika
6.對象緩存服務器 kmemcache
分佈式linux內核內存對象緩存服務器,實現基於memcached v1.4.15,基本兼容memcached的全部操做。經初步測試,內存數據操做比memcached快1倍,網絡併發量比memcached的也大許多,目前處於alpha版本。
優勢:因爲在內核的socket層實現,全部處理網絡事件性能比epoll機制快,另外無需內存由用戶空間到內核空間的拷貝。
缺點:不建議在32bits下使用。
更多內容: https://github.com/Qihoo360/kmemcache
7.ngx_http_subrange_module
當Nginx做爲文件下載服務的反向代理,用戶請求一個很是大的文件的時候,它會一直佔滿反向代理服務器與後端主機之間的帶寬。由於nginx一次獲取整個文件,緩衝獲取到的文件,致使客戶端不能立刻讀取到。帶寬使用和iowait會很高。
ngx_http_subrange_module就是爲了解決這個問題,它能分割HTTP requests。將大數據量的HTTP請求切分爲多個子請求,當下載一個1 G的文件,subrange將從後端主機中下載文件塊,好比先獲取5 M,而後再獲取5 M,直到客戶端下載完整個文件。
更多查看:https://github.com/Qihoo360/ngx_http_subrange_module
8.同步到異步的類庫 Mario
Mario是一個讓編寫從同步到異步的類庫,它的線程安全較大,易於使用。Mario 的最基本的想法就是爲了減小人員的安排,下降成本和時間投入。可是有了這個類庫,操做人員就能夠抽出精力作別的事情了。因此 Mario 類庫可以很輕易的解決你的問題,你只須要你本身的消息功能。
引擎類型:
memory,這種類型就是將數據緩衝存儲器留在內存裏。
file,這種類型就是可以在本地日誌路徑裏建立作出一個 write2file。
更多查看:https://github.com/Qihoo360/Mario
其餘系列請去360github庫觀看
----------------------------------------------------------------------------------------------------------------
百度 Baidu https://github.com/fex-team/
1.UEditor 編輯器
UEditor是由百度web前端研發部開發所見即所得富文本web編輯器,具備輕量,可定製,注重用戶體驗等特色。
主要特色:
輕量級:代碼精簡,加載迅速。
定製化:
全新的分層理念,知足多元化的需求。
採用三層架構:
1. 核心層: 爲命令層提供底層API,如range/selection/domUtils類。
2. 命令插件層: 基於核心層開發command命令,命令之間相互獨立。
3. 界面層: 爲命令層提供用戶使用界面。
知足不一樣層次用戶的需求。https://github.com/fex-team/ueditor
https://github.com/fex-team/umeditor
2.ECharts 圖表庫
ECharts開源來自百度商業前端數據可視化團隊,基於html5 Canvas,是一個純Javascript圖表庫,提供直觀,生動,可交互,可個性化定製的數據可視化圖表。創新的拖拽重計算、數據視圖、值域漫遊等特性大大加強了用戶體驗,賦予了用戶對數據進行挖掘、整合的能力。提供商業產品經常使用圖表,底層基於ZRender(一個全新的輕量級canvas類庫),建立了座標系,圖例,提示,工具箱等基礎組件,並在此上構建出折線圖(區域圖)、柱狀圖(條狀圖)、散點圖(氣泡圖)、餅圖(環形圖)、K線圖、地圖、力導向佈局圖以及和絃圖,同時支持任意維度的堆積和多圖表混合展示。
更多:https://github.com/ecomfe/echarts
ECharts-X是 ECharts 團隊推出的全新 3D 可視化庫,它是基於 ECharts 的擴展,底層深度整合了 WebGL 庫QTEK和 Canvas2D 庫ZRender。
擴展:https://github.com/ecomfe/echarts-x
3.WebUploader 上傳控件
WebUploader 是由Baidu WebFE(FEX)團隊開發的一個簡單的以HTML5爲主,FLASH爲輔的現代文件上傳組件。在現代的瀏覽器裏面能充分發揮HTML5的優點,同時又不摒棄主流IE瀏覽器,延用原來的FLASH運行時,兼容IE6+,Andorid 4+,IOS 6+。兩套運行時,一樣的調用方式,可供用戶任意選用。採用大文件分片併發上傳,極大的提升了文件上傳效率。
https://github.com/fex-team/webuploader
4.百度腦圖 KityMinder
KityMinder 是百度FEX團隊的f-cube小組(原UEditor小組)的又一力做。做爲一款在線的腦圖編輯工具,它有着不少Native編輯工具的交互體驗。KM與UE有着同樣的宗旨,就是注重最終用戶的使用體驗。同時,它充分發揮了Web雲存儲的優點,能夠直接將編輯中的腦圖同步到雲端。此外,藉由首創的 「雲盤分享」功能,用戶能夠一鍵將當前編輯的腦圖直接生成在線連接共享給其餘用戶,實現無縫溝通。
KM是基於SVG技術實現,使用JavaScript+html實現。支持絕大多數的主流瀏覽器。
支持列表以下
1. chrome
2. firefox
3. safari
4. ie9-11https://github.com/fex-team/kityminder
5.人工智能系統 WARP-CTC
WARP-CTC 基於 CTC 方法,當前可用的一些 CTC 實現一般要求大量的內存或者是慢十到幾百倍。
百度研究所首席科學家 Andrew Ng 稱他的研究主要是人工神經網絡如何在圖形處理單元 (GPUs) 上運行,讓 WARP-CTC 實現對 GPUs 和 x86 CPUs 的支持。
connectionist temporal classification (CTC) 方法能夠追溯到 2006 年,在 Swiss AI 研究所 IDSIA 論文上有記錄。 百度研究所開發的 WARP-CTC 就基於 CTC 方案,可是改進了其自身的語音識別功能
https://github.com/baidu-research/warp-ctc
其餘系列請去baidu github庫觀看
----------------------------------------------------------------------------------------------------------------
騰訊 QQ http://alloyteam.github.io/
https://github.com/AlloyTeam/Mars
https://github.com/tencent-wechat
1.WeUI 爲微信Web服務量身設計
WeUI 是一套同微信原生視覺體驗一致的基礎樣式庫,由微信官方設計團隊爲微信 Web 開發量身設計,能夠令用戶的使用感知更加統一。包含
button
、cell
、dialog
、progress
、toast
、article
、actionsheet
、icon
等各式元素。
2.手機前端開發調試利器 vConsole
咱們在開發手機版網頁的時候,經常會出現下面的情景:
(1) 開發時,在本身電腦上運行得好好的,在手機上打開就掛了,可是手機上又看不到error log;
(2) 上線後,某用戶表示頁面失靈,但咱們本身又重現不出來,看不到用戶側的出錯信息。
若是說(1)還能夠經過電腦鏈接手機以查看log來解決,那(2)在沒有完善的前端上報體系時就很是被動了。
做爲開發者,咱們的訴求很簡單:有沒有快捷的方法在手機前端頁面看到log日誌?vConsole就這樣出現了!
https://github.com/WechatFE/vConsole
3.專業級Web圖像處理引擎 AlloyImage
AlloyImage是一個使用Javascript語言開發的,基於Web的在線圖像處理引擎,除了核心底層圖像處理引擎,還同時集成了一些方便快捷的圖像處理API,您能夠將它簡單快捷的引用到您的Web網頁中,作出與PhotoShop同樣的優美效果。甚至,你能夠用AlloyImage來開發一個Web在線圖像處理軟件。
https://github.com/AlloyTeam/AlloyImage
https://github.com/AlloyTeam/AlloyPhoto
4. GoPng 圖片合併並生成CSS
Css Sprite,有時也稱爲雪碧圖、精靈圖,是每個前端開都會遇到的問題,也是常見的小圖片加載優化手段。
在線版本:https://alloyteam.github.io/gopng/
源碼地址:https://github.com/AlloyTeam/gopng
合成分解:https://github.com/luyongfugx/hcSpriteCuter (一個由多張小圖合併而成的雪碧圖中摳出其中一張或者幾張圖片)
5.可視化Web構建工具 AlloyDesigner
AlloyDesigner 是一款致力於提升前端生產效率的瀏覽器內運行工具,AlloyDesigner + Chrome F12(Especially with WorkSpace) 打造前端新的開發和測試模式
https://github.com/AlloyTeam/AlloyDesigner
6.Koala跨平臺圖形編譯工具
Koala是一款預處理器語言圖形編譯工具,支持Less、Sass、CoffeeScript、Compass framework 的即時編譯。 無需手動輸入命令去編譯,後臺監聽文件是否有改變,若有修改會自動進行編譯。可以大大提高
Web
開發中的工做效率。功能特性
多語言支持 支持Less、Sass、CoffeeScript 和 Compass Framework。
實時編譯 監聽文件,當文件改變時自動執行編譯,這一切都在後臺運行,無需人工操做。
編譯選項 能夠設置各個語言的編譯選項。
項目配置 支持爲項目建立一個全局配置,爲文件設置統一編譯選項。
錯誤提示 在編譯時若是遇到語法的錯誤,koala將在右下角彈出錯誤信息,方便開發者定位代碼錯誤位置。
跨平臺 Windows、Linux、Mac都能完美運行。
系統支持及要求
Koala支持跨平臺運行,完美兼容Windows、Linux與Mac 。
Linux系統下需安裝好ruby運行環境, e.g.$ sudo apt-get install ruby
.https://github.com/oklai/koala
7.輕量級 CSS3 動畫庫 JX.Animate
JX.Animate 是一個開源的輕量級的CSS3動畫庫。動畫可使用標準的CSS3關鍵幀動畫(KeyFrame)製做,也可使用JavaScript製做,並且還能夠支持在JavaScript中動態生成動畫關鍵幀。
https://github.com/AlloyTeam/JXAnimate
8.Fanvas swf轉爲html5 canvas
Fanvas是一個把swf轉爲html5 canvas動畫的系統,由兩部分組成:Actionscript實現的解析器、js運行庫。Flash作動畫是最成熟最高效的方式,但因爲終端基本不支持Flash播放,這給終端的動畫製做帶來了很多麻煩。Fanvas是Flash和Canvas的完美結合,能夠把swf(包括矢量和位圖)完美地轉化爲canvas動畫.
https://github.com/TencentOpen/Fanvas
9.隨身調測平臺 GT
GT(隨身調)是APP的隨身調測平臺,它是直接運行在手機上的「集成調測環境」(IDTE, Integrated Debug Environment)。利用GT,僅憑一部手機,無需鏈接電腦,您便可對APP進行快速的性能測試(CPU、內存、流量、電量、幀率/流暢度等等)、 開發日誌的查看、Crash日誌查看、網絡數據包的抓取、APP內部參數的調試、真機代碼耗時統計等。若是您以爲GT提供的功能還不夠知足您的須要,您還 能夠利用GT提供的基礎API自行開發有特殊功能的GT插件,幫助您解決更加複雜的APP調試問題。
https://github.com/TencentOpen/GT
10.Frozen UI 移動端UI框架
Frozen UI是一個開源的簡單易用,輕量快捷的移動端UI框架。基於手Q樣式規範,選取最經常使用的組件,作成手Q公用離線包減小請求,升級方式友好,文檔完善,目前全面應用在騰訊手Q增值業務中。
https://github.com/frozenui/frozenui
11.LivePool Web 開發調試工具
LivePool 是一個基於 NodeJS,相似 Fiddler 支持抓包和本地替換的 Web 開發調試工具,是 Tencent AlloyTeam 在開發實踐過程總結出的一套的便捷的 WorkFlow 以及調試方案。
特性
基於 NodeJS, 跨平臺
支持 http 抓包和本地替換調試,Https/WebSockets 直接代理轉發(暫不支持本地替換)
便捷的 UI 管理界面,跟 Fiddler 相似,下降學習成本
能夠脫離 UI 後臺運行,適應於某些不須要抓包,只須要使用替換和簡單路由的場景
基於項目的替換規則管理,方便高效,規則支持拖曳排序
支持基於請求路徑的本地文件替換,支持基於請求路徑的路由轉發(host 配置)
替換類型支持:文件/文件夾替換,combo合併替換,qzmin替換(批量combo),delay延時等
支持自動設置系統代理
支持規則過濾,只顯示關注的請求
提供構建 http get/post 請求界面,方便接口調試
特點功能:模擬gprs/3g等低網速(mac only)
特點功能:支持離線站點到本地,並自動代碼格式化
https://github.com/rehorn/livepool
12.KNVProtoEngine 高性能樹型協議處理引擎
KNV是一個模式自由的高性能樹型協議處理引擎,是對Key-Value的一個通用結構化擴展。
應用特性
正如NoSQL對SQL的完全變革同樣,KNV是對Key-Value的完全變革!
你們都很熟悉Key-Value系統,但KV操做極不方便:
-- 你不得不本身作樂觀鎖(讀返回seq->修改->帶seq寫->seq變化則重頭開始);
-- 你不得不拉取一堆數據,而後再提取你想要的部分;
-- 爲了修改一個bit,你不得不把一串數據拉取修改後再一塊兒提交更新
不過如今有KNV,一切都解決了。KNV時代來了,你還在猶豫嗎?應用場景
KNV是專門針對以Protocol Buffers(或相似樹型結構)存儲的存儲系統開發的,有3個應用場景:
存儲系統 處理用戶請求的通用解決方法(Get/Set/Delete),能夠適配任意用戶自定義的數據結構。
代理/通用邏輯層 服務器處理Protocol Buffers協議的通用方法 – 好比通用Proxy,透傳多個協議, 對請求包進行鑑權、限頻、統計等等操做,還支持對包體內容進行審計,使用KNV協議, 這種方法就有可能並且很簡單。
原生態 Protocol Buffers打解包庫 的高性能代替品。
https://github.com/TencentOpen/KNVProtoEngine
13.Behaviac 遊戲AI的開發框架組件
Behaviac是遊戲AI的開發框架組件,也是遊戲原型的快速設計工具。支持行爲樹BT,狀態機FSM,HTN等多種範式,方便的編輯和調試。支持全平臺,適用於客戶端和服務器,助力遊戲快速迭代開發。編輯器能夠運行在PC上,操做方便直觀可靠,支持實時和離線調試;編輯器能夠導出xml,bson等多種格式,更能夠導出C++,C#源碼,提供最高效率。運行時支持全平臺,有C++和C#兩個版本,原生支持Unity。
已被《每天炫鬥》、《QQ飛車》、《全民突擊》、《全民奪寶》、《九龍戰》等遊戲及其餘更多預研項目使用。
https://github.com/TencentOpen/behaviac
14.現代構建系統 Typhoon Blade
Blade主要定位於linux下的大型C++項目,密切配合研發流程,好比單元測試,持續集成,覆蓋率統計等。但像unix下的文本過濾程序一 樣,保持相對的獨立性,能夠單獨運行。目前重點支持i386/x86_64 Linux,將來能夠考慮支持其餘的類Unix系統。
特色:
自動分析頭文件依賴關係,構建受影響的代碼。
增量編譯和連接,只構建因變動受影響而須要構建的。
自動計算庫的間接依賴,庫的做者只須要寫出直接依賴,構建時自動檢查所依賴的庫是否須要從新構建。
在任意代碼樹的任意子目錄下都能構建。
支持一次遞歸構建多個目錄下的全部目標,也支持只構建任意的特定的目標。
不管構建什麼目標,這些目標所依賴的目標也會被自動連坐更新。
內置 debug/release 兩種構建類型。
彩色高亮構建過程當中的錯誤信息。
支持 ccache
支持 distcc
支持基於構建多平臺目標
支持構建時選擇編譯器(不一樣版本的gcc,clang等)
支持編譯 protobuf,lex, yacc, swig
支持自定義規則
支持測試,在命令行跑多個測試
支持並行測試(多個測試進程併發運行)
支持增量測試(無需從新運行的測試程序自動跳過)
集成 gperftools,自動檢測測試程序的內存泄露
構建腳本 vim 語法高亮
svn 式的子命令命令行接口。
支持 bash 命令行補全
用 Python 編寫,無需編譯,直接安裝使用。
完全避免如下問題:
頭文件更新,受影響的模塊沒有從新構建。
被依賴的庫須要更新,而構建時沒有被更新,好比某子目錄依賴遙遠的某外部目錄的代碼,我在這個目錄構建,外部目錄的代碼會被自動檢查是否也須要從新構建。
https://github.com/chen3feng/typhoon-blade
15.RapidJSON C++的JSON開發包
Rapidjson 是一個 C++ 的快速 JSON 解析器和生成器,使用 SAX/DOM 風格的 API 設計。
https://github.com/miloyip/rapidjson
16. 微信開源PhxSQL
PhxSQL是一個兼容MySQL、服務高可用、數據強一致的關係型數據庫集羣。PhxSQL以單Master多Slave方式部署,在集羣內超過一半機器存活的狀況下,可自身實現自動Master切換,且保證數據一致性。
https://github.com/tencent-wechat/phxsql
更多請自行查看:http://alloyteam.github.io/ https://github.com/tencent-wechat
----------------------------------------------------------------------------------------------------------------
新浪:WeiBo https://github.com/weibocom
1.分佈式緩存服務器 memcachedb
memcachedb是 一個由新浪網的開發人員開放出來的開源項目,給memcached分佈式緩存服務器添加了Berkeley DB的持久化存儲機制和異步主輔複製機制,讓memcached具有了事務恢復能力、持久化能力和分佈式複製能力,很是適合於須要超高性能讀寫速度,可是 不須要嚴格事務約束,可以被持久化保存的應用場景,例如memcachedb被應用在新浪博客上面。
https://github.com/stvchu/memcachedb
2.動態流量管理方案 Upsync
Upsync,微博開源基於Nginx容器動態流量管理方案 。Nginx 以其超高的性能與穩定性,在業界得到了普遍的使用,微博的七層就大量使用了 Nginx 。結合 Nginx 的健康檢查模塊,以及動態 reload 機制,能夠近乎無損的服務的升級上線與擴容。這個時候擴容的頻次比較低,大多數狀況下是有計劃的擴容。Upsync,開發了模塊 nginx-upsync-module,它的功能是拉取 consul 的後端 server 的列表,並更新 Nginx 的路由信息。此模塊不依賴於任何第三方模塊。consul 做爲 Nginx 的 db,利用 consul 的 KV 服務,每一個 Nginx work 進程獨立的去拉取各個 upstream 的配置,並更新各自的路由。
https://github.com/weibocom/nginx-upsync-module
3.高性能的內核 Socket 實現 Fastsocket
Fastsocket 是一個高擴展性的 Socket 以及 Linux 內核的底層網絡實現。能夠在多核機器上提供極好的性能,此外使用和維護還很是簡單。目前該項目已經在新浪的生產環境中使用。該項目由清華大學和新浪網聯合組成的 Fastos 團隊開發,該團隊的使命是提高 Linux 內核的效率。Fastsocket 目前已經使用在新浪微博的生產環境上,主要用於提供負載均衡服務的 HAProxy,線上實際性能提高一倍,從2014年3月份穩定運行至今,預計2014年末完成負載均衡所有集羣的 Fastsocket 升級。Fastsocket 徹底兼容 BSD Socket API,現有各種基於 Socket 的網絡應用能夠直接使用 Fastsockt。 目前通過兼容測試的經常使用服務軟件有:HAProxy、Nginx、Lighttpd、Redis 和 Memcached。
https://github.com/fastos/fastsocket
4.輕量級 RPC 框架 Motan
Motan 是一套高性能、易於使用的分佈式遠程服務調用(RPC)框架。
功能
支持經過spring配置方式集成,無需額外編寫代碼便可爲服務提供分佈式調用能力。
支持集成consul、zookeeper等配置服務組件,提供集羣環境的服務發現及治理能力。
支持動態自定義負載均衡、跨機房流量調整等高級服務調度能力。
基於高併發、高負載場景進行優化,保障生產環境下RPC服務高可用。
https://github.com/weibocom/motan
5.TCP 性能剖析工具 Tcpdive
Tcpdive 是 TCP 性能剖析工具,主要特性:
更多 TCP 內部性能信息
定量評估 TCP 性能改進
描述在 TCP 層的 HTTP 處理,依賴於 HTTP Apps
容易部署,使用友好
Tcpdive 已經在新浪的生產環境上部署使用:
提升微博圖片服務質量
提升微博視頻服務質量
在有線和無線網絡中比較 TCP 性能
記錄不一樣應用的 TCP 流量
https://github.com/fastos/tcpdive
6.PHP框架 Yaf
Yaf是一個C語言編寫的PHP框架,Yaf 的特色:
用C語言開發的PHP框架, 相比原生的PHP, 幾乎不會帶來額外的性能開銷.
全部的框架類, 不須要編譯, 在PHP啓動的時候加載, 並常駐內存.
更短的內存週轉週期, 提升內存利用率, 下降內存佔用率.
靈巧的自動加載. 支持全局和局部兩種加載規則, 方便類庫共享.
高性能的視圖引擎.
高度靈活可擴展的框架, 支持自定義視圖引擎, 支持插件, 支持自定義路由等等.
內建多種路由, 能夠兼容目前常見的各類路由協議.
強大而又高度靈活的配置文件支持. 並支持緩存配置文件, 避免複雜的配置結構帶來的性能損失.
在框架自己,對危險的操做習慣作了禁止.
更快的執行速度, 更少的內存佔用.
----------------------------------------------------------------------------------------------------------------
小米:XiaoMi https://github.com/XiaoMi
1.分佈式的發佈和監控系統 Minos
Minos 是小米公司開發的一個分佈式的發佈和監控系統。最初是小米開發的用來在 Hadoop 和 ZooKeeper 集羣上發佈和管理的工具。Minos 可輕鬆擴展來支持其餘的系統,目前已經支持包括 HDFS、YARN 和 Impala 。
https://github.com/XiaoMi/minos
2.互聯網企業級監控系統 OpenFalcon
Open-Falcon 是小米運維部開源的一款互聯網企業級監控系統解決方案.
監控系統是整個運維環節,乃至整個產品生命週期中最重要的一環,事前及時預警發現故障,過後提供翔實的數據用於追查定位問題。監控系統做爲一個成熟的運維產品,業界有不少開源的實現可供選擇。當公司剛剛起步,業務規模較小,運維團隊也剛剛創建的初期,選擇一款開源的監控系統,是一個省時省力,效率最高的方案。以後,隨着業務規模的持續快速增加,監控的對象也愈來愈多,愈來愈複雜,監控系統的使用對象也從最初少數的幾個SRE,擴大爲更多的DEVS,SRE。這時候,監控系統的容量和用戶的「使用效率」成了最爲突出的問題。
監控系統業界有不少傑出的開源監控系統。咱們在早期,一直在用zabbix,不過隨着業務的快速發展,以及互聯網公司特有的一些需求,現有的開源的監控系統在性能、擴展性、和用戶的使用效率方面,已經沒法支撐了。
所以,咱們在過去的一年裏,從互聯網公司的一些需求出發,從各位SRE、SA、DEVS的使用經驗和反饋出發,結合業界的一些大的互聯網公司作監控,用監控的一些思考出發,設計開發了小米的監控系統:Open-Falcon。
Highlights and features
- 數據採集免配置:agent自發現、支持Plugin、主動推送模式
- 容量水平擴展:生產環境每秒50萬次數據收集、告警、存儲、繪圖,可持續水平擴展。
- 告警策略自發現:Web界面、支持策略模板、模板繼承和覆蓋、多種告警方式、支持回調動做。
- 告警設置人性化:支持最大告警次數、告警級別設置、告警恢復通知、告警暫停、不一樣時段不一樣閾值、支持維護週期,支持告警合併。
- 歷史數據高效查詢:秒級返回上百個指標一年的歷史數據。
- Dashboard人性化:多維度的數據展現,用戶自定義Dashboard等功能。
- 架構設計高可用:整個系統無核心單點,易運維,易部署。
https://github.com/XiaoMi/open-falcon
3.物聯網框架 IoT.js
IoT.js 旨在爲物聯網提供一個基於 Web 技術的可相互操做的服務平臺。IoT.js 的目標是要在資源受限的設備上良好運行,例如只有幾 KB 的 RAM。因此它支持普遍的物聯。
----------------------------------------------------------------------------------------------------------------
豆瓣 DouBan https://github.com/douban
1.分佈式計算框架 DPark
DPark 是 Spark 的 Python 克隆,是一個Python實現的分佈式計算框架,能夠很是方便地實現大規模數據處理和迭代計算。 DPark 由豆瓣實現,目前豆瓣內部的絕大多數數據分析都使用DPark 完成,正日趨完善。
https://github.com/douban/dpark
2.iOS/Mac 音頻播放器 DOUAudioStreamer
DOUAudioStreamer 是 iOS 和 Mac 的基於核心音頻的流媒體音頻播放器。
https://github.com/douban/DOUAudioStreamer
3.CODE 豆瓣代碼託管系統
Douban CODE 是豆瓣開發的一個基於 git 版本控制系統的協做平臺。
CODE —— C: Community O: Original D: Developer E: Eldamar
目前 CODE 僅開放了一個框架,支持:
clone & push project
create project
create user
準備環境
MySQL
Memcached
Python >= 2.7
pip >= 1.4.1
virtualenv
git
https://github.com/douban/code
----------------------------------------------------------------------------------------------------------------
網易 NetEase https://github.com/netease
1.分佈式TCP壓力測試工具 tcpcopy
tcpcopy是一種應用請求複製(基於tcp的packets)工具,其應用領域較廣,目前已經應用於國內各大互聯網公司。
整體說來,tcpcopy主要有以下功能:
1)分佈式壓力測試工具,利用在線數據,能夠測試系統可以承受的壓力大小(遠比ab壓力測試工具真實地多),也能夠提早發現一些bug
2)普通上線測試,能夠發現新系統是否穩定,提早發現上線過程當中會出現的諸多問題,讓開發者有信心上線
3)對比試驗,一樣請求,針對不一樣或不一樣版本程序,能夠作性能對比等試驗
4)利用多種手段,構造無限在線壓力,知足中小網站壓力測試要求
5)實戰演習(架構師必備)https://github.com/session-replay-tools/tcpcopy
2.桌面應用軟件的跨平臺解決方案 heX
heX 是網易有道搜索部門開發的一個容許你採用前端技術(HTML,CSS,JavaScript)開發桌面應用軟件的跨平臺解決方案,基於HTML5 + node.js,相似appjs。是你開發桌面應用的一種新的選擇,意在解決傳統桌面應用開發中繁瑣的UI和交互開發工做,使其變的簡單而高效。特別適合重UI,重交互的桌面應用軟件。
https://github.com/netease-youdao/hex
https://github.com/netease-youdao/hex-samples
3.Android性能測試工具 Emmagee
Emmagee是監控指定被測應用在使用過程當中佔用機器的CPU、內存、流量資源的性能測試小工具。
支持SDK:Android2.2以及以上版本
Emmagee功能介紹
一、檢測當前時間被測應用佔用的CPU使用率以及整體CPU使用量
二、檢測當前時間被測應用佔用的內存量,以及佔用的整體內存百分比,剩餘內存量
三、檢測應用從啓動開始到當前時間消耗的流量數
四、測試數據寫入到CSV文件中,同時存儲在手機中
五、能夠選擇開啓浮窗功能,浮窗中實時顯示被測應用佔用性能數據信息
六、在浮窗中能夠快速啓動或者關閉手機的wifi網絡
https://github.com/NetEase/Emmagee
4.基於udp的請求複製工具 udpcopy
udpcopy用來解決udp應用的一個開源軟件,與tcpcopy同屬於xcopy系列,能夠導入udp流量到測試系統中去,這樣就能夠有效地對系統進行各類測試,好比壓力測試,冒煙測試等等。
https://github.com/wangbin579/udpcopy
5.實時編輯刷新的前端服務器 Puer (推薦:browser-sync https://github.com/BrowserSync/browser-sync)
簡而言之,Puer是一個能夠實時編輯刷新的前端服務器。特性一覽:
提供一個當前或指定路徑的靜態服務器
全部瀏覽器的實時刷新:編輯css實時更新(update)頁面樣式,其它文件則重載(reload)頁面
提供簡單熟悉的mock請求的配置功能,而且配置也是自動更新。
可用做代理服務器,調試開發既有服務器的頁面,可與mock功能配合使用
集成了weinre,並提供二維碼地址,方便移動端的調試
能夠做爲connect中間件使用(前提是後端爲nodejs,不然請使用代理模式)
--------------------------阿里巴巴開源的好軟件太多,請自行選擇所需,我列幾個咱們用的-------------------------
阿里巴巴 Alibaba https://github.com/alibaba/ https://github.com/thx
1.分佈式key/value存儲系統 Tair
Tair是由淘寶網自主開發的Key/Value結構數據存儲系統,在淘寶網有着大規模的應用。您在登陸淘寶、查看商品詳情頁面或者在淘江湖和好友「搗漿糊」的時候,都在直接或間接地和Tair交互。Tair是一個Key/Value結構數據的解決方案,它默認支持基於內存和文件的兩種存儲方式,分別和咱們一般所說的緩存和持久化存儲對應。
Tair除了普通Key/Value系統提供的功能,好比get、put、delete以及批量接口外,還有一些附加的實用功能,使得其有更廣的適用場景,包括:
Version支持
原子計數器
Item支持
https://github.com/alibaba/tair
2.TFS 分佈式文件系統
TFS(Taobao FileSystem)是一個高可擴展、高可用、高性能、面向互聯網服務的分佈式文件系統,其設計目標是支持海量的非結構化數據。
目前,國內自主研發的文件系統可謂百裏挑一。淘寶在這一領域作了有效的探索和實踐,Taobao File System(TFS)做爲淘寶內部使用的分佈式文件系統,針對海量小文件的隨機讀寫訪問性能作了特殊優化,承載着淘寶主站全部圖片、商品描述等數據存儲。
https://github.com/alibaba/tfs
3.消息中間件 RocketMQ
https://github.com/alibaba/RocketMQ
https://github.com/alibaba/RocketMQ-docs
4.分佈式計算系統 JStorm
Jstorm是參考storm的實時流式計算框架,在網絡IO、線程模型、資源調度、可用性及穩定性上作了持續改進,已被愈來愈多企業使用
https://github.com/alibaba/jstorm
5.淘寶Web服務器 Tengine
Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了不少高級功能和特性。Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等獲得了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。
如下沿引項目主頁上的特性介紹:
繼承Nginx-1.2.8的全部特性,100%兼容Nginx的配置;
動態模塊加載(DSO)支持。加入一個模塊再也不須要從新編譯整個Tengine;
更多負載均衡算法支持。如會話保持,一致性hash等;
輸入過濾器機制支持。經過使用這種機制Web應用防火牆的編寫更爲方便;
動態腳本語言Lua支持。擴展功能很是高效簡單;
支持管道(pipe)和syslog(本地和遠端)形式的日誌以及日誌抽樣;
組合多個CSS、JavaScript文件的訪問請求變成一個請求;
能夠對後端的服務器進行主動健康檢查,根據服務器狀態自動上線下線;
自動根據CPU數目設置進程個數和綁定CPU親緣性;
監控系統的負載和資源佔用從而對系統進行保護;
顯示對運維人員更友好的出錯信息,便於定位出錯機器;
更強大的防攻擊(訪問速度限制)模塊;
更方便的命令行參數,如列出編譯的模塊列表、支持的指令等;
能夠根據訪問文件類型設置過時時間;
https://github.com/alibaba/tengine
6.SeaJS 模塊加載框架
Sea.JS 是一個遵循 CommonJS 規範的模塊加載框架,可用來輕鬆愉悅地加載任意 JavaScript 模塊。SeaJS 支持的標準模塊遵循 Modules/Wrappings 規範的 define 形式,可運行於 Web 瀏覽器以及 node.JS 等環境中。
https://github.com/seajs/seajs
7.阿里巴巴分佈式數據庫同步系統 otter
otter 基於數據庫增量日誌解析,準實時同步到本機房或異地機房的mysql/oracle數據庫. 一個分佈式數據庫同步系統。
https://github.com/alibaba/otter
8.Taobao Open API 客戶端 TOP (有Net版)
TOP 是 Taobao Open API 客戶端。
APIs
User
taobao.user.buyer.get 查詢買家信息API
taobao.user.get 獲取單個用戶信息
taobao.user.seller.get 查詢賣家用戶信息
taobao.users.get 獲取多個用戶信息
Category (Working)
taobao.itemcats.authorize.get 查詢商家被受權品牌列表和類目列表
taobao.itemcats.get 獲取後臺供賣家發佈商品的標準商品類目
taobao.itemcats.increment.get 增量獲取後臺類目數據
taobao.itemprops.get 獲取標準商品類目屬性
taobao.itempropvalues.get 獲取標準類目屬性值
taobao.topats.itemcats.get 全量獲取後臺類目數據
Shop
taobao.shop.get (白名單用戶才能調用)
9.模擬數據生成器 Mock.js
Mock.js 是一款模擬數據生成器,旨在幫助前端攻城師獨立於後端進行開發,幫助編寫單元測試。提供瞭如下模擬功能:
根據數據模板生成模擬數據
模擬 Ajax 請求,生成並返回模擬數據
基於 HTML 模板生成模擬數據
https://github.com/nuysoft/Mock
10.服務框架 Dubbo
Dubbo 是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可經過高性能的 RPC 實現服務的輸出和輸入功能,能夠和 Spring框架無縫集成。
主要核心部件:
Remoting: 網絡通訊框架,實現了 sync-over-async 和 request-response 消息機制.
RPC: 一個遠程過程調用的抽象,支持負載均衡、容災和集羣功能
Registry: 服務目錄框架用於服務的註冊和服務事件發佈和訂閱
https://github.com/alibaba/dubbo
11.接口文檔管理工具 RAP
RAP經過GUI工具幫助WEB工程師更高效的管理接口文檔,同時經過分析接口結構自動生成Mock數據、校驗真實接口的正確性,使接口文檔成爲開發流程中的強依賴。有告終構化的API數據,RAP能夠作的更多,而咱們能夠避免更多重複勞動。
Nginx7天入門:https://github.com/taobao/nginx-book
----------------------------------------------------------------------------------------------------------------
其餘項目:
1.去哪兒:
MySQL自動化運維工具 Inception
MySQL語句的審覈,在業界都已經基本被認同了,實際上也是對MySQL語句寫法的統一化,標準化,而以前的人工審覈,針對標準這個問題實際上是很 吃力的,標準越多,DBA越累,開發也越累。 那麼在這個都追求自動化運維的時代,審覈也必需要跟上步伐,所以Inception誕生了。而Inception能夠作的工做遠不止是一個自動化審覈工 具,同時還具有執行,生成對影響數據的回滾語句(相似閃回的功能),這樣一條龍服務的工具,將會給DBA的工做帶來翻天覆地的變化,DBA今後就從繁重的 審覈、登上去執行,出錯了很難回滾(若是提早沒有備份的話)的被動局面解放了出來,忽然發現,作DBA原來能夠這麼輕鬆,工做能夠不飽和了,那就有更多的 自由時間學習、進一步向自動化運維平臺的實現等更智能化的方向去發展,是具備里程碑意義的。
https://github.com/mysql-inception/inception
實時應用監控平臺 CAT
CAT 由大衆點評開發的,基於 Java 的實時應用監控平臺,包括實時應用監控,業務監控。
CAT 支持的監控消息類型包括:
Transaction 適合記錄跨越系統邊界的程序訪問行爲,好比遠程調用,數據庫調用,也適合執行時間較長的業務邏輯監控,Transaction用來記錄一段代碼的執行時間和次數。
Event 用來記錄一件事發生的次數,好比記錄系統異常,它和transaction相比缺乏了時間的統計,開銷比transaction要小。
Heartbeat 表示程序內按期產生的統計信息, 如CPU%, MEM%, 鏈接池狀態, 系統負載等。
Metric 用於記錄業務指標、指標可能包含對一個指標記錄次數、記錄平均值、記錄總和,業務指標最低統計粒度爲1分鐘。
Trace 用於記錄基本的trace信息,相似於log4j的info信息,這些信息僅用於查看一些相關信息
消息樹
CAT監控系統將每次URL、Service的請求內部執行狀況都封裝爲一個完整的消息樹、消息樹可能包括Transaction、Event、Heartbeat、Metric和Trace信息。
https://github.com/dianping/cat
3.搜狐:
Redis雲管理平臺 CacheCloud
CacheCloud提供一個Redis雲管理平臺:實現多種類型(Redis Standalone、Redis Sentinel、Redis Cluster)自動部署、解決Redis實例碎片化現象、提供完善統計、監控、運維功能、減小開發人員的運維成本和誤操做,提升機器的利用率,提供靈活的伸縮性,提供方便的接入客戶端。
https://github.com/sohutv/cachecloud
基於 MySQL 的數據庫中間件 SOHU-DBProxy
SOHU-DBProxy 是由 搜狐 數據庫團隊開發維護的一個基於MySQL協議的數據中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.3版本的基礎上, 修改了大量bug,添加了不少功能特性。如今已經在sohu的多個業務線上使用
DBProxy 主要功能:
1 即便在同一個鏈接(只要不在同一個事務中)也能鏈接複用
2 負載均衡提升讀性能,支持動態擴展
3 動態添加的SQL審覈和過濾。可以統計的SQL長時間運行影響性能,而且阻止其運行
4 用戶鏈接限制
5 自動摘除宕機的DB
6 讀寫分離(當前版本沒有,代碼和測試已經完成,沒有合併到當前版本)
大衆點評:https://github.com/dianping