BAT等大廠已開源的70個實用工具盤點(附下載地址)

前面的一篇文章《微軟、谷歌、亞馬遜、Facebook等硅谷大廠91個開源軟件盤點(附下載地址)》列舉了國外8個互聯網公司(包括微軟、Google、亞馬遜、IBM、Facebook、Twitter、eBay、VMware)的開源軟件項目,今天咱們來盤點一下國內幾個體量較大的互聯網大廠(騰訊、百度、阿里、美團點評、華爲)都有哪些開源軟件。快點Mark起來並轉發給須要的人吧。前端

百度開源軟件 git

一、ECharts:JavaScript 圖表庫
ECharts是一款由百度前端技術部開發的,基於Javascript的數據可視化圖表庫,提供直觀,生動,可交互,可個性化定製的數據可視化圖表。
提供大量經常使用的數據可視化圖表,底層基於ZRender(一個全新的輕量級canvas類庫),建立了座標系,圖例,提示,工具箱等基礎組件,並在此上構建出折線圖(區域圖)、柱狀圖(條狀圖)、散點圖(氣泡圖)、餅圖(環形圖)、K線圖、地圖、力導向佈局圖以及和絃圖,同時支持任意維度的堆積和多圖表混合展示。
詳情:www.oschina.net/p/echarts
GitHub地址:
github.com/baidu/echar…程序員

二、ApolloAuto:開源自動駕駛平臺
Apollo (阿波羅)是一個開放的、完整的、安全的平臺,將幫助汽車行業及自動駕駛領域的合做夥伴結合車輛和硬件系統,快速搭建一套屬於本身的自動駕駛系統。
Apollo 是百度重點打造的 AI 開放平臺之一,計劃主要包含 4 個技術模塊:定位/感知模塊、車輛規劃與運營(AI+大數據,精準控制車輛,適合不一樣路況)、軟件運營框架(支持英特爾、英偉達等多種芯片)。
詳情:www.oschina.net/p/apolloaut…github

三、BFS-Baidu:百度文件系統
百度的核心數據庫Tera將數據持久化在分佈式文件系統上,分佈式文件系統的性能、可用性和擴展性對整個上層搜索業務的穩定性與效果有着相當重要的影響。現有的分佈式文件系統(如HDFS等)沒法知足低延遲、高可用、跨地域擴展等方面的需求,因此咱們從百度搜索的業務特色出發,開發了本身的分佈式文件系統BFS。
系統主要由NameServer、MetaServer、ChunkServer、SDK、bfs_mount和bfs_client等幾個模塊構成。
其中NameServer是中心控制模塊,採用集羣化部署,負責目錄樹的管理;ChunkServer是數據節點負責提供文件塊的讀寫服務;SDK以靜態庫的形式提供了用戶使用的API;bfs_mount經過libfuse,將bfs掛載到本地,做爲本地文件系統訪問;bfs_client是一個二進制的管理工具。
詳情:www.oschina.net/p/baidu-fil…web

四、Kity Minder:在線腦圖編輯器
KityMinder 是百度FEX團隊的f-cube小組(原UEditor小組)的又一力做。做爲一款在線的腦圖編輯工具,它有着不少Native編輯工具的交互體驗。KM與UE有着同樣的宗旨,就是注重最終用戶的使用體驗。同時,它充分發揮了Web雲存儲的優點,能夠直接將編輯中的腦圖同步到雲端。此外,藉由首創的 「雲盤分享」功能,用戶能夠一鍵將當前編輯的腦圖直接生成在線連接共享給其餘用戶,實現無縫溝通。
詳情:www.oschina.net/p/kityminde…算法

五、Disconf:分佈式配置管理平臺
專一於各類 分佈式系統配置管理 的通用組件/通用平臺, 提供統一的配置管理服務。包括 百度、滴滴打車、銀聯、網易、拉勾網 等知名互聯網公司正在使用!
詳情:www.oschina.net/p/disconfsql

六、Tera:分佈式表格系統
Tera 是一個高性能、可伸縮的數據庫系統,被設計用來管理搜索引擎萬億量級的超鏈與網頁信息。爲實現數據的實時分析與高效訪問,咱們使用按行鍵、列名和時間戳全局排序的三維數據模型組織數據,使用多級Cache系統,充分利用新一代服務器硬件大內存、SSD盤和萬兆網卡的性能優點,作到模型靈活的同時,實現了高吞吐與水平擴展。
詳情:www.oschina.net/p/tera
Gitbub地址:
github.com/baidu/tera數據庫

七、Cafe:Android自動化測試框架
Cafe 測試框架是一款來自百度QA部門的具備開創性意義的Android平臺的自動化測試框架,框架覆蓋了Android自動化測試的各類需求。框架致力於實現跨進程測試、快速測試、深度測試,解決了Android自動化測試中的諸多難題,好比業界一直沒有解決的跨進程測試問題。
詳情:www.oschina.net/p/cafeapache

八、Ueditor:富文本編輯器
UEditor是由百度web前端研發部開發所見即所得富文本web編輯器,具備輕量,可定製,注重用戶體驗等特色。
詳情:www.oschina.net/p/ueditor
Gitbub地址:
github.com/baidu/uedit…編程

九、Mapv:地圖可視化工具庫
Mapv 是一款基於百度地圖的大數據可視化開源庫,能夠用來展現大量的點、線、面的數據,每種數據也有不一樣的展現類型,如直接打點、熱力圖、網格、聚合等方式展現數據。
詳情:www.oschina.net/p/mapv
Gitbub地址:
github.com/baidu/mapv

十、ECharts-X:全新 3D 可視化庫
ECharts-X是 ECharts 團隊推出的全新 3D 可視化庫,它是基於 ECharts 的擴展,底層深度整合了 WebGL 庫QTEK和 Canvas2D 庫ZRender。
詳情:www.oschina.net/p/echarts-x

十一、MuPlayer:百度音樂播放內核
MuPlayer 是一款跨平臺、輕量級的音頻播放解決方案,是百度@音樂前端團隊開發維護的瀏覽端音頻播放內核,它基於HTML5 Audio及Flash音頻技術,已在百度音樂多個線上產品線中應用,具有很強的靈活性和穩定性。
詳情:www.oschina.net/p/muplayer

十二、WebUploader:文件上傳組件
WebUploader 是由Baidu WebFE(FEX)團隊開發的一個簡單的以HTML5爲主,FLASH爲輔的現代文件上傳組件。在現代的瀏覽器裏面能充分發揮HTML5的優點,同時又不摒棄主流IE瀏覽器,延用原來的FLASH運行時,兼容IE6+,Andorid 4+,IOS 6+。兩套運行時,一樣的調用方式,可供用戶任意選用。
詳情:www.oschina.net/p/webupload…
百度更多74個開源項目詳情可查看:www.oschina.net/project/bai…

阿里巴巴開源軟件

一、Weex:開源移動UI層框架
開源的移動端高性能動態化,跨平臺UI框架。 Weex的出現解決了困擾移動開發領域長期以來的一份設計,屢次重複開發的問題,使得開發者可以經過一次代碼編寫便可爲Androdi,IOS,H5生成美觀高性能的界面。
因爲Weex已經捐贈到了Apache基金會孵化,因此代碼主倉庫已經遷移到了Apache組織下。
Github主倉庫:
github.com/apache/incu…
Github原倉庫:
github.com/alibaba/wee…

二、Ant Design:開源React 組件庫
阿里在React技術棧基礎上開源的全功能通用組件庫,沉澱了大量交互設計最佳實踐。 若是你以React的方式開發你的前端應用Ant Design不容錯過。Ant Design最近還提供了移動版Ant Design Mobile ,一樣風格的組件庫如今可平順的過分到移動Web環境。
Github主倉庫:
github.com/ant-design/…

三、FastJSON:開源JSON解析和生成器
FastJSON是一個超高性能的JSON解析和生成器,在對外零依賴的狀況下實現了對多種經常使用數據結構到JSON的解析和生成。評測數據長期以來一直在同類工具間遙遙領先。對JSON的處理是衆多服務端程序最頻繁執行的任務,啓用FastJSON或許能讓你的後端應用得到不小的性能提高。
Github主倉庫:
github.com/alibaba/fas…

四、Dubbo:開源分佈式開發框架
高性能服務框架,使得應用可經過高性能的 RPC 實現服務的輸出和輸入,能夠和 Spring框架無縫集成。 是阿里大規模分佈式系統的祕密武器。
Github主倉庫:
github.com/alibaba/dub…

五、Atlas:開源Android平臺容器化開發框架
隨着移動應用規模的增加,大型移動應用,特別是平臺級應用每每由團隊協同開發。如何實現不一樣功能模塊的組件化、解耦化,同時還具有動態性是Android應用開發的一個核心挑戰。Atlas在遵循安卓系統設計規範的狀況下,經過反射和輕量的hook方案來實現了這一目標,並將大量的工做放到了編譯期,提升了穩定性。
Github主倉庫:
github.com/alibaba/atl…

