港股上市!小米開源項目盤點

InfoQ2018-07-12 05:32:29

作者|小智
寫在前面

7 月 9 日,在香港掛牌上市,股票代碼 1810.hk。據瞭解,小米將香港 IPO 報價 16.60 港元,較發行價低 2.35%,首日就破發,淨籌資 239.75 億港元,總市值 3714 億港元;共收到約 10.35 億股認購申請,相當於超額認購約 9.5 倍。知情人士稱,李嘉誠、馬雲、馬化騰 3 人就認購小米份額超過 2.3 億美元。小米早期投資人,回報達到 866 倍。

除了手機等核心業務之外,小米有哪些開源技術同樣值得關注呢?InfoQ 特意蒐集製作了這份小米開源項目列表,以饗讀者。

MACE:移動端深度學習框架

MACE 是專門為移動設備優化的深度學習模型預測框架,從設計之初,便針對移動設備的特點進行了專門的優化:速度、功耗、系統響應、初始化延遲、內存佔用、模型保護等均有提升。

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

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

Pegasus:分佈式 KV 存儲系統

Pegasus 是小米雲存儲團隊開發的一個分佈式 Key-Value 存儲系統,最初的動機是彌補 HBase 在可用性和性能上的不足。Pegasus 系統的 Server 端完全採用 C++ 語言開發,使用 PacificA 協議支持強一致性,使用 RocksDB 作為單機存儲引擎。

Pegasus 具有高可用、高性能、強一致、高擴展、易使用的特性,經過兩年多的開發,目前已支持了十幾個業務。更多細節可閱讀:小米開源分佈式 KV 存儲系統 Pegasus。

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

Open-falcon:企業級監控系統解決方案

Open Falcon 是小米運維部開源的一款互聯網企業級監控系統解決方案。Open Falcon 是完全用 GO 語言編寫的,主要特性如下:

  • 數據採集免配置

  • 容量水平擴展

  • 告警策略自發現

  • 告警設置人性化

  • 歷史數據高效查詢

  • Dashboard 人性化

  • 架構設計高可用

官網:http://open-falcon.org/

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

rDSN:分佈式服務框架

rDSN 是一個快速構建魯棒分佈式系統的框架。它有一個可插拔組件的微內核,包括應用程序、分佈式框架、devops 工具和本地運行時 / 資源提供程序,支持它們的獨立開發和無縫集成。這個項目最初是為微軟必應開發的,現在已經在微軟內部和外部的生產中被採用。

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

Shepher:Zookeeper 管理工具

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

Shepher 具有以下特性:

  • ZooKeeper 節點的可視化操作

  • ZooKeeper 節點的快照管理

  • ZooKeeper 節點修改的 Diff 和 Review 功能

  • ZooKeeper 節點操作郵件通知

  • 集成 CAS 和 LDAP 登錄

  • 權限管理

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

LInden:基於 Lucene 的實時搜索系統

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

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

Rose:Web 開發框架

Rose 是一個 Java 的 Web 開發框架。Rose 提供各種特性和約束慣例,從而使開發者能夠輕鬆地開發 web 程序。Rose 整合技術,強調最佳實踐,甚至包括名稱規範。Rose 規範了對 Spring 的使用,同時允許開發者放置 applicationContext-xxx.xml 文件來擴展 Rose。

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

Chronos: 時間戳服務器

小米公司開發的實現高可用、高性能、提供全局唯一而且 timestamp 的服務。Chronos 採用主備架構,主服務器掛了以後備服務器迅速感知並接替服務,從而實現系統的高可用。服務端使用 Thrift 框 架,經測試每秒可處理約 60 萬次 RPC 請求,客戶端單線程每秒可請求 6 萬次 (本地服務器),保證高性能與低延時。全局只有唯一的 ChronosServer 提供服務,分配的 timestamp 保證嚴格單調遞增,並且將已分配的值持久化到 ZooKeeper 上,即使發生 failover 也能保證服務的正確性。

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

Themis:HBase 跨行 / 跨表的事務處理

Themis 是小米公司開發的,為 HBase 提供了跨行 / 跨表的事務處理,基於 Google 的 percolator。

Themis 通過基於 HBase 的單行事務的兩階段提交和衝突解決來保證交叉行事務的 ACID 特性。Themis 依賴於 Chronos 來提供嚴格遞增的全局時間戳,它定義事務的全局順序,並使 Themis 能夠在給定的時間戳之前讀取數據庫快照。Themis 採用 HBase 協處理器框架,無需改變 HBase 源代碼即可應用。我們對它們的正確性進行了幾個月的驗證,並對算法進行了優化,以獲得更好的性能。

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

Android_tv_metro:安卓版 TV Metro 框架和服務器 API

Android_tv_metro 是一款安卓版 TV Metro 框架和服務器 API,開發語言為 Java。

API 和數據結構

  • 專輯和:Metro 風格是由兩個元素構成

  • 專輯可以包含多張專輯和顯示項目

  • 顯示項目可以被定義為視頻,遊戲,應用程序,音樂等

  • 您可以從顯示項目中刪除你自己的遊戲 / 應用 / 視頻詳細條目

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

Minos:分佈式的發佈和監控系統

Minos 是小米公司開發的一個分佈式的發佈和監控系統。最初是小米開發的用來在 Hadoop 和 ZooKeeper 集群上發佈和管理的工具。Minos 可輕鬆擴展來支持其他的系統,目前已經支持包括 HDFS、YARN 和 Impala 。

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

寫在最後

恭喜小米成功上市,希望小米能保持初心,在技術上也能做出更多感動人心的好開源項目來!

今日薦文

點擊下方圖片即可閱讀

Python 3 永遠不可能出現在臉書……嗎?




很多程序員把時間都浪費在了查錯上,究其根本的原因,是基礎知識不夠完整。@左耳朵耗子 程序員成長攻略,我會通過實操經驗與方法帶你把基礎打紮實,跨過普通碼農與高段位程序員的分水嶺。

限時拼團 ¥ 199 ,僅剩最後一天。 

閱讀原文

TAGS: