小米上市!小米開源項(xiàng)目盤點(diǎn)

寫在前面
7 月 9 日,小米在香港掛牌上市,股票代碼 1810.hk。據(jù)了解,小米將香港 IPO 報(bào)價(jià) 16.60 港元,較發(fā)行價(jià)低 2.35%,首日就破發(fā),凈籌資 239.75 億港元,總市值 3714 億港元;共收到約 10.35 億股認(rèn)購申請,相當(dāng)于超額認(rèn)購約 9.5 倍。知情人士稱,李嘉誠、馬云、馬化騰 3 人就認(rèn)購小米份額超過 2.3 億美元。小米早期投資人,回報(bào)達(dá)到 866 倍。

除了手機(jī)等核心業(yè)務(wù)之外,小米有哪些開源技術(shù)同樣值得關(guān)注呢?InfoQ 特意搜集制作了這份小米開源項(xiàng)目列表,以饗讀者。

MACE:移動(dòng)端深度學(xué)習(xí)框架
MACE 是專門為移動(dòng)設(shè)備優(yōu)化的深度學(xué)習(xí)模型預(yù)測框架,從設(shè)計(jì)之初,便針對移動(dòng)設(shè)備的特點(diǎn)進(jìn)行了專門的優(yōu)化:速度、功耗、系統(tǒng)響應(yīng)、初始化延遲、內(nèi)存占用、模型保護(hù)等均有提升。

MACE 支持 TensorFlow 和 Caffe 模型,提供轉(zhuǎn)換工具,可以將訓(xùn)練好的模型轉(zhuǎn)換成專有的模型數(shù)據(jù)文件,同時(shí)還可以選擇將模型轉(zhuǎn)換成 C++ 代碼,支持生成動(dòng)態(tài)庫或者靜態(tài)庫,提高模型保密性。目前 MACE 已經(jīng)在小米手機(jī)上的多個(gè)應(yīng)用場景得到了應(yīng)用,其中包括相機(jī)的人像模式,場景識(shí)別,圖像超分辨率,離線翻譯 (即將實(shí)現(xiàn)) 等。

地址:https://github.com/XiaoMi/mace

Pegasus:分布式 KV 存儲(chǔ)系統(tǒng)
Pegasus 是小米云存儲(chǔ)團(tuán)隊(duì)開發(fā)的一個(gè)分布式 Key-Value 存儲(chǔ)系統(tǒng),最初的動(dòng)機(jī)是彌補(bǔ) HBase 在可用性和性能上的不足。Pegasus 系統(tǒng)的 Server 端完全采用 C++ 語言開發(fā),使用 PacificA 協(xié)議支持強(qiáng)一致性,使用 RocksDB 作為單機(jī)存儲(chǔ)引擎。

Pegasus 具有高可用、高性能、強(qiáng)一致、高擴(kuò)展、易使用的特性,經(jīng)過兩年多的開發(fā),目前已支持了十幾個(gè)業(yè)務(wù)。更多細(xì)節(jié)可閱讀:小米開源分布式 KV 存儲(chǔ)系統(tǒng) Pegasus。

地址:https://github.com/XiaoMi/pegasus

Open-falcon:企業(yè)級(jí)監(jiān)控系統(tǒng)解決方案
Open Falcon 是小米運(yùn)維部開源的一款互聯(lián)網(wǎng)企業(yè)級(jí)監(jiān)控系統(tǒng)解決方案。Open Falcon 是完全用 GO 語言編寫的,主要特性如下:

數(shù)據(jù)采集免配置

容量水平擴(kuò)展

告警策略自發(fā)現(xiàn)

告警設(shè)置人性化

歷史數(shù)據(jù)高效查詢

Dashboard 人性化

架構(gòu)設(shè)計(jì)高可用

官網(wǎng):http://open-falcon.org/

GitHub 地址:https://github.com/open-falcon

rDSN:分布式服務(wù)框架
rDSN 是一個(gè)快速構(gòu)建魯棒分布式系統(tǒng)的框架。它有一個(gè)可插拔組件的微內(nèi)核,包括應(yīng)用程序、分布式框架、devops 工具和本地運(yùn)行時(shí) / 資源提供程序,支持它們的獨(dú)立開發(fā)和無縫集成。這個(gè)項(xiàng)目最初是為微軟必應(yīng)開發(fā)的,現(xiàn)在已經(jīng)在微軟內(nèi)部和外部的生產(chǎn)中被采用。

GitHub 地址:https://github.com/XiaoMi/rdsn

Shepher:Zookeeper 管理工具
Shepher 是一款 ZooKeeper 的管理工具,小米用它作為配置管理中心。

Shepher 具有以下特性:

ZooKeeper 節(jié)點(diǎn)的可視化操作

ZooKeeper 節(jié)點(diǎn)的快照管理

ZooKeeper 節(jié)點(diǎn)修改的 Diff 和 Review 功能

ZooKeeper 節(jié)點(diǎn)操作郵件通知

集成 CAS 和 LDAP 登錄