六、RocketMQ:開源消息隊列
企業級互聯網架構的核心產品,基於高可用分佈式集羣技術,搭建了包括髮布訂閱、消息軌跡、資源統計、定時(延時)、監控報警等一套完整的消息隊列服務。
Github主倉庫:
github.com/apache/incu…
Github原倉庫:
github.com/alibaba/Roc…

七、Freeline:開源Android構建工具
Freeline是一個Android平臺上的構建工具,構建速度是其最大特色。它能夠充分利用緩存文件,在幾秒鐘內迅速地對代碼的改動進行編譯並部署到設備上,有效地減小了平常開發中的大量從新編譯與安裝的耗時。
Github主倉庫:
github.com/alibaba/fre…

八、AliSQL:開源 MySQL數據庫分枝
AliSQL 是基於普遍使用的數據庫產品 MySQL 的一個開源分支,在 MySQL 社區版的基礎上作了大量的性能與功能的優化改進。尤爲適合電商、雲計算以及金融等行業環境。最新的 AliSQL 版本不只從其餘開源分支好比:Percona,MariaDB,WebScaleSQL 等社區汲取精華,也沉澱了阿里巴巴多年在 MySQL 領域的經驗和解決方案。
Github主倉庫:
github.com/alibaba/Ali…

騰訊開源軟件
一、Blade:現代構建系統
指望的目標是強大而好用,把程序員從構建的繁瑣中解放出來。Blade 主要定位於 Linux 下的大型 C++ 項目,密切配合研發流程,好比單元測試,持續集成,覆蓋率統計等。
在騰訊公司「颱風」雲計算平臺開發過程當中,爲了解決 GNU Make,Autotools 的難用和繁瑣的問題,開發了這個全新的構建系統,整個系統基於多個聲明式的構建腳本,在構建腳本里,只須要聲明要構建什麼目標,目標的源代碼,以及其直接依賴的其它目標,不須要說明如何構建。大大下降了使用難度,提升了開發效率。
Gitbub地址:
github.com/chen3feng/t…

二、Appecker:自動化測試框架
一款用於 iOS 系列系統的自動化測試框架。
Gitbub地址:
github.com/TencentOpen…

三、QcloudMna:追風移動加速
QcloudMna 移動加速是騰訊雲針對移動端應用(APP、遊戲)推出的加速產品,其主要功能包括:動態數據加速、網絡流量優化、智能分析統計,具備接入簡單、多平臺支持、客服支持等特色。
詳情:www.oschina.net/p/mna

四、Ctaxis:雲排序
雲排序用於提供海量數據排序服務, 採用可擴展的分佈式存儲方案。騰訊雲排序服務主要面向騰訊開放平臺上的第三方應用,應用的用戶量跨越從0到千萬級甚至上億的廣闊區間, 在進行海量數據的排序時,常常會面臨處理方式、處理性能等方面的問題。
詳情:www.oschina.net/p/ctaxis

五、APT:安卓性能測試工具
安卓性能測試工具,安卓平臺高效性能測試套件,用於安卓平臺的基準測試、競品測試。
APT是一個eclipse插件,能夠實時監控Android手機上多個應用的CPU、內存數據曲線,並保存數據;另外還支持自動獲取內存快照、PMAP文件分析等,方便開發人員自測或者測試人員完成性能測試,快速發現產品問題。
GitHub地址:
github.com/shawwinbin/…

六、Koala:跨平臺圖形編譯工具
跨平臺圖形編譯工具,用於快速生成前端 CSS 和 JS。
詳情:www.oschina.net/p/openkoala

七、TDW:騰訊分佈式數據倉庫
騰訊分佈式數據倉庫,用於幫助企業低成本構建大數據分析系統或數據倉庫。
詳情:code.csdn.net/Tencent/tdw…

八、TscanCode:靜態代碼掃描工具
靜態代碼掃描工具,針對 C/C++ 代碼的靜態代碼掃描解決方案。
TscanCode旨在助力開發與測試人員從代碼層面挖掘問題,將那些長期困擾項目的諸如空指針宕機等問題,扼殺於萌芽階段。支持用戶根據不一樣需求自定義配置檢查項,有極強的擴展性和可維護性。平均掃描速度10W行/分鐘。
詳情:www.oschina.net/p/tscancode

九、RapidJSON
一個 C++ 的高性能 JSON 解析器及生成器,同時支持 SAX/DOM 風格的 API。
GitHub地址:
github.com/TencentOpen…

十、Key-N-Value:高性能樹型協議處理引擎
KNV 是一個模式自由的高性能樹型協議處理引擎,是對 Key-Value 的一個通用結構化擴展。

