----------------------------------------------------------------------------------------------------------------
奇虎360https://github.com/Qihoo360
1.MySQL中間層 Atlas
Atlas是由 Qihoo 360,? Web平臺(tái)部基礎(chǔ)架構(gòu)團(tuán)隊(duì)開(kāi)發(fā)維護(hù)的一個(gè)基于MySQL協(xié)議的數(shù)據(jù)中間層項(xiàng)目摄杂。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎(chǔ)上,修改了大量bug循榆,添加了很多功能特性匙姜。目前該項(xiàng)目在360公司內(nèi)部得到了廣泛應(yīng)用,很多MySQL業(yè)務(wù)已經(jīng)接入了Atlas平臺(tái)冯痢,每天承載的讀寫請(qǐng)求數(shù)達(dá)幾十億條氮昧。
主要功能:
* 讀寫分離
* 從庫(kù)負(fù)載均衡
* IP過(guò)濾
* SQL語(yǔ)句黑白名單
* 自動(dòng)分表
更多內(nèi)容:https://github.com/Qihoo360/Atlas
2.360黑科技=》DroidPlugin
?DroidPlugin 是360手機(jī)助手在 Android 系統(tǒng)上實(shí)現(xiàn)了一種新的插件機(jī)制:它可以在無(wú)需安裝、修改的情況下運(yùn)行APK文件,此機(jī)制對(duì)改進(jìn)大型APP的架構(gòu)浦楣,實(shí)現(xiàn)多團(tuán)隊(duì)協(xié)作開(kāi)發(fā)具有一定的好處袖肥。
特點(diǎn):
支持Androd 2.3以上系統(tǒng)
插件APK完全不需做任何修改,可以獨(dú)立安裝運(yùn)行振劳、也可以做插件運(yùn)行椎组。要以插件模式運(yùn)行某個(gè)APK,你無(wú)需重新編譯历恐、無(wú)需知道其源碼寸癌。
插件的四大組件完全不需要在Host程序中注冊(cè),支持Service弱贼、Activity蒸苇、BroadcastReceiver、ContentProvider四大組件
插件之間吮旅、Host程序與插件之間會(huì)互相認(rèn)為對(duì)方已經(jīng)"安裝"在系統(tǒng)上了溪烤。
API低侵入性:極少的API。HOST程序只是需要一行代碼即可集成Droid Plugin
超強(qiáng)隔離:插件之間庇勃、插件與Host之間完全的代碼級(jí)別的隔離:不能互相調(diào)用對(duì)方的代碼檬嘀。通訊只能使用Android系統(tǒng)級(jí)別的通訊方法。
支持所有系統(tǒng)API
資源完全隔離:插件之間责嚷、與Host之間實(shí)現(xiàn)了資源完全隔離鸳兽,不會(huì)出現(xiàn)資源竄用的情況。
實(shí)現(xiàn)了進(jìn)程管理罕拂,插件的空進(jìn)程會(huì)被及時(shí)回收揍异,占用內(nèi)存低。
插件的靜態(tài)廣播會(huì)被當(dāng)作動(dòng)態(tài)處理聂受,如果插件沒(méi)有運(yùn)行(即沒(méi)有插件進(jìn)程運(yùn)行)蒿秦,其靜態(tài)廣播也永遠(yuǎn)不回被觸發(fā)烤镐。
更多查看:https://github.com/Qihoo360/DroidPlugin/
3.高性能分布式存儲(chǔ)服務(wù) HustStore
huststore 是一個(gè)高性能的分布式存儲(chǔ)服務(wù)蛋济,不但提供了10w QPS級(jí)別的 kv 存儲(chǔ)的功能,還提供了 hash炮叶、set 等一系列數(shù)據(jù)結(jié)構(gòu)的支持,并且支持二進(jìn)制的 kv 存儲(chǔ),可以完全取代 Redis 的功能智厌。此外喧笔,huststore 還結(jié)合特有的 HA 模塊實(shí)現(xiàn)了分布式消息隊(duì)列的功能,包括消息的流式推送铜邮,以及消息的 發(fā)布-訂閱 等功能,可以完全取代 RabbitMQ 的功能。
特性
huststore 分為 hustdb 以及 HA 模塊兩大部分醇份。hustdb (存儲(chǔ)引擎)的底層設(shè)計(jì)采用了自主開(kāi)發(fā)的 fastdb,通過(guò)一套獨(dú)特的 md5 db 將QPS 提升至 10w 級(jí)別的水準(zhǔn)(含網(wǎng)絡(luò)層的開(kāi)銷)吼具。HA 以 nginx 模塊的方式開(kāi)發(fā)僚纷。nginx 是工業(yè)級(jí)的 http server 標(biāo)準(zhǔn),得益于此拗盒,huststore 具備以下特性:
高吞吐量
hustdb 的網(wǎng)絡(luò)層采用了開(kāi)源的?libevhtp?來(lái)實(shí)現(xiàn)怖竭,結(jié)合自主研發(fā)的高性能 fastdb 存儲(chǔ)引擎,性能測(cè)試 QPS 在10w以上陡蝇。
高并發(fā)
參考 nginx 的并發(fā)能力痊臭。
高可用性
huststore 整體架構(gòu)支持 Replication (master-master),支持 load balance 登夫。
HA 的可用性由nginx 的 master-worker 架構(gòu)所保證广匙。當(dāng)某一個(gè) worker 意外掛掉時(shí), master 會(huì)自動(dòng)再啟動(dòng)一個(gè) worker 進(jìn)程恼策,而且多個(gè) worker 之間是相互獨(dú)立的艇潭,從而保證了 HA 的高可用性。
huststore 的高可用性由其整體架構(gòu)特點(diǎn)保證戏蔑。由于 hustdb 的存儲(chǔ)節(jié)點(diǎn)采用了 master-master 的結(jié)構(gòu)蹋凝,當(dāng)某一個(gè)存儲(chǔ)節(jié)點(diǎn)掛掉時(shí),HA 會(huì)自動(dòng)將請(qǐng)求打到另外一臺(tái) master总棵,同時(shí) HA 會(huì)按照自動(dòng)進(jìn)行負(fù)載均衡鳍寂,將數(shù)據(jù)分布存儲(chǔ)在多個(gè) hustdb節(jié)點(diǎn)上,因此存儲(chǔ)引擎不存在單點(diǎn)限制情龄。
同時(shí) HA 集群本身也是分布式的設(shè)計(jì)迄汛,而且每個(gè) HA 節(jié)點(diǎn)都是獨(dú)立的,當(dāng)某一臺(tái) HA 掛掉時(shí)骤视, LVS 會(huì)自動(dòng)將請(qǐng)求打到其他可用的 HA 節(jié)點(diǎn)鞍爱,從而解決了 HA 得單點(diǎn)限制。
通用性的接口
huststore 使用 http 作為通用協(xié)議专酗,因此客戶端的實(shí)現(xiàn)不限制于語(yǔ)言睹逃。
支持二進(jìn)制的 key-value
更多查看:https://github.com/Qihoo360/huststore
4.分布式配置管理工具 QConf
QConf 是奇虎 360 內(nèi)部分布式配置管理工具。用來(lái)替代傳統(tǒng)的配置文件,使得配置信息和程序代碼分離沉填,同時(shí)配置變化能夠?qū)崟r(shí)同步到客戶端疗隶,而且保證用戶高效讀取配置,這使的工程師從瑣碎的配置修改翼闹、代碼提交斑鼻、配置上線流程中解放出來(lái),極大地簡(jiǎn)化了配置管理工作猎荠。
特點(diǎn)
一處修改坚弱,所有機(jī)器實(shí)時(shí)同步更新
高效讀取配置
安裝部署方便,使用簡(jiǎn)單
服務(wù)器宕機(jī)关摇、網(wǎng)絡(luò)中斷史汗、集群遷移等異常情況對(duì)用戶透明
支持c/c++、shell拒垃、php停撞、python、lua 等語(yǔ)言
更多查看:https://github.com/Qihoo360/QConf
5.開(kāi)源類Redis存儲(chǔ)系統(tǒng)?Pika
Pika 是 360 DBA 和基礎(chǔ)架構(gòu)組聯(lián)合開(kāi)發(fā)的類 Redis 存儲(chǔ)系統(tǒng)悼瓮,完全支持 Redis 協(xié)議戈毒,用戶不需要修改任何代碼,就可以將服務(wù)遷移至 Pika横堡。有維護(hù) Redis 經(jīng)驗(yàn)的 DBA 維護(hù) Pika 不需要學(xué)習(xí)成本埋市。
Pika 主要解決的是用戶使用 Redis 的內(nèi)存大小超過(guò) 50G、80G 等等這樣的情況命贴,會(huì)遇到啟動(dòng)恢復(fù)時(shí)間長(zhǎng)道宅,一主多從代價(jià)大,硬件成本貴胸蛛,緩沖區(qū)容易寫滿等問(wèn)題污茵。Pika 就是針對(duì)這些場(chǎng)景的一個(gè)解決方案。
特點(diǎn)
容量大葬项,支持百G數(shù)據(jù)量的存儲(chǔ)
兼容redis泞当,不用修改代碼即可平滑從redis遷移到pika
支持主從(slaveof)
完善的運(yùn)維命令
更多內(nèi)容:https://github.com/Qihoo360/pika
6.對(duì)象緩存服務(wù)器 kmemcache
分布式linux內(nèi)核內(nèi)存對(duì)象緩存服務(wù)器,實(shí)現(xiàn)基于memcached?v1.4.15民珍,基本兼容memcached的所有操作襟士。經(jīng)初步測(cè)試,內(nèi)存數(shù)據(jù)操作比memcached快1倍嚷量,網(wǎng)絡(luò)并發(fā)量比memcached的也大許多陋桂,目前處于alpha版本。
優(yōu)點(diǎn):由于在內(nèi)核的socket層實(shí)現(xiàn)蝶溶,所有處理網(wǎng)絡(luò)事件性能比epoll機(jī)制快嗜历,另外無(wú)需內(nèi)存由用戶空間到內(nèi)核空間的拷貝。
缺點(diǎn):不建議在32bits下使用。
更多內(nèi)容:https://github.com/Qihoo360/kmemcache
7.ngx_http_subrange_module
當(dāng)Nginx作為文件下載服務(wù)的反向代理,用戶請(qǐng)求一個(gè)非常大的文件的時(shí)候,它會(huì)一直占滿反向代理服務(wù)器與后端主機(jī)之間的帶寬秸脱。因?yàn)閚ginx一次獲取整個(gè)文件,緩沖獲取到的文件,導(dǎo)致客戶端不能馬上讀取到落包。帶寬使用和iowait會(huì)很高部蛇。
ngx_http_subrange_module就是為了解決這個(gè)問(wèn)題摊唇,它能分割HTTP requests。將大數(shù)據(jù)量的HTTP請(qǐng)求切分為多個(gè)子請(qǐng)求涯鲁,當(dāng)下載一個(gè)1 G的文件,subrange將從后端主機(jī)中下載文件塊巷查,比如先獲取5 M,然后再獲取5 M,直到客戶端下載完整個(gè)文件抹腿。
更多查看:https://github.com/Qihoo360/ngx_http_subrange_module
8.同步到異步的類庫(kù) Mario
Mario是一個(gè)讓編寫從同步到異步的類庫(kù)岛请,它的線程安全較大,易于使用警绩。Mario 的最基本的想法就是為了減少人員的安排崇败,降低成本和時(shí)間投入。但是有了這個(gè)類庫(kù)肩祥,操作人員就可以抽出精力做別的事情了后室。所以 Mario 類庫(kù)能夠很輕易的解決你的問(wèn)題,你只需要你自己的消息功能混狠。
引擎類型:
memory岸霹,這種類型就是將數(shù)據(jù)緩沖存儲(chǔ)器留在內(nèi)存里。
file将饺,這種類型就是能夠在本地日志路徑里創(chuàng)建做出一個(gè)?write2file贡避。
更多查看:https://github.com/Qihoo360/Mario
其他系列請(qǐng)去360github庫(kù)觀看
----------------------------------------------------------------------------------------------------------------
百度 Baiduhttps://github.com/fex-team/
1.UEditor 編輯器
UEditor是由百度web前端研發(fā)部開(kāi)發(fā)所見(jiàn)即所得富文本web編輯器,具有輕量予弧,可定制刮吧,注重用戶體驗(yàn)等特點(diǎn)。
主要特點(diǎn):
輕量級(jí):代碼精簡(jiǎn)掖蛤,加載迅速皇筛。
定制化:
全新的分層理念,滿足多元化的需求坠七。
采用三層架構(gòu):
1. 核心層: 為命令層提供底層API水醋,如range/selection/domUtils類。
2. 命令插件層: 基于核心層開(kāi)發(fā)command命令彪置,命令之間相互獨(dú)立拄踪。
3. 界面層: 為命令層提供用戶使用界面。
滿足不同層次用戶的需求拳魁。
https://github.com/fex-team/ueditor
https://github.com/fex-team/umeditor
2.ECharts 圖表庫(kù)
ECharts開(kāi)源來(lái)自百度商業(yè)前端數(shù)據(jù)可視化團(tuán)隊(duì)惶桐,基于html5 Canvas,是一個(gè)純Javascript圖表庫(kù),提供直觀姚糊,生動(dòng)贿衍,可交互,可個(gè)性化定制的數(shù)據(jù)可視化圖表救恨。創(chuàng)新的拖拽重計(jì)算贸辈、數(shù)據(jù)視圖、值域漫游等特性大大增強(qiáng)了用戶體驗(yàn)肠槽,賦予了用戶對(duì)數(shù)據(jù)進(jìn)行挖掘擎淤、整合的能力。提供商業(yè)產(chǎn)品常用圖表秸仙,底層基于ZRender(一個(gè)全新的輕量級(jí)canvas類庫(kù))嘴拢,創(chuàng)建了坐標(biāo)系,圖例寂纪,提示席吴,工具箱等基礎(chǔ)組件,并在此上構(gòu)建出折線圖(區(qū)域圖)捞蛋、柱狀圖(條狀圖)孝冒、散點(diǎn)圖(氣泡圖)、餅圖(環(huán)形圖)襟交、K線圖迈倍、地圖、力導(dǎo)向布局圖以及和弦圖捣域,同時(shí)支持任意維度的堆積和多圖表混合展現(xiàn)啼染。
更多:https://github.com/ecomfe/echarts
ECharts-X是?ECharts?團(tuán)隊(duì)推出的全新 3D 可視化庫(kù),它是基于 ECharts 的擴(kuò)展焕梅,底層深度整合了 WebGL 庫(kù)QTEK和 Canvas2D 庫(kù)ZRender迹鹅。
擴(kuò)展:https://github.com/ecomfe/echarts-x
3.WebUploader 上傳控件
WebUploader 是由Baidu WebFE(FEX)團(tuán)隊(duì)開(kāi)發(fā)的一個(gè)簡(jiǎn)單的以HTML5為主,F(xiàn)LASH為輔的現(xiàn)代文件上傳組件贞言。在現(xiàn)代的瀏覽器里面能充分發(fā)揮HTML5的優(yōu)勢(shì)斜棚,同時(shí)又不摒棄主流IE瀏覽器,延用原來(lái)的FLASH運(yùn)行時(shí)该窗,兼容IE6+弟蚀,Andorid 4+,IOS 6+酗失。兩套運(yùn)行時(shí)义钉,同樣的調(diào)用方式,可供用戶任意選用规肴。采用大文件分片并發(fā)上傳捶闸,極大的提高了文件上傳效率夜畴。
https://github.com/fex-team/webuploader
4.百度腦圖?KityMinder
KityMinder 是百度FEX團(tuán)隊(duì)的f-cube小組(原UEditor小組)的又一力作。作為一款在線的腦圖編輯工具删壮,它有著很多Native編輯工具的交互體驗(yàn)贪绘。KM與UE有著一樣的宗旨,就是注重最終用戶的使用體驗(yàn)央碟。同時(shí)税灌,它充分發(fā)揮了Web云存儲(chǔ)的優(yōu)勢(shì),可以直接將編輯中的腦圖同步到云端硬耍。此外垄琐,借由獨(dú)創(chuàng)的 “云盤分享”功能边酒,用戶可以一鍵將當(dāng)前編輯的腦圖直接生成在線鏈接共享給其他用戶经柴,實(shí)現(xiàn)無(wú)縫溝通。
KM是基于SVG技術(shù)實(shí)現(xiàn)墩朦,使用JavaScript+html實(shí)現(xiàn)坯认。支持絕大多數(shù)的主流瀏覽器。
支持列表如下
1. chrome
2. firefox
3. safari
4. ie9-11
https://github.com/fex-team/kityminder
5.人工智能系統(tǒng) WARP-CTC
WARP-CTC 基于 CTC 方法氓涣,當(dāng)前可用的一些 CTC 實(shí)現(xiàn)通常要求大量的內(nèi)存或者是慢十到幾百倍牛哺。
百度研究所首席科學(xué)家 Andrew Ng 稱他的研究主要是人工神經(jīng)網(wǎng)絡(luò)如何在圖形處理單元 (GPUs) 上運(yùn)行,讓 WARP-CTC 實(shí)現(xiàn)對(duì) GPUs 和 x86 CPUs 的支持劳吠。
connectionist temporal classification (CTC) 方法可以追溯到 2006 年引润,在 Swiss AI 研究所 IDSIA 論文上有記錄。 百度研究所開(kāi)發(fā)的 WARP-CTC 就基于 CTC 方案痒玩,但是改進(jìn)了其自身的語(yǔ)音識(shí)別功能
https://github.com/baidu-research/warp-ctc
其他系列請(qǐng)去baidu github庫(kù)觀看
----------------------------------------------------------------------------------------------------------------
騰訊QQhttp://alloyteam.github.io/
https://github.com/AlloyTeam/Mars
https://github.com/tencent-wechat
1.WeUI?為微信Web服務(wù)量身設(shè)計(jì)
WeUI 是一套同微信原生視覺(jué)體驗(yàn)一致的基礎(chǔ)樣式庫(kù)淳附,由微信官方設(shè)計(jì)團(tuán)隊(duì)為微信 Web 開(kāi)發(fā)量身設(shè)計(jì),可以令用戶的使用感知更加統(tǒng)一蠢古。包含button奴曙、cell、dialog草讶、progress洽糟、toast、article堕战、actionsheet坤溃、icon等各式元素。
2.手機(jī)前端開(kāi)發(fā)調(diào)試?yán)?vConsole
我們?cè)陂_(kāi)發(fā)手機(jī)版網(wǎng)頁(yè)的時(shí)候嘱丢,常常會(huì)出現(xiàn)下面的情景:
(1) 開(kāi)發(fā)時(shí)薪介,在自己電腦上運(yùn)行得好好的,在手機(jī)上打開(kāi)就掛了屿讽,但是手機(jī)上又看不到error log昭灵;
(2) 上線后吠裆,某用戶表示頁(yè)面失靈,但我們自己又重現(xiàn)不出來(lái)烂完,看不到用戶側(cè)的出錯(cuò)信息试疙。
如果說(shuō)(1)還可以通過(guò)電腦連接手機(jī)以查看log來(lái)解決,那(2)在沒(méi)有完善的前端上報(bào)體系時(shí)就非常被動(dòng)了抠蚣。
作為開(kāi)發(fā)者祝旷,我們的訴求很簡(jiǎn)單:有沒(méi)有快捷的方法在手機(jī)前端頁(yè)面看到log日志?vConsole就這樣出現(xiàn)了嘶窄!
https://github.com/WechatFE/vConsole
3.專業(yè)級(jí)Web圖像處理引擎 AlloyImage
AlloyImage是一個(gè)使用Javascript語(yǔ)言開(kāi)發(fā)的怀跛,基于Web的在線圖像處理引擎,除了核心底層圖像處理引擎柄冲,還同時(shí)集成了一些方便快捷的圖像處理API吻谋,您可以將它簡(jiǎn)單快捷的引用到您的Web網(wǎng)頁(yè)中,做出與PhotoShop一樣的優(yōu)美效果现横。甚至漓拾,你可以用AlloyImage來(lái)開(kāi)發(fā)一個(gè)Web在線圖像處理軟件。
https://github.com/AlloyTeam/AlloyImage
https://github.com/AlloyTeam/AlloyPhoto
4.?GoPng?圖片合并并生成CSS
Css Sprite戒祠,有時(shí)也稱為雪碧圖骇两、精靈圖,是每一個(gè)前端開(kāi)都會(huì)遇到的問(wèn)題姜盈,也是常見(jiàn)的小圖片加載優(yōu)化手段低千。
在線版本:https://alloyteam.github.io/gopng/
源碼地址:https://github.com/AlloyTeam/gopng
合成分解:https://github.com/luyongfugx/hcSpriteCuter(一個(gè)由多張小圖合并而成的雪碧圖中摳出其中一張或者幾張圖片)
5.可視化Web構(gòu)建工具 AlloyDesigner
AlloyDesigner 是一款致力于提高前端生產(chǎn)效率的瀏覽器內(nèi)運(yùn)行工具,AlloyDesigner + Chrome F12(Especially with WorkSpace) ?打造前端新的開(kāi)發(fā)和測(cè)試模式
https://github.com/AlloyTeam/AlloyDesigner
6.Koala跨平臺(tái)圖形編譯工具
Koala是一款預(yù)處理器語(yǔ)言圖形編譯工具馏颂,支持Less示血、Sass、CoffeeScript饱亮、Compass framework?的即時(shí)編譯矾芙。 無(wú)需手動(dòng)輸入命令去編譯,后臺(tái)監(jiān)聽(tīng)文件是否有改變近上,如有修改會(huì)自動(dòng)進(jìn)行編譯剔宪。能夠大大提升Web開(kāi)發(fā)中的工作效率。
功能特性
多語(yǔ)言支持支持Less壹无、Sass葱绒、CoffeeScript 和 Compass Framework。
實(shí)時(shí)編譯監(jiān)聽(tīng)文件斗锭,當(dāng)文件改變時(shí)自動(dòng)執(zhí)行編譯地淀,這一切都在后臺(tái)運(yùn)行,無(wú)需人工操作岖是。
編譯選項(xiàng)可以設(shè)置各個(gè)語(yǔ)言的編譯選項(xiàng)帮毁。
項(xiàng)目配置支持為項(xiàng)目創(chuàng)建一個(gè)全局配置实苞,為文件設(shè)置統(tǒng)一編譯選項(xiàng)。
錯(cuò)誤提示在編譯時(shí)如果遇到語(yǔ)法的錯(cuò)誤烈疚,koala將在右下角彈出錯(cuò)誤信息黔牵,方便開(kāi)發(fā)者定位代碼錯(cuò)誤位置。
跨平臺(tái)Windows爷肝、Linux猾浦、Mac都能完美運(yùn)行。
系統(tǒng)支持及要求
Koala支持跨平臺(tái)運(yùn)行灯抛,完美兼容Windows金赦、Linux與Mac 。
Linux系統(tǒng)下需安裝好ruby運(yùn)行環(huán)境, e.g.$ sudo apt-get install ruby.
https://github.com/oklai/koala
7.輕量級(jí) CSS3 動(dòng)畫庫(kù) JX.Animate
JX.Animate 是一個(gè)開(kāi)源的輕量級(jí)的CSS3動(dòng)畫庫(kù)对嚼。動(dòng)畫可以使用標(biāo)準(zhǔn)的CSS3關(guān)鍵幀動(dòng)畫(KeyFrame)制作夹抗,也可以使用JavaScript制作,而且還可以支持在JavaScript中動(dòng)態(tài)生成動(dòng)畫關(guān)鍵幀猪半。
https://github.com/AlloyTeam/JXAnimate
8.Fanvas swf轉(zhuǎn)為html5 canvas
Fanvas是一個(gè)把swf轉(zhuǎn)為html5 canvas動(dòng)畫的系統(tǒng)兔朦,由兩部分組成:Actionscript實(shí)現(xiàn)的解析器偷线、js運(yùn)行庫(kù)磨确。Flash做動(dòng)畫是最成熟最高效的方式,但由于終端基本不支持Flash播放声邦,這給終端的動(dòng)畫制作帶來(lái)了不少麻煩乏奥。Fanvas是Flash和Canvas的完美結(jié)合,可以把swf(包括矢量和位圖)完美地轉(zhuǎn)化為canvas動(dòng)畫.
https://github.com/TencentOpen/Fanvas
9.隨身調(diào)測(cè)平臺(tái) GT
GT(隨身調(diào))是APP的隨身調(diào)測(cè)平臺(tái)亥曹,它是直接運(yùn)行在手機(jī)上的“集成調(diào)測(cè)環(huán)境”(IDTE, Integrated Debug Environment)邓了。利用GT,僅憑一部手機(jī)媳瞪,無(wú)需連接電腦骗炉,您即可對(duì)APP進(jìn)行快速的性能測(cè)試(CPU、內(nèi)存蛇受、流量句葵、電量、幀率/流暢度等等)兢仰、 開(kāi)發(fā)日志的查看乍丈、Crash日志查看、網(wǎng)絡(luò)數(shù)據(jù)包的抓取把将、APP內(nèi)部參數(shù)的調(diào)試轻专、真機(jī)代碼耗時(shí)統(tǒng)計(jì)等。如果您覺(jué)得GT提供的功能還不夠滿足您的需要察蹲,您還 可以利用GT提供的基礎(chǔ)API自行開(kāi)發(fā)有特殊功能的GT插件请垛,幫助您解決更加復(fù)雜的APP調(diào)試問(wèn)題催训。
https://github.com/TencentOpen/GT
10.Frozen UI?移動(dòng)端UI框架
Frozen UI是一個(gè)開(kāi)源的簡(jiǎn)單易用,輕量快捷的移動(dòng)端UI框架宗收⊥纾基于手Q樣式規(guī)范,選取最常用的組件镜雨,做成手Q公用離線包減少請(qǐng)求嫂侍,升級(jí)方式友好,文檔完善荚坞,目前全面應(yīng)用在騰訊手Q增值業(yè)務(wù)中挑宠。
https://github.com/frozenui/frozenui
11.LivePool??Web 開(kāi)發(fā)調(diào)試工具
LivePool 是一個(gè)基于 NodeJS,類似 Fiddler 支持抓包和本地替換的 Web 開(kāi)發(fā)調(diào)試工具颓影,是 Tencent AlloyTeam 在開(kāi)發(fā)實(shí)踐過(guò)程總結(jié)出的一套的便捷的 WorkFlow 以及調(diào)試方案各淀。
特性
基于 NodeJS, 跨平臺(tái)
支持 http 抓包和本地替換調(diào)試,Https/WebSockets 直接代理轉(zhuǎn)發(fā)(暫不支持本地替換)
便捷的 UI 管理界面诡挂,跟 Fiddler 類似碎浇,降低學(xué)習(xí)成本
可以脫離 UI 后臺(tái)運(yùn)行,適應(yīng)于某些不需要抓包璃俗,只需要使用替換和簡(jiǎn)單路由的場(chǎng)景
基于項(xiàng)目的替換規(guī)則管理奴璃,方便高效,規(guī)則支持拖曳排序
支持基于請(qǐng)求路徑的本地文件替換城豁,支持基于請(qǐng)求路徑的路由轉(zhuǎn)發(fā)(host 配置)
替換類型支持:文件/文件夾替換苟穆,combo合并替換,qzmin替換(批量combo)唱星,delay延時(shí)等
支持自動(dòng)設(shè)置系統(tǒng)代理
支持規(guī)則過(guò)濾雳旅,只顯示關(guān)注的請(qǐng)求
提供構(gòu)建 http get/post 請(qǐng)求界面,方便接口調(diào)試
特色功能:模擬gprs/3g等低網(wǎng)速(mac only)
特色功能:支持離線站點(diǎn)到本地间聊,并自動(dòng)代碼格式化
https://github.com/rehorn/livepool
12.KNVProtoEngine高性能樹(shù)型協(xié)議處理引擎
KNV是一個(gè)模式自由的高性能樹(shù)型協(xié)議處理引擎攒盈,是對(duì)Key-Value的一個(gè)通用結(jié)構(gòu)化擴(kuò)展。
應(yīng)用特性
正如NoSQL對(duì)SQL的徹底變革一樣哎榴,KNV是對(duì)Key-Value的徹底變革型豁!
大家都很熟悉Key-Value系統(tǒng),但KV操作極不方便:
-- 你不得不自己做樂(lè)觀鎖(讀返回seq->修改->帶seq寫->seq變化則重頭開(kāi)始)叹话;
-- 你不得不拉取一堆數(shù)據(jù)偷遗,然后再提取你想要的部分;
-- 為了修改一個(gè)bit驼壶,你不得不把一串?dāng)?shù)據(jù)拉取修改后再一起提交更新
不過(guò)現(xiàn)在有KNV氏豌,一切都解決了。KNV時(shí)代來(lái)了热凹,你還在猶豫嗎泵喘?
應(yīng)用場(chǎng)景
KNV是專門針對(duì)以Protocol Buffers(或類似樹(shù)型結(jié)構(gòu))存儲(chǔ)的存儲(chǔ)系統(tǒng)開(kāi)發(fā)的泪电,有3個(gè)應(yīng)用場(chǎng)景:
存儲(chǔ)系統(tǒng)?處理用戶請(qǐng)求的通用解決方法(Get/Set/Delete),可以適配任意用戶自定義的數(shù)據(jù)結(jié)構(gòu)纪铺。
代理/通用邏輯層?服務(wù)器處理Protocol Buffers協(xié)議的通用方法 – 比如通用Proxy相速,透?jìng)鞫鄠€(gè)協(xié)議, 對(duì)請(qǐng)求包進(jìn)行鑒權(quán)鲜锚、限頻突诬、統(tǒng)計(jì)等等操作,還支持對(duì)包體內(nèi)容進(jìn)行審計(jì)芜繁,使用KNV協(xié)議旺隙, 這種方法就有可能而且很簡(jiǎn)單。
原生態(tài)?Protocol Buffers打解包庫(kù)?的高性能代替品骏令。
https://github.com/TencentOpen/KNVProtoEngine
13.Behaviac 游戲AI的開(kāi)發(fā)框架組件
Behaviac是游戲AI的開(kāi)發(fā)框架組件蔬捷,也是游戲原型的快速設(shè)計(jì)工具。支持行為樹(shù)BT榔袋,狀態(tài)機(jī)FSM周拐,HTN等多種范式,方便的編輯和調(diào)試凰兑。支持全平臺(tái)妥粟,適用于客戶端和服務(wù)器,助力游戲快速迭代開(kāi)發(fā)聪黎。編輯器可以運(yùn)行在PC上罕容,操作方便直觀可靠,支持實(shí)時(shí)和離線調(diào)試稿饰;編輯器可以導(dǎo)出xml,bson等多種格式露泊,更可以導(dǎo)出C++喉镰,C#源碼,提供最高效率惭笑。運(yùn)行時(shí)支持全平臺(tái)侣姆,有C++和C#兩個(gè)版本,原生支持Unity沉噩。
已被《天天炫斗》捺宗、《QQ飛車》、《全民突擊》川蒙、《全民奪寶》蚜厉、《九龍戰(zhàn)》等游戲及其他更多預(yù)研項(xiàng)目使用。
https://github.com/TencentOpen/behaviac
14.現(xiàn)代構(gòu)建系統(tǒng) Typhoon Blade
Blade主要定位于linux下的大型C++項(xiàng)目畜眨,密切配合研發(fā)流程昼牛,比如單元測(cè)試术瓮,持續(xù)集成,覆蓋率統(tǒng)計(jì)等贰健。但像unix下的文本過(guò)濾程序一 樣胞四,保持相對(duì)的獨(dú)立性,可以單獨(dú)運(yùn)行伶椿。目前重點(diǎn)支持i386/x86_64 Linux辜伟,未來(lái)可以考慮支持其他的類Unix系統(tǒng)。
特點(diǎn):
自動(dòng)分析頭文件依賴關(guān)系脊另,構(gòu)建受影響的代碼游昼。
增量編譯和鏈接,只構(gòu)建因變更受影響而需要構(gòu)建的尝蠕。
自動(dòng)計(jì)算庫(kù)的間接依賴烘豌,庫(kù)的作者只需要寫出直接依賴,構(gòu)建時(shí)自動(dòng)檢查所依賴的庫(kù)是否需要重新構(gòu)建看彼。
在任意代碼樹(shù)的任意子目錄下都能構(gòu)建廊佩。
支持一次遞歸構(gòu)建多個(gè)目錄下的所有目標(biāo),也支持只構(gòu)建任意的特定的目標(biāo)靖榕。
無(wú)論構(gòu)建什么目標(biāo)标锄,這些目標(biāo)所依賴的目標(biāo)也會(huì)被自動(dòng)連坐更新。
內(nèi)置 debug/release 兩種構(gòu)建類型茁计。
彩色高亮構(gòu)建過(guò)程中的錯(cuò)誤信息料皇。
支持?ccache
支持?distcc
支持基于構(gòu)建多平臺(tái)目標(biāo)
支持構(gòu)建時(shí)選擇編譯器(不同版本的gcc,clang等)
支持編譯?protobuf星压,lex,?yacc,?swig
支持自定義規(guī)則
支持測(cè)試撵术,在命令行跑多個(gè)測(cè)試
支持并行測(cè)試(多個(gè)測(cè)試進(jìn)程并發(fā)運(yùn)行)
支持增量測(cè)試(無(wú)需重新運(yùn)行的測(cè)試程序自動(dòng)跳過(guò))
集成?gperftools,自動(dòng)檢測(cè)測(cè)試程序的內(nèi)存泄露
構(gòu)建腳本 vim 語(yǔ)法高亮
svn 式的子命令命令行接口刃宵。
支持 bash 命令行補(bǔ)全
用 Python 編寫级乍,無(wú)需編譯,直接安裝使用竣贪。
徹底避免以下問(wèn)題:
頭文件更新军洼,受影響的模塊沒(méi)有重新構(gòu)建。
被依賴的庫(kù)需要更新演怎,而構(gòu)建時(shí)沒(méi)有被更新匕争,比如某子目錄依賴遙遠(yuǎn)的某外部目錄的代碼,我在這個(gè)目錄構(gòu)建爷耀,外部目錄的代碼會(huì)被自動(dòng)檢查是否也需要重新構(gòu)建甘桑。
https://github.com/chen3feng/typhoon-blade
15.RapidJSON?C++的JSON開(kāi)發(fā)包
Rapidjson 是一個(gè) C++ 的快速 JSON 解析器和生成器,使用 SAX/DOM 風(fēng)格的 API 設(shè)計(jì)。
https://github.com/miloyip/rapidjson
16.?微信開(kāi)源PhxSQL
PhxSQL是一個(gè)兼容MySQL扇住、服務(wù)高可用春缕、數(shù)據(jù)強(qiáng)一致的關(guān)系型數(shù)據(jù)庫(kù)集群。PhxSQL以單Master多Slave方式部署艘蹋,在集群內(nèi)超過(guò)一半機(jī)器存活的情況下锄贼,可自身實(shí)現(xiàn)自動(dòng)Master切換,且保證數(shù)據(jù)一致性女阀。
https://github.com/tencent-wechat/phxsql
更多請(qǐng)自行查看:http://alloyteam.github.io/https://github.com/tencent-wechat
----------------------------------------------------------------------------------------------------------------
新浪:WeiBohttps://github.com/weibocom
1.分布式緩存服務(wù)器 memcachedb
memcachedb是 一個(gè)由新浪網(wǎng)的開(kāi)發(fā)人員開(kāi)放出來(lái)的開(kāi)源項(xiàng)目宅荤,給memcached分布式緩存服務(wù)器添加了Berkeley DB的持久化存儲(chǔ)機(jī)制和異步主輔復(fù)制機(jī)制,讓memcached具備了事務(wù)恢復(fù)能力浸策、持久化能力和分布式復(fù)制能力冯键,非常適合于需要超高性能讀寫速度,但是 不需要嚴(yán)格事務(wù)約束庸汗,能夠被持久化保存的應(yīng)用場(chǎng)景惫确,例如memcachedb被應(yīng)用在新浪博客上面。
https://github.com/stvchu/memcachedb
2.動(dòng)態(tài)流量管理方案 Upsync
Upsync蚯舱,微博開(kāi)源基于Nginx容器動(dòng)態(tài)流量管理方案 改化。Nginx 以其超高的性能與穩(wěn)定性,在業(yè)界獲得了廣泛的使用枉昏,微博的七層就大量使用了 Nginx 陈肛。結(jié)合 Nginx 的健康檢查模塊,以及動(dòng)態(tài) reload 機(jī)制兄裂,可以近乎無(wú)損的服務(wù)的升級(jí)上線與擴(kuò)容句旱。這個(gè)時(shí)候擴(kuò)容的頻次比較低,大多數(shù)情況下是有計(jì)劃的擴(kuò)容晰奖。Upsync谈撒,開(kāi)發(fā)了模塊 nginx-upsync-module,它的功能是拉取 consul 的后端 server 的列表畅涂,并更新 Nginx 的路由信息港华。此模塊不依賴于任何第三方模塊。consul 作為 Nginx 的 db午衰,利用 consul 的 KV 服務(wù),每個(gè) Nginx work 進(jìn)程獨(dú)立的去拉取各個(gè) upstream 的配置冒萄,并更新各自的路由臊岸。
https://github.com/weibocom/nginx-upsync-module
3.高性能的內(nèi)核 Socket 實(shí)現(xiàn) Fastsocket
Fastsocket 是一個(gè)高擴(kuò)展性的 Socket 以及 Linux 內(nèi)核的底層網(wǎng)絡(luò)實(shí)現(xiàn)∽鹆鳎可以在多核機(jī)器上提供極好的性能帅戒,此外使用和維護(hù)還非常簡(jiǎn)單。目前該項(xiàng)目已經(jīng)在新浪的生產(chǎn)環(huán)境中使用。該項(xiàng)目由清華大學(xué)和新浪網(wǎng)聯(lián)合組成的 Fastos 團(tuán)隊(duì)開(kāi)發(fā)逻住,該團(tuán)隊(duì)的使命是提升 Linux 內(nèi)核的效率钟哥。Fastsocket 目前已經(jīng)使用在新浪微博的生產(chǎn)環(huán)境上,主要用于提供負(fù)載均衡服務(wù)的 HAProxy瞎访,線上實(shí)際性能提升一倍腻贰,從2014年3月份穩(wěn)定運(yùn)行至今,預(yù)計(jì)2014年底完成負(fù)載均衡全部集群的 Fastsocket 升級(jí)扒秸。Fastsocket 完全兼容 BSD Socket API播演,現(xiàn)有各類基于 Socket 的網(wǎng)絡(luò)應(yīng)用可以直接使用 Fastsockt。?目前經(jīng)過(guò)兼容測(cè)試的常用服務(wù)軟件有:HAProxy伴奥、Nginx写烤、Lighttpd、Redis 和 Memcached拾徙。
https://github.com/fastos/fastsocket
4.輕量級(jí) RPC 框架 Motan
Motan 是一套高性能洲炊、易于使用的分布式遠(yuǎn)程服務(wù)調(diào)用(RPC)框架。
功能
支持通過(guò)spring配置方式集成尼啡,無(wú)需額外編寫代碼即可為服務(wù)提供分布式調(diào)用能力暂衡。
支持集成consul、zookeeper等配置服務(wù)組件玄叠,提供集群環(huán)境的服務(wù)發(fā)現(xiàn)及治理能力古徒。
支持動(dòng)態(tài)自定義負(fù)載均衡、跨機(jī)房流量調(diào)整等高級(jí)服務(wù)調(diào)度能力读恃。
基于高并發(fā)隧膘、高負(fù)載場(chǎng)景進(jìn)行優(yōu)化,保障生產(chǎn)環(huán)境下RPC服務(wù)高可用寺惫。
https://github.com/weibocom/motan
5.TCP 性能剖析工具 Tcpdive
Tcpdive 是 TCP 性能剖析工具疹吃,主要特性:
更多 TCP 內(nèi)部性能信息
定量評(píng)估 TCP 性能改進(jìn)
描述在 TCP 層的 HTTP 處理,依賴于 HTTP Apps
容易部署西雀,使用友好
Tcpdive 已經(jīng)在新浪的生產(chǎn)環(huán)境上部署使用:
提高微博圖片服務(wù)質(zhì)量
提高微博視頻服務(wù)質(zhì)量
在有線和無(wú)線網(wǎng)絡(luò)中比較 TCP 性能
記錄不同應(yīng)用的 TCP 流量
https://github.com/fastos/tcpdive
6.PHP框架 Yaf
Yaf是一個(gè)C語(yǔ)言編寫的PHP框架萨驶,Yaf 的特點(diǎn):
用C語(yǔ)言開(kāi)發(fā)的PHP框架, 相比原生的PHP, 幾乎不會(huì)帶來(lái)額外的性能開(kāi)銷.
所有的框架類, 不需要編譯, 在PHP啟動(dòng)的時(shí)候加載, 并常駐內(nèi)存.
更短的內(nèi)存周轉(zhuǎn)周期, 提高內(nèi)存利用率, 降低內(nèi)存占用率.
靈巧的自動(dòng)加載. 支持全局和局部?jī)煞N加載規(guī)則, 方便類庫(kù)共享.
高性能的視圖引擎.
高度靈活可擴(kuò)展的框架, 支持自定義視圖引擎, 支持插件, 支持自定義路由等等.
內(nèi)建多種路由, 可以兼容目前常見(jiàn)的各種路由協(xié)議.
強(qiáng)大而又高度靈活的配置文件支持. 并支持緩存配置文件, 避免復(fù)雜的配置結(jié)構(gòu)帶來(lái)的性能損失.
在框架本身,對(duì)危險(xiǎn)的操作習(xí)慣做了禁止.
更快的執(zhí)行速度, 更少的內(nèi)存占用.
https://github.com/laruence/yaf
----------------------------------------------------------------------------------------------------------------
小米:XiaoMihttps://github.com/XiaoMi
1.分布式的發(fā)布和監(jiān)控系統(tǒng) Minos
Minos 是小米公司開(kāi)發(fā)的一個(gè)分布式的發(fā)布和監(jiān)控系統(tǒng)。最初是小米開(kāi)發(fā)的用來(lái)在 Hadoop 和 ZooKeeper 集群上發(fā)布和管理的工具艇肴。Minos 可輕松擴(kuò)展來(lái)支持其他的系統(tǒng)腔呜,目前已經(jīng)支持包括 HDFS、YARN 和 Impala 再悼。
https://github.com/XiaoMi/minos
2.互聯(lián)網(wǎng)企業(yè)級(jí)監(jiān)控系統(tǒng) OpenFalcon
Open-Falcon 是小米運(yùn)維部開(kāi)源的一款互聯(lián)網(wǎng)企業(yè)級(jí)監(jiān)控系統(tǒng)解決方案.
監(jiān)控系統(tǒng)是整個(gè)運(yùn)維環(huán)節(jié)核畴,乃至整個(gè)產(chǎn)品生命周期中最重要的一環(huán),事前及時(shí)預(yù)警發(fā)現(xiàn)故障冲九,事后提供翔實(shí)的數(shù)據(jù)用于追查定位問(wèn)題谤草。監(jiān)控系統(tǒng)作為一個(gè)成熟的運(yùn)維產(chǎn)品,業(yè)界有很多開(kāi)源的實(shí)現(xiàn)可供選擇。當(dāng)公司剛剛起步丑孩,業(yè)務(wù)規(guī)模較小冀宴,運(yùn)維團(tuán)隊(duì)也剛剛建立的初期,選擇一款開(kāi)源的監(jiān)控系統(tǒng)温学,是一個(gè)省時(shí)省力略贮,效率最高的方案。之后枫浙,隨著業(yè)務(wù)規(guī)模的持續(xù)快速增長(zhǎng)刨肃,監(jiān)控的對(duì)象也越來(lái)越多,越來(lái)越復(fù)雜箩帚,監(jiān)控系統(tǒng)的使用對(duì)象也從最初少數(shù)的幾個(gè)SRE真友,擴(kuò)大為更多的DEVS,SRE紧帕。這時(shí)候盔然,監(jiān)控系統(tǒng)的容量和用戶的“使用效率”成了最為突出的問(wèn)題。
監(jiān)控系統(tǒng)業(yè)界有很多杰出的開(kāi)源監(jiān)控系統(tǒng)是嗜。我們?cè)谠缙谟福恢痹谟脄abbix,不過(guò)隨著業(yè)務(wù)的快速發(fā)展鹅搪,以及互聯(lián)網(wǎng)公司特有的一些需求站绪,現(xiàn)有的開(kāi)源的監(jiān)控系統(tǒng)在性能、擴(kuò)展性丽柿、和用戶的使用效率方面恢准,已經(jīng)無(wú)法支撐了。
因此甫题,我們?cè)谶^(guò)去的一年里馁筐,從互聯(lián)網(wǎng)公司的一些需求出發(fā),從各位SRE坠非、SA敏沉、DEVS的使用經(jīng)驗(yàn)和反饋出發(fā),結(jié)合業(yè)界的一些大的互聯(lián)網(wǎng)公司做監(jiān)控炎码,用監(jiān)控的一些思考出發(fā)盟迟,設(shè)計(jì)開(kāi)發(fā)了小米的監(jiān)控系統(tǒng):Open-Falcon。
Highlights and features
數(shù)據(jù)采集免配置:agent自發(fā)現(xiàn)潦闲、支持Plugin队萤、主動(dòng)推送模式
容量水平擴(kuò)展:生產(chǎn)環(huán)境每秒50萬(wàn)次數(shù)據(jù)收集、告警矫钓、存儲(chǔ)、繪圖,可持續(xù)水平擴(kuò)展新娜。
告警策略自發(fā)現(xiàn):Web界面赵辕、支持策略模板、模板繼承和覆蓋概龄、多種告警方式还惠、支持回調(diào)動(dòng)作。
告警設(shè)置人性化:支持最大告警次數(shù)私杜、告警級(jí)別設(shè)置蚕键、告警恢復(fù)通知、告警暫停衰粹、不同時(shí)段不同閾值锣光、支持維護(hù)周期,支持告警合并铝耻。
歷史數(shù)據(jù)高效查詢:秒級(jí)返回上百個(gè)指標(biāo)一年的歷史數(shù)據(jù)誊爹。
Dashboard人性化:多維度的數(shù)據(jù)展示,用戶自定義Dashboard等功能瓢捉。
架構(gòu)設(shè)計(jì)高可用:整個(gè)系統(tǒng)無(wú)核心單點(diǎn)频丘,易運(yùn)維,易部署泡态。
https://github.com/XiaoMi/open-falcon
3.物聯(lián)網(wǎng)框架 IoT.js
IoT.js 旨在為物聯(lián)網(wǎng)提供一個(gè)基于 Web 技術(shù)的可相互操作的服務(wù)平臺(tái)搂漠。IoT.js 的目標(biāo)是要在資源受限的設(shè)備上良好運(yùn)行,例如只有幾 KB 的 RAM某弦。所以它支持廣泛的物聯(lián)桐汤。
https://github.com/Samsung/iotjs
----------------------------------------------------------------------------------------------------------------
豆瓣DouBanhttps://github.com/douban
1.分布式計(jì)算框架 DPark
DPark 是 Spark 的 Python 克隆,是一個(gè)Python實(shí)現(xiàn)的分布式計(jì)算框架刀崖,可以非常方便地實(shí)現(xiàn)大規(guī)模數(shù)據(jù)處理和迭代計(jì)算惊科。 DPark 由豆瓣實(shí)現(xiàn),目前豆瓣內(nèi)部的絕大多數(shù)數(shù)據(jù)分析都使用DPark 完成亮钦,正日趨完善馆截。
https://github.com/douban/dpark
2.iOS/Mac 音頻播放器 DOUAudioStreamer
DOUAudioStreamer 是 iOS 和 Mac 的基于核心音頻的流媒體音頻播放器。
https://github.com/douban/DOUAudioStreamer
3.CODE 豆瓣代碼托管系統(tǒng)
Douban CODE 是豆瓣開(kāi)發(fā)的一個(gè)基于?git?版本控制系統(tǒng)的協(xié)作平臺(tái)蜂莉。
CODE —— C: Community O: Original D: Developer E: Eldamar
目前 CODE 僅開(kāi)放了一個(gè)框架蜡娶,支持:
clone & push project
create project
create user
準(zhǔn)備環(huán)境
MySQL
Memcached
Python >= 2.7
pip >= 1.4.1
virtualenv
git
https://github.com/douban/code
----------------------------------------------------------------------------------------------------------------
網(wǎng)易NetEasehttps://github.com/netease
1.分布式TCP壓力測(cè)試工具 tcpcopy
tcpcopy是一種應(yīng)用請(qǐng)求復(fù)制(基于tcp的packets)工具,其應(yīng)用領(lǐng)域較廣映穗,目前已經(jīng)應(yīng)用于國(guó)內(nèi)各大互聯(lián)網(wǎng)公司窖张。
總體說(shuō)來(lái),tcpcopy主要有如下功能:
1)分布式壓力測(cè)試工具蚁滋,利用在線數(shù)據(jù)宿接,可以測(cè)試系統(tǒng)能夠承受的壓力大凶富础(遠(yuǎn)比ab壓力測(cè)試工具真實(shí)地多),也可以提前發(fā)現(xiàn)一些bug
2)普通上線測(cè)試,可以發(fā)現(xiàn)新系統(tǒng)是否穩(wěn)定睦霎,提前發(fā)現(xiàn)上線過(guò)程中會(huì)出現(xiàn)的諸多問(wèn)題梢卸,讓開(kāi)發(fā)者有信心上線
3)對(duì)比試驗(yàn),同樣請(qǐng)求副女,針對(duì)不同或不同版本程序蛤高,可以做性能對(duì)比等試驗(yàn)
4)利用多種手段,構(gòu)造無(wú)限在線壓力碑幅,滿足中小網(wǎng)站壓力測(cè)試要求
5)實(shí)戰(zhàn)演習(xí)(架構(gòu)師必備)
https://github.com/session-replay-tools/tcpcopy
2.桌面應(yīng)用軟件的跨平臺(tái)解決方案 heX
heX 是網(wǎng)易有道搜索部門開(kāi)發(fā)的一個(gè)允許你采用前端技術(shù)(HTML戴陡,CSS,JavaScript)開(kāi)發(fā)桌面應(yīng)用軟件的跨平臺(tái)解決方案沟涨,基于HTML5 +?node.js恤批,類似appjs。是你開(kāi)發(fā)桌面應(yīng)用的一種新的選擇拷窜,意在解決傳統(tǒng)桌面應(yīng)用開(kāi)發(fā)中繁瑣的UI和交互開(kāi)發(fā)工作开皿,使其變的簡(jiǎn)單而高效。特別適合重UI篮昧,重交互的桌面應(yīng)用軟件赋荆。
https://github.com/netease-youdao/hex
https://github.com/netease-youdao/hex-samples
3.Android性能測(cè)試工具 Emmagee
Emmagee是監(jiān)控指定被測(cè)應(yīng)用在使用過(guò)程中占用機(jī)器的CPU、內(nèi)存懊昨、流量資源的性能測(cè)試小工具窄潭。
支持SDK:Android2.2以及以上版本
Emmagee功能介紹
1、檢測(cè)當(dāng)前時(shí)間被測(cè)應(yīng)用占用的CPU使用率以及總體CPU使用量
2酵颁、檢測(cè)當(dāng)前時(shí)間被測(cè)應(yīng)用占用的內(nèi)存量嫉你,以及占用的總體內(nèi)存百分比,剩余內(nèi)存量
3躏惋、檢測(cè)應(yīng)用從啟動(dòng)開(kāi)始到當(dāng)前時(shí)間消耗的流量數(shù)
4幽污、測(cè)試數(shù)據(jù)寫入到CSV文件中,同時(shí)存儲(chǔ)在手機(jī)中
5簿姨、可以選擇開(kāi)啟浮窗功能距误,浮窗中實(shí)時(shí)顯示被測(cè)應(yīng)用占用性能數(shù)據(jù)信息
6、在浮窗中可以快速啟動(dòng)或者關(guān)閉手機(jī)的wifi網(wǎng)絡(luò)
https://github.com/NetEase/Emmagee
4.基于udp的請(qǐng)求復(fù)制工具 udpcopy
udpcopy用來(lái)解決udp應(yīng)用的一個(gè)開(kāi)源軟件扁位,與tcpcopy同屬于xcopy系列准潭,可以導(dǎo)入udp流量到測(cè)試系統(tǒng)中去,這樣就可以有效地對(duì)系統(tǒng)進(jìn)行各種測(cè)試域仇,比如壓力測(cè)試刑然,冒煙測(cè)試等等。
https://github.com/wangbin579/udpcopy
5.實(shí)時(shí)編輯刷新的前端服務(wù)器 Puer(推薦:browser-synchttps://github.com/BrowserSync/browser-sync)
簡(jiǎn)而言之暇务,Puer是一個(gè)可以實(shí)時(shí)編輯刷新的前端服務(wù)器泼掠。特性一覽:
提供一個(gè)當(dāng)前或指定路徑的靜態(tài)服務(wù)器
所有瀏覽器的實(shí)時(shí)刷新:編輯css實(shí)時(shí)更新(update)頁(yè)面樣式怔软,其它文件則重載(reload)頁(yè)面
提供簡(jiǎn)單熟悉的mock請(qǐng)求的配置功能,并且配置也是自動(dòng)更新武鲁。
可用作代理服務(wù)器爽雄,調(diào)試開(kāi)發(fā)既有服務(wù)器的頁(yè)面,可與mock功能配合使用
集成了weinre沐鼠,并提供二維碼地址,方便移動(dòng)端的調(diào)試
可以作為connect中間件使用(前提是后端為nodejs叹谁,否則請(qǐng)使用代理模式)
https://github.com/leeluolee/puer
--------------------------阿里巴巴開(kāi)源的好軟件太多饲梭,請(qǐng)自行選擇所需,我列幾個(gè)我們用的-------------------------
阿里巴巴Alibabahttps://github.com/alibaba/https://github.com/thx
1.分布式key/value存儲(chǔ)系統(tǒng) Tair
Tair是由淘寶網(wǎng)自主開(kāi)發(fā)的Key/Value結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)系統(tǒng)焰檩,在淘寶網(wǎng)有著大規(guī)模的應(yīng)用憔涉。您在登錄淘寶、查看商品詳情頁(yè)面或者在淘江湖和好友“搗漿糊”的時(shí)候析苫,都在直接或間接地和Tair交互兜叨。Tair是一個(gè)Key/Value結(jié)構(gòu)數(shù)據(jù)的解決方案,它默認(rèn)支持基于內(nèi)存和文件的兩種存儲(chǔ)方式衩侥,分別和我們通常所說(shuō)的緩存和持久化存儲(chǔ)對(duì)應(yīng)国旷。
Tair除了普通Key/Value系統(tǒng)提供的功能,比如get茫死、put跪但、delete以及批量接口外,還有一些附加的實(shí)用功能峦萎,使得其有更廣的適用場(chǎng)景屡久,包括:
Version支持
原子計(jì)數(shù)器
Item支持
https://github.com/alibaba/tair
2.TFS?分布式文件系統(tǒng)
TFS(Taobao FileSystem)是一個(gè)高可擴(kuò)展、高可用爱榔、高性能被环、面向互聯(lián)網(wǎng)服務(wù)的分布式文件系統(tǒng),其設(shè)計(jì)目標(biāo)是支持海量的非結(jié)構(gòu)化數(shù)據(jù)详幽。
目前筛欢,國(guó)內(nèi)自主研發(fā)的文件系統(tǒng)可謂鳳毛麟角。淘寶在這一領(lǐng)域做了有效的探索和實(shí)踐妒潭,Taobao File System(TFS)作為淘寶內(nèi)部使用的分布式文件系統(tǒng)悴能,針對(duì)海量小文件的隨機(jī)讀寫訪問(wèn)性能做了特殊優(yōu)化,承載著淘寶主站所有圖片雳灾、商品描述等數(shù)據(jù)存儲(chǔ)漠酿。
https://github.com/alibaba/tfs
3.消息中間件 RocketMQ
https://github.com/alibaba/RocketMQ
https://github.com/alibaba/RocketMQ-docs
4.分布式計(jì)算系統(tǒng)?JStorm
Jstorm是參考storm的實(shí)時(shí)流式計(jì)算框架,在網(wǎng)絡(luò)IO谎亩、線程模型炒嘲、資源調(diào)度宇姚、可用性及穩(wěn)定性上做了持續(xù)改進(jìn),已被越來(lái)越多企業(yè)使用
https://github.com/alibaba/jstorm
5.淘寶Web服務(wù)器 Tengine
Tengine是由淘寶網(wǎng)發(fā)起的Web服務(wù)器項(xiàng)目夫凸。它在Nginx的基礎(chǔ)上浑劳,針對(duì)大訪問(wèn)量網(wǎng)站的需求,添加了很多高級(jí)功能和特性夭拌。Tengine的性能和穩(wěn)定性已經(jīng)在大型的網(wǎng)站如淘寶網(wǎng)魔熏,天貓商城等得到了很好的檢驗(yàn)。它的最終目標(biāo)是打造一個(gè)高效鸽扁、穩(wěn)定蒜绽、安全、易用的Web平臺(tái)桶现。
以下沿引項(xiàng)目主頁(yè)上的特性介紹:
繼承Nginx-1.2.8的所有特性躲雅,100%兼容Nginx的配置;
動(dòng)態(tài)模塊加載(DSO)支持骡和。加入一個(gè)模塊不再需要重新編譯整個(gè)Tengine相赁;
更多負(fù)載均衡算法支持。如會(huì)話保持慰于,一致性hash等钮科;
輸入過(guò)濾器機(jī)制支持。通過(guò)使用這種機(jī)制Web應(yīng)用防火墻的編寫更為方便东囚;
動(dòng)態(tài)腳本語(yǔ)言Lua支持跺嗽。擴(kuò)展功能非常高效簡(jiǎn)單;
支持管道(pipe)和syslog(本地和遠(yuǎn)端)形式的日志以及日志抽樣页藻;
組合多個(gè)CSS桨嫁、JavaScript文件的訪問(wèn)請(qǐng)求變成一個(gè)請(qǐng)求;
可以對(duì)后端的服務(wù)器進(jìn)行主動(dòng)健康檢查份帐,根據(jù)服務(wù)器狀態(tài)自動(dòng)上線下線璃吧;
自動(dòng)根據(jù)CPU數(shù)目設(shè)置進(jìn)程個(gè)數(shù)和綁定CPU親緣性;
監(jiān)控系統(tǒng)的負(fù)載和資源占用從而對(duì)系統(tǒng)進(jìn)行保護(hù)废境;
顯示對(duì)運(yùn)維人員更友好的出錯(cuò)信息畜挨,便于定位出錯(cuò)機(jī)器;
更強(qiáng)大的防攻擊(訪問(wèn)速度限制)模塊噩凹;
更方便的命令行參數(shù)巴元,如列出編譯的模塊列表、支持的指令等驮宴;
可以根據(jù)訪問(wèn)文件類型設(shè)置過(guò)期時(shí)間逮刨;
https://github.com/alibaba/tengine
6.SeaJS 模塊加載框架
Sea.JS 是一個(gè)遵循?CommonJS?規(guī)范的模塊加載框架,可用來(lái)輕松愉悅地加載任意 JavaScript 模塊堵泽。SeaJS 支持的標(biāo)準(zhǔn)模塊遵循 Modules/Wrappings 規(guī)范的 define 形式修己,可運(yùn)行于 Web 瀏覽器以及 node.JS 等環(huán)境中恢总。
https://github.com/seajs/seajs
7.阿里巴巴分布式數(shù)據(jù)庫(kù)同步系統(tǒng) otter
otter 基于數(shù)據(jù)庫(kù)增量日志解析,準(zhǔn)實(shí)時(shí)同步到本機(jī)房或異地機(jī)房的mysql/oracle數(shù)據(jù)庫(kù). 一個(gè)分布式數(shù)據(jù)庫(kù)同步系統(tǒng)睬愤。
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 獲取單個(gè)用戶信息
taobao.user.seller.get 查詢賣家用戶信息
taobao.users.get 獲取多個(gè)用戶信息
Category (Working)
taobao.itemcats.authorize.get 查詢商家被授權(quán)品牌列表和類目列表
taobao.itemcats.get 獲取后臺(tái)供賣家發(fā)布商品的標(biāo)準(zhǔn)商品類目
taobao.itemcats.increment.get 增量獲取后臺(tái)類目數(shù)據(jù)
taobao.itemprops.get 獲取標(biāo)準(zhǔn)商品類目屬性
taobao.itempropvalues.get 獲取標(biāo)準(zhǔn)類目屬性值
taobao.topats.itemcats.get 全量獲取后臺(tái)類目數(shù)據(jù)
Shop
taobao.shop.get (白名單用戶才能調(diào)用)
9.模擬數(shù)據(jù)生成器 Mock.js
Mock.js 是一款模擬數(shù)據(jù)生成器,旨在幫助前端攻城師獨(dú)立于后端進(jìn)行開(kāi)發(fā)尤辱,幫助編寫單元測(cè)試砂豌。提供了以下模擬功能:
根據(jù)數(shù)據(jù)模板生成模擬數(shù)據(jù)
模擬 Ajax 請(qǐng)求,生成并返回模擬數(shù)據(jù)
基于 HTML 模板生成模擬數(shù)據(jù)
https://github.com/nuysoft/Mock
10.服務(wù)框架?Dubbo
Dubbo 是阿里巴巴公司開(kāi)源的一個(gè)高性能優(yōu)秀的服務(wù)框架啥刻,使得應(yīng)用可通過(guò)高性能的 RPC 實(shí)現(xiàn)服務(wù)的輸出和輸入功能奸鸯,可以和?Spring框架無(wú)縫集成。
主要核心部件:
Remoting:網(wǎng)絡(luò)通信框架可帽,實(shí)現(xiàn)了 sync-over-async 和 request-response 消息機(jī)制.
RPC:一個(gè)遠(yuǎn)程過(guò)程調(diào)用的抽象,支持負(fù)載均衡窗怒、容災(zāi)和集群功能
Registry:服務(wù)目錄框架用于服務(wù)的注冊(cè)和服務(wù)事件發(fā)布和訂閱
https://github.com/alibaba/dubbo
11.接口文檔管理工具 RAP
RAP通過(guò)GUI工具幫助WEB工程師更高效的管理接口文檔映跟,同時(shí)通過(guò)分析接口結(jié)構(gòu)自動(dòng)生成Mock數(shù)據(jù)、校驗(yàn)真實(shí)接口的正確性扬虚,使接口文檔成為開(kāi)發(fā)流程中的強(qiáng)依賴努隙。有了結(jié)構(gòu)化的API數(shù)據(jù),RAP可以做的更多辜昵,而我們可以避免更多重復(fù)勞動(dòng)荸镊。
Nginx7天入門:https://github.com/taobao/nginx-book
----------------------------------------------------------------------------------------------------------------
其他項(xiàng)目:
1.去哪兒:
MySQL自動(dòng)化運(yùn)維工具 Inception
MySQL語(yǔ)句的審核,在業(yè)界都已經(jīng)基本被認(rèn)同了堪置,實(shí)際上也是對(duì)MySQL語(yǔ)句寫法的統(tǒng)一化躬存,標(biāo)準(zhǔn)化,而之前的人工審核舀锨,針對(duì)標(biāo)準(zhǔn)這個(gè)問(wèn)題其實(shí)是很 吃力的岭洲,標(biāo)準(zhǔn)越多,DBA越累坎匿,開(kāi)發(fā)也越累盾剩。 那么在這個(gè)都追求自動(dòng)化運(yùn)維的時(shí)代,審核也必須要跟上步伐替蔬,因此Inception誕生了告私。而Inception可以做的工作遠(yuǎn)不止是一個(gè)自動(dòng)化審核工 具,同時(shí)還具備執(zhí)行承桥,生成對(duì)影響數(shù)據(jù)的回滾語(yǔ)句(類似閃回的功能)驻粟,這樣一條龍服務(wù)的工具,將會(huì)給DBA的工作帶來(lái)翻天覆地的變化快毛,DBA從此就從繁重的 審核格嗅、登上去執(zhí)行番挺,出錯(cuò)了很難回滾(如果提前沒(méi)有備份的話)的被動(dòng)局面解放了出來(lái),突然發(fā)現(xiàn)屯掖,做DBA原來(lái)可以這么輕松玄柏,工作可以不飽和了,那就有更多的 自由時(shí)間學(xué)習(xí)贴铜、進(jìn)一步向自動(dòng)化運(yùn)維平臺(tái)的實(shí)現(xiàn)等更智能化的方向去發(fā)展粪摘,是具有里程碑意義的。
https://github.com/mysql-inception/inception
實(shí)時(shí)應(yīng)用監(jiān)控平臺(tái) CAT
CAT 由大眾點(diǎn)評(píng)開(kāi)發(fā)的绍坝,基于 Java 的實(shí)時(shí)應(yīng)用監(jiān)控平臺(tái)徘意,包括實(shí)時(shí)應(yīng)用監(jiān)控,業(yè)務(wù)監(jiān)控轩褐。
CAT 支持的監(jiān)控消息類型包括:
Transaction適合記錄跨越系統(tǒng)邊界的程序訪問(wèn)行為,比如遠(yuǎn)程調(diào)用椎咧,數(shù)據(jù)庫(kù)調(diào)用,也適合執(zhí)行時(shí)間較長(zhǎng)的業(yè)務(wù)邏輯監(jiān)控把介,Transaction用來(lái)記錄一段代碼的執(zhí)行時(shí)間和次數(shù)勤讽。
Event用來(lái)記錄一件事發(fā)生的次數(shù),比如記錄系統(tǒng)異常拗踢,它和transaction相比缺少了時(shí)間的統(tǒng)計(jì)脚牍,開(kāi)銷比transaction要小。
Heartbeat表示程序內(nèi)定期產(chǎn)生的統(tǒng)計(jì)信息, 如CPU%, MEM%, 連接池狀態(tài), 系統(tǒng)負(fù)載等巢墅。
Metric用于記錄業(yè)務(wù)指標(biāo)诸狭、指標(biāo)可能包含對(duì)一個(gè)指標(biāo)記錄次數(shù)、記錄平均值君纫、記錄總和驯遇,業(yè)務(wù)指標(biāo)最低統(tǒng)計(jì)粒度為1分鐘。
Trace用于記錄基本的trace信息庵芭,類似于log4j的info信息妹懒,這些信息僅用于查看一些相關(guān)信息
消息樹(shù)
CAT監(jiān)控系統(tǒng)將每次URL、Service的請(qǐng)求內(nèi)部執(zhí)行情況都封裝為一個(gè)完整的消息樹(shù)双吆、消息樹(shù)可能包括Transaction眨唬、Event、Heartbeat好乐、Metric和Trace信息匾竿。
https://github.com/dianping/cat
3.搜狐:
Redis云管理平臺(tái) CacheCloud
CacheCloud提供一個(gè)Redis云管理平臺(tái):實(shí)現(xiàn)多種類型(Redis Standalone、Redis Sentinel蔚万、Redis Cluster)自動(dòng)部署岭妖、解決Redis實(shí)例碎片化現(xiàn)象、提供完善統(tǒng)計(jì)、監(jiān)控昵慌、運(yùn)維功能假夺、減少開(kāi)發(fā)人員的運(yùn)維成本和誤操作,提高機(jī)器的利用率斋攀,提供靈活的伸縮性已卷,提供方便的接入客戶端。
https://github.com/sohutv/cachecloud
基于 MySQL 的數(shù)據(jù)庫(kù)中間件 SOHU-DBProxy
SOHU-DBProxy 是由 搜狐 數(shù)據(jù)庫(kù)團(tuán)隊(duì)開(kāi)發(fā)維護(hù)的一個(gè)基于MySQL協(xié)議的數(shù)據(jù)中間層項(xiàng)目淳蔼。它在MySQL官方推出的MySQL-Proxy?0.8.3版本的基礎(chǔ)上侧蘸, 修改了大量bug,添加了很多功能特性○睦妫現(xiàn)在已經(jīng)在sohu的多個(gè)業(yè)務(wù)線上使用
DBProxy 主要功能:
1 即使在同一個(gè)連接(只要不在同一個(gè)事務(wù)中)也能連接復(fù)用
2 負(fù)載均衡提高讀性能讳癌,支持動(dòng)態(tài)擴(kuò)展
3 動(dòng)態(tài)添加的SQL審核和過(guò)濾。能夠統(tǒng)計(jì)的SQL長(zhǎng)時(shí)間運(yùn)行影響性能存皂,并且阻止其運(yùn)行
4 用戶連接限制
5 自動(dòng)摘除宕機(jī)的DB
6 讀寫分離(當(dāng)前版本沒(méi)有晌坤,代碼和測(cè)試已經(jīng)完成,沒(méi)有合并到當(dāng)前版本)
https://github.com/SOHUDBA/SOHU-DBProxy
大眾點(diǎn)評(píng):https://github.com/dianping
豌豆莢:https://github.com/wandoulabs
華為:https://github.com/HuaweiBigData
作者:毒逆天