權(quán)限管理

GitHub 地址:https://github.com/XiaoMi/shepher

LInden:基于 Lucene 的實(shí)時(shí)搜索系統(tǒng)
Linden 是一個(gè)基于 Lucene 創(chuàng)建的實(shí)時(shí)搜索系統(tǒng)。它提供一個(gè)類似 SQL 查詢語言接口,名為 BQL。BQL 簡單而直接。Linden 提供一個(gè)非常簡單的方式來調(diào)整搜索結(jié)果排名。你可以在你的查詢中傳遞一段 java 評分代碼甚至一個(gè)評分插件類名。Linden 也支持通過 linden 靈活查詢從低指數(shù)水平自定義評分邏輯,你可以獲得每一個(gè)查詢詞匹配的信息,所以你可以制作一個(gè)非常直觀的評分邏輯。這對初學(xué)者來說是非常方便的。

GitHub 地址:https://github.com/XiaoMi/linden

Rose:Web 開發(fā)框架
Rose 是一個(gè) Java 的 Web 開發(fā)框架。Rose 提供各種特性和約束慣例,從而使開發(fā)者能夠輕松地開發(fā) web 程序。Rose 整合技術(shù),強(qiáng)調(diào)最佳實(shí)踐,甚至包括名稱規(guī)范。Rose 規(guī)范了對 Spring 的使用,同時(shí)允許開發(fā)者放置 applicationContext-xxx.xml 文件來擴(kuò)展 Rose。

GitHub 地址:https://github.com/XiaoMi/rose

Chronos: 時(shí)間戳服務(wù)器
小米公司開發(fā)的實(shí)現(xiàn)高可用、高性能、提供全局唯一而且嚴(yán)格單調(diào)遞增 timestamp 的服務(wù)。Chronos 采用主備架構(gòu),主服務(wù)器掛了以后備服務(wù)器迅速感知并接替服務(wù),從而實(shí)現(xiàn)系統(tǒng)的高可用。服務(wù)端使用 Thrift 框 架,經(jīng)測試每秒可處理約 60 萬次 RPC 請求,客戶端單線程每秒可請求 6 萬次 (本地服務(wù)器),保證高性能與低延時(shí)。全局只有唯一的 ChronosServer 提供服務(wù),分配的 timestamp 保證嚴(yán)格單調(diào)遞增,并且將已分配的值持久化到 ZooKeeper 上,即使發(fā)生 failover 也能保證服務(wù)的正確性。

GitHub 地址:https://github.com/XiaoMi/chronos

Themis:HBase 跨行 / 跨表的事務(wù)處理
Themis 是小米公司開發(fā)的,為 HBase 提供了跨行 / 跨表的事務(wù)處理,基于 Google 的 percolator。

Themis 通過基于 HBase 的單行事務(wù)的兩階段提交和沖突解決來保證交叉行事務(wù)的 ACID 特性。Themis 依賴于 Chronos 來提供嚴(yán)格遞增的全局時(shí)間戳,它定義事務(wù)的全局順序,并使 Themis 能夠在給定的時(shí)間戳之前讀取數(shù)據(jù)庫快照。Themis 采用 HBase 協(xié)處理器框架,無需改變 HBase 源代碼即可應(yīng)用。我們對它們的正確性進(jìn)行了幾個(gè)月的驗(yàn)證,并對算法進(jìn)行了優(yōu)化,以獲得更好的性能。

GitHub 地址:https://github.com/XiaoMi/themis

Android_tv_metro:安卓版 TV Metro 框架和服務(wù)器 API
Android_tv_metro 是一款安卓版 TV Metro 框架和服務(wù)器 API,開發(fā)語言為 Java。

API 和數(shù)據(jù)結(jié)構(gòu)

專輯和顯示項(xiàng)目:Metro 風(fēng)格是由兩個(gè)元素構(gòu)成

專輯可以包含多張專輯和顯示項(xiàng)目

顯示項(xiàng)目可以被定義為視頻,游戲,應(yīng)用程序,音樂等

您可以從顯示項(xiàng)目中刪除你自己的游戲 / 應(yīng)用 / 視頻詳細(xì)條目

GitHub 地址:https://github.com/XiaoMi/android_tv_metro

Minos:分布式的發(fā)布和監(jiān)控系統(tǒng)
Minos 是小米公司開發(fā)的一個(gè)分布式的發(fā)布和監(jiān)控系統(tǒng)。最初是小米開發(fā)的用來在 Hadoop 和 ZooKeeper 集群上發(fā)布和管理的工具。Minos 可輕松擴(kuò)展來支持其他的系統(tǒng),目前已經(jīng)支持包括 HDFS、YARN 和 Impala 。

GitHub 地址:https://github.com/XiaoMi/minos

寫在最后
恭喜小米成功上市,希望小米能保持初心,在技術(shù)上也能做出更多感動(dòng)人心的好開源項(xiàng)目來!

原創(chuàng): 小智 [InfoQ](javascript:void(0);)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容