十一、WeTest助手:手機端輔助測試工具
WeTest助手是由WeTest(質量開放平臺wetest.qq.com)自主研發的基於手機端的輔助測試工具,目前包括性能測試和遠程調試兩大功能, 可以爲手遊等項目發現CPU、內存、FPS等性能問題,並提供雲端真機用於問題在線調試,共計爲公司內外部項目服務5.4萬次;
手遊客戶端性能測試經常使用性能維度,CPU,內存,FPS,流量一次性所有收集,圖表化展現,數據可按場景化分類,而且支持離線和在線兩種模式, 地鐵上均可以作測試,Web上看報告。遠程調試配合自研的雲真機技術,支持多點觸控、類手柄遙控,真實還原手遊測試場景,極速流暢、極低延遲, 本地只須要一臺手機便可操控雲端任何一臺手機。
支持ROOT和非ROOT安卓手機,支持越獄iOS系統。
GitHub地址:
github.com/Tencent/WeT…

十二、QT4i:iOS開發自動化測試工具
iOS 開發自動化測試工具,全面兼容 iOS 真機和模擬器,基於分佈式技術,高效併發執行測試。QT4i須要和QTAF一塊兒使用。
GitHub地址:
github.com/tencent/QT4…

1三、QT4A:UI 測試自動化測試解決方案
基於 QTA 提供面向 Android 應用的 UI 測試自動化測試解決方案。
須要和QTAF一塊兒使用。
詳情:
www.oschina.net/p/QT4A

1四、Fanvas
SWF 轉 HTML5 Canvas 動畫。Fanvas 能夠把 SWF(包括矢量和位圖)完美地轉化爲 Canvas 動畫,讓美術妹子一次製做,處處運行。
GitHub地址:
github.com/TencentOpen…

1五、HaboMalHunter:惡意軟件分析系統
HaboMalHunter是哈勃分析系統 (habo.qq.com) 的開源子項目,用於Linux平臺下進行自動化分析、文件安全性檢測的開源工具。使用該工具可以幫助安全分析人員簡潔高效的獲取惡意樣本的靜態和動態行爲特徵。分析報告中提供了進程、文件、網絡和系統調用等關鍵信息。
GitHub地址:
github.com/Tencent/Hab…

1六、QTAF:跨平臺測試自動化工具
QTAF 是一個跨平臺的測試自動化工具,適用於後臺、原生或混合型客戶端應用的測試。
GitHub地址:
github.com/Tencent/QTA…

1七、WeDemo
微信團隊開源的項目,用於微信開發者進行微信登陸、分享功能開發時的參考 Demo。
GitHub地址:
github.com/Tencent/WeD…

1八、GAutomator
GAutomator是一個針對Unity手遊的UI自動化測試框架。設計理念與使用方式,相似於Android的UIAutomator。GAutomator以Unity中的GameObject爲操做對象,經過操做GameObject實現UI自動化測試。基於GameObject的方式,不存在手機分辨率適配的問題,一份腳本可以運行在不一樣手機之上,基於GameObject的另一個優勢爲魯棒性較強,遊戲的UI界面常常發生變化,GameObject變化頻率相對較低。
GitHub地址:
github.com/tencent/GAu…

1九、MSEC
毫秒服務引擎是騰訊的一個開源框架,適用於在廉價機器組成的集羣上開發和運營分佈式後臺服務。
GitHub地址:
github.com/Tencent/MSE…

20、Behaviac:行爲樹解決方案
行爲樹(Behavior Tree)解決方案。該方案包括編輯器(Designer)和運行時庫(Runtime)。
GitHub地址:
github.com/Tencent/beh…

2一、Blueking CMDB(藍鯨配置平臺)
一款面向應用的 CMDB,在 ITIL 體系裏,CMDB 是構建其它流程的基石,而在藍鯨智雲體系裏,配置平臺就扮演着基石的角色,爲應用提供了各類運維場景的配置數據服務。
GitHub地址:
github.com/tencent/bk-…

2二、GT(隨身調)
GT(隨身調)是APP的隨身調試平臺,它是直接運行在手機上的「集成調試環境」(IDTE, Integrated Debug Environment)。
利用GT,僅憑一部手機,無需鏈接電腦,便可對APP進行快速的性能測試(CPU、內存、流量、電量、幀率/流暢度等等)、開發日誌的查看、Crash日誌查看、網絡數據包的抓取、APP內部參數的調試、真機代碼耗時統計等。
GitHub地址:
github.com/Tencent/GT

2三、weui-wxss:安卓/iOS手機端調測組件
安卓/iOS 手機端調測組件,用於安卓平臺的性能測試、競品測試及僅憑一臺手機進行 App 測試的場景。
GitHub地址:
github.com/weui/weui-w…

2四、weui.js
WeUI 是由微信官方設計團隊專爲微信移動 Web 應用設計的 UI 庫。weui.js是 WeUI 的輕量級 js 封裝。
GitHub地址:
github.com/weui/weui.j…

2五、Teaf:高性能服務端框架
Tencent Easy ACE Framework,基於ACE的高性能輕量級服務框架,單進程多線程模型,支持select/epoll等多種網絡IO模型,同時支持tcp和udp協議,支持二進制(pb等)和文本格式(json等,易於理解),相對多進程模型的框架來講更易維護,更輕量。業務側只須要開發本身的邏輯處理便可實現高性能的業務後臺服務器。已經在騰訊互娛(IEG)大部分平臺類產品中成熟應用,好比idip,遊戲人生,心悅,幫幫,新終端遊戲中心aj,cross等,公司其餘BG也有不少產品在使用。
GitHub地址:
github.com/Tencent/Tea…

2六、SQLCipher
SQLCipher 提供了對 SQLite 數據庫的傳輸層進行全面加密的工具,而經過使用 SQLCipher ,整個加密過程對客戶端是透明的,無需改動應用程序。(該項目是騰訊 fork Zetetic 公司的開源項目)
GitHub地址:
github.com/Tencent/sql…

2七、Tars:高性能RFC開發框架
基於名字服務使用 Tars 協議的高性能 RPC 開發框架,同時配套一體化的服務治理平臺,幫助我的或者企業快速的以微服務的方式構建本身穩定可靠的分佈式應用。
Tars是騰訊從2008年到今天一直在使用的後臺邏輯層的統一應用框架TAF(Total Application Framework),目前支持C++和Java兩種語言。該框架爲用戶提供了涉及到開發、運維、以及測試的一整套解決方案,幫助一個產品或者服務快速開發、部署、測試、上線。 它集可擴展協議編解碼、高性能RPC通訊框架、名字路由與發現、發佈監控、日誌統計、配置管理等於一體,經過它能夠快速用微服務的方式構建本身的穩定可靠的分佈式應用,並實現完整有效的服務治理。
目前該框架在騰訊內部,各大核心業務都在使用,頗受歡迎,基於該框架部署運行的服務節點規模達到上萬個。
GitHub地址:
github.com/Tencent/Tar…

2八、WeFlow:前端開發工做流工具
一個高效、強大、跨平臺(macOS & Win)的前端開發工做流工具,核心基於 tmt-workflow 工做流,代碼開源可定製。
GitHub地址:
github.com/Tencent/WeF…

2九、Pebble:分佈式開發框架
基於該框架,可讓開發者只需專一於業務邏輯的實現,而不須要關注基礎功能的開發,如網絡通訊,數據存儲,集羣管理等。
GitHub地址:
github.com/TencentOpen…

30、tmt-workflow:前端工做流程
基於 Gulp(v4.0)、高效、跨平臺(macOS & Win)、可定製的前端工做流程。
GitHub地址:
github.com/Tencent/tmt…

3一、WeUI:基礎樣式庫
一套同微信原生視覺體驗一致的基礎樣式庫,爲微信 Web 開發量身設計,能夠令用戶的使用感知更加統一。包含button、cell、dialog、toast、article、icon等各式元素。
GitHub地址:
github.com/weui

3二、WCDB:移動數據庫框架
騰訊開源的一個高效、完整、易用的移動數據庫框架,基於 SQLCipher,支持 iOS、macOS 和 Android。
GitHub地址:
github.com/Tencent/wcd…

3三、xLua
xLua 爲 Unity3D 增長 Lua 腳本編程的能力,進而提供代碼邏輯增量更新的可能。
GitHub地址:
github.com/Tencent/xLu…

3四、Libco:C/C++協程庫
Libco是微信後臺大規模使用的C/C++協程庫,2013年至今穩定運行在微信後臺的數萬臺機器上。Libco提供了完善的協程編程接口、經常使用的Socket族函數Hook等,使得業務可用同步編程模型快速迭代開發。
早期微信後臺由於業務需求複雜多變、產品要求快速迭代等需求,大部分模塊都採用了半同步半異步模型。接入層爲異步模型,業務邏輯層則是同步的多進程或多線程模型,業務邏輯的併發能力只有幾十到幾百。隨着微信業務的增加,系統規模變得愈來愈龐大,每一個模塊很容易受到後端服務/網絡抖動的影響。基於這樣的背景,微信開發了Libco,實現了對業務邏輯非侵入的異步化改造。
GitHub地址:
github.com/tencent/lib…

3五、PhxPaxos:生產級paxos類庫
PhxPaxos是微信後臺團隊自主研發的一套基於Paxos協議的多機狀態拷貝類庫。它以庫函數的方式嵌入到開發者的代碼當中,使得一些單機狀態服務能夠擴展到多機器,從而得到強一致性的多副本以及自動容災的特性。PhxPaxos在微信服務裏面通過一系列的工程驗證和大量的惡劣環境下的測試,在一致性的保證上極爲健壯。
PhxPaxos的特性包括使用基於消息傳遞機制的純異步工程架構、每次寫盤使用fsync嚴格保證正確性、支持Checkpoint以及對PaxosLog的自動清理、使用點對點流式協議進行快速學習、支持跨機器的Checkpoint自動拉取、內置Master選舉功能、自適應的過載保護等。
GitHub地址:
github.com/tencent-wec…

3六、PhxSQL:高可用、強一致的MySQL集羣
PhxSQL是一個兼容MySQL、服務高可用、數據強一致的關係型數據庫集羣。PhxSQL以單Master多Slave方式部署,在集羣內超過一半機器存活的狀況下、便可提供服務,而且自身實現自動Master切換、保證數據一致性。PhxSQL不依賴於ZooKeeper等任何第三方作存活檢測及選主。PhxSQL基於MySQL的一個分支Percona 5.6開發,功能和實現與MySQL基本一致。
MySQL主備在主機上支持完整SQL、全局事務、以repeatable read和serializable級別的事務隔離,在金融、賬號等關鍵業務中有巨大的價值。可是MySQL傳統主備方案也有其缺點。最明顯的就是主機故障後的自動換主和新舊主數據一致性,即所謂的一致性和可用性。爲了解決這個問題,並同時徹底兼容MySQL,微信在MySQL的基礎上應用Paxos,設計和開發了PhxSQL。
GitHub地址:
github.com/tencent-wec…

3七、PhxRPC:RPC框架
PhxRPC是微信後臺團隊推出的一個簡潔小巧的RPC框架,編譯生成的庫只有450K(編譯只依賴第三方庫Protobuf)。PhxRPC的特性以下:
使用Protobuf做爲IDL用於描述RPC接口以及通訊數據結構。
基於Protobuf文件自動生成Client以及Server接口,用於Client的構建,以及Server的實現。
半同步半異步模式,採用獨立多IO線程,經過Epoll管理請求的接入以及讀寫,工做線程採用固定線程池。IO線程與工做線程經過內存隊列進行交互。
提供完善的過載保護,無需配置閾值,支持動態自適應拒絕請求。
提供簡易的Client/Server配置讀入方式。
基於lambda函數實現併發訪問Server,能夠很是方便地實現Google提出的 Backup Requests 模式。
GitHub地址:
github.com/tencent-wec…

3八、Mars:終端跨平臺網絡組件
Mars是微信官方的終端基礎組件,是一個結合移動應用所設計的基於Socket層的解決方案,在網絡調優方面有更好的可控性,採用C++開發。目前已接入微信 Android、iOS、Mac、Windows、WP 等客戶端。
在微信中,任何網絡實現的bug均可能致使重大事故。例如微信的容災實現,若是由於版本的實現差別,致使某些版本上沒法進行容災恢復,將會嚴重的影響用戶體驗。微信研發了統一的跨平臺的網絡基礎庫Mars來知足發展的須要,一方面,基礎組件能夠提升研發效率,另一方面,也能夠提升系統的穩健性。
在設計上,Mars以跨平臺、跨業務爲前提,聽從高可用,高性能,負載均衡的設計原則。以網絡的可用性爲例,移動互聯網有着丟包率高、帶寬受限、延遲波動、第三方影響等特色,使得網絡的可用性,尤爲是弱網絡下的可用性變得尤其關鍵。Mars 的STN組件做爲基於 socket 層的網絡解決方案,在不少細節設計上會充分考慮弱網絡下的可用性。
GitHub地址:
github.com/Tencent/mar…

3九、熱補丁技術Tinker
Tinker是微信官方的Android熱補丁解決方案,它支持動態下發代碼、So庫以及資源,讓應用可以在不須要從新安裝的狀況下實現更新。
當前市面的熱補丁方案有不少,其中比較出名的有阿里的AndFix、美團的Robust以及QZone的超級補丁方案,但它們都存在沒法解決的問題,因此微信研發了本身的解決方案。總的來講,AndFix做爲native解決方案,首先面臨的是穩定性與兼容性問題,更重要的是它沒法實現類替換,它是須要大量額外的開發成本的。而Robust兼容性與成功率較高,可是它與AndFix同樣,沒法新增變量與類只能用作的bugFix方案。Qzone方案能夠作到發佈產品功能,可是它主要問題是插樁帶來Dalvik的性能問題,以及爲了解決Art下內存地址問題而致使補丁包急速增大的。
Tinker的具體設計目標以下:
開發透明:開發者無需關心是否在補丁版本,他能夠隨意修改,不禁框架限制。
性能無影響:補丁框架不能對應用帶來性能損耗。
完整支持:支持代碼,So 庫以及資源的修復,能夠發佈功能。
補丁大小較小: 補丁大小應該儘可能的小,提升升級率。
穩定,兼容性好:保證微信的數億用戶的使用,儘可能減小反射。
GitHub地址:
github.com/Tencent/tin…

美團點評開源軟件

一、DBProxy:數據庫中間件
DBProxy是由美團點評公司技術工程部DBA團隊(北京)開發維護的一個基於MySQL協議的數據中間層。它在奇虎360公司開源的Atlas基礎上,修改了部分bug,而且添加了不少特性。
經過數據庫中間件,能夠對數據庫進行水平擴展,由原來單臺數據庫擴展到多臺數據庫,數據庫中間件經過路由規則將數據的訪問請求路由到其中一臺數據庫上,從而大大下降了數據訪問的瓶頸和單臺數據庫的壓力。經過數據庫中間件還能夠將DBA和研發進行解耦,提高DBA運維效率。
Github地址:
github.com/Meituan-Dia…

二、SQLAdvisor:SQL優化工具
SQLAdvisor 是由美團點評公司北京DBA團隊開發維護的 SQL 優化工具:輸入SQL,輸出索引優化建議。 它基於 MySQL 原生詞法解析,再結合 SQL 中的 where 條件以及字段選擇度、聚合條件、多表 Join 關係等最終輸出最優的索引優化建議。目前 SQLAdvisor 在公司內部大量使用,較爲成熟、穩定。
GitHub地址:github.com/Meituan-Dia…

華爲開源軟件
一、HBase 的 Spark SQL Astro
Spark SQL on HBase package 項目又名 Astro,端到端整合了 Spark,Spark SQL和HBase的能力,有助於推進幫助Spark進入NoSQL的普遍客戶羣,並提供強大的在線查詢和分析以及在垂直企業大規模數據處理能力。
Apache HBase 是數據在 HDFS 上的 Key-Value 存儲。它用來給 Google 的 Big Table 建模,並提供了 API 用於查詢數據。這些數據經過它的「row keys」來組織、區分和發佈。在每一個分區上,數據被指定的「列」數據集合「列族」物理分區。這些數據模型是寬且零散的,在這些表中列是動態的,零散的。
詳情:www.oschina.net/p/huawei-as…

二、LiteOS:華爲物聯網操做系統
Huawei LiteOS 是華爲面向IoT領域,構建的"統一物聯網操做系統和中間件軟件平臺",以輕量級(內核小於10k)、低功耗(1節5號電池最多能夠工做5年),快速啓動,互聯互通,安全等關鍵能力,爲開發者提供 "一站式" 完整軟件平臺,有效下降開發門檻、縮短開發週期。
Huawei LiteOS 目前主要應用於智能家居、穿戴式、車聯網、智能抄表、工業互聯網等 IoT 領域的智能硬件上。
詳情:www.oschina.net/p/liteos
GitHub地址:
github.com/Huawei/Huaw…

三、Apache CarbonData:Hadoop 原生文件格式
CarbonData 是一個爲了更快的交互查詢而生的新的Hadoop原生文件格式,用於大數據的快速分析和多維度查詢hadoop本地數據存儲設計。
在客戶基準上,CarbonData已經展現出管理運行在很是低成本的硬件上的PB級別的數據,而且比目前的開源解決方案快了近10倍。
詳情:www.oschina.net/p/carbondat…

四、ServiceComb:多功能微服務框架
ServiceComb 是華爲開源的一套包含代碼框架生成,服務註冊發現,負載均衡,服務可靠性(容錯熔斷,限流降級,調用鏈追蹤)等功能的微服務框架。
ServiceComb 是華爲 FusionCloud 解決方案中 PaaS 平臺的重要組成部分,內置了高可靠性運行、動態治理等運維階段的高級能力。ServiceComb 目前已應用於華爲自身 IT 的多個核心業務,幫助華爲極大地提高了雲原生應用的開發效率。
ServiceComb 包括應用框架代碼生成,服務註冊發現、服務配置管理、服務監控、服務調用追蹤、多通訊協議支持等功能,具備服務化契約加強、響應式編程範式及多語言 SDK 支持等優點特性。ServiceComb 基於開放的架構,不只能夠支持開發者根據自身業務需求定製業務插件,並且還兼容多種業界流行的微服務框架。
詳情:www.oschina.net/p/serviceco…

五、hindex:HBase 二級索引
hindex 是華爲公司開發的純 Java 編寫的 HBase 二級索引,兼容 Apache HBase 0.94.8。
當前的特性以下:
多個表索引
多個列索引
基於部分列值的索引
使用索引掃描等於和範圍條件
批量加載數據來索引表(索引完成批量加載)
詳情:www.oschina.net/p/hindex
GitHub地址:
github.com/Huawei-Hado…

六、oct:開放容器測試框架
oct 是用於開放容器的測試用例和框架,用 Go 語言開發。
ocp-testing 項目的目標是,經過提供全局測試框架給全部的容器項目,來提升開放容器項目。測試包括,ocp 規範,容器功能和容器性能。
詳情:www.oschina.net/p/oct
GitHub地址:
github.com/huawei-open…

七、streamDM:用於 Spark Streaming 的數據挖掘
streamDM,是由華爲諾亞方舟實驗室開源的使用 Spark Streaming 挖掘大數據的開源軟件。
大數據流學習(Big Data stream learning)比批量或離線學習更富有挑戰性,由於數據在流動的過程當中不太可能保持同一種分佈。並且,數據流中的每個樣本只能被處理一次,不然它們就須要佔用內存進行總結,同時該學習算法也必須很是高效。
Spark Streaming是核心Spark API 的一個擴展,它能讓多個源的數據流處理成爲可能。Spark 是一個可擴展可編程的框架,用於大規模分佈式數據集(也稱爲彈性分佈式數據集(RDD))處理。Spark Streaming 接收輸入的數據流後將數據分批,再由 Spark 引擎處理,生成結果。
Spark Streaming 數據被編成一個 DStreams 序列,內在地表示成一個 RDD 序列。
詳情:www.oschina.net/p/stream-dm
GitHub地址:
github.com/huawei-noah…

八、StreamCQL:流處理平臺查詢語言
StreamCQL做爲華爲FusionInsight產品的重要組件,提供了在分佈式流處理平臺上的類SQL查詢能力,包括窗口計算等高級特性,在開源以前已經在電信、金融等多個行業成功應用,簡化開發工做量數倍。
StreamCQL是一個類SQL的聲明式語言,它用於在流(streams)和可更新關係(updatable relation)上的可持續查詢,目的是在流處理平臺分佈式計算能力之上,經過使用簡易通用的類SQL語言,使得業務邏輯的開發變得統一和簡易。在架構上,除了支持主流的流處理平臺Storm,它支持擴展到多種流處理引擎之上,如Flink。在功能上,StreamCQL彌補了傳統流處理平臺上一些基本業務功能的缺失,除了過濾、轉換等基本SQL能力以外, 還引入基於內存窗口的計算、統計、關聯等能力,以及流數據的拆分、合併等功能。後期StreamCQL的發展方向包括:模式匹配、CQLServer(CQL遠程提交,多語言接口,JDBC接口)、可靠性加強等。
詳情:www.oschina.net/p/streamcql
GitHub地址:
github.com/HuaweiBigDa…

九、96Boards:ARM 開放平臺規範
96Boards 是 ARM 開放平臺規範,是第一個定義 Cortex-A 開發板的開放規範,Cortex-A 是 ARM SoC 供應商提供的低耗能,小腳本 32 位和 64 位開發板。標準化擴展 Peripheral I/O 總線,顯示和相機,容許硬件生態系統開發一系列兼容組件的產品,在其生命週期能夠在任意兼容 96Boards 的平臺上使用。
詳情:www.oschina.net/p/96boards

寫給讀者
愈來愈多的公司正走向開源,編程語言、操做系統、框架、平臺、數據庫等方方面面開源軟件也愈來愈多,這些開源項目爲咱們的工做帶來不少方便,能夠直接「拿來」解決技術問題,不用重複造輪子,提升效率的同時也極大地下降了研發成本。
除了軟件能夠開源以外,研發實踐也能夠開源共享,第六屆TOP100全球軟件案例研究峯會將於11月9-12日在北京國家會議中心舉辦,甄選100個本年度最具行業表明性的軟件研發案例,現場解讀其解決方案和背後的技術邏輯,幫助研發團隊快速提升效能。

更多TOP100案例信息及日程請前往官網查閱。4天時間集中分享2017年最值得學習的100個研發案例實踐。本平臺共送出10張開幕式單天免費體驗票,登陸TOP100summit官網便可申請,數量有限,先到先得。免費體驗票申請入口:www.top100summit.com/?qd=juejin

相關文章
相關標籤/搜索