自從 2011 年宣佈第一波開源專案以來,阿里巴巴的技術人一直積極參與開源社群共建。開源專案數量每年都有所增長,目前阿里巴巴已經有 150+ 個開源專案,其中數個專案 star 破萬。相關的 GitHub 2017 年資料統計顯示,阿里巴巴是唯一一家入圍 GitHub 頂尖貢獻名單的中國公司。

在開源中國舉行的“2017 年度最受歡迎中國開源軟體 Top20 ”的評選中,阿里巴巴佔據五席位。

其實,阿里巴巴並沒有開源專案的 KPI 考核,各個團隊都是發自內心地將踩過的坑和總結的經驗融入到開源專案中,供業界所有人使用,希望幫助他人解決問題。這正是社群一致的開源精神,大家都可以站在巨人的肩膀上,每個人都可以即是老師又是學生,這或許可以解釋為什麼IT技術的發展能如此充滿活力。

本文總結整理了 2017 年阿里巴巴九個重要的新開源專案和在開源中國評選中五個備受歡迎的專案,希望能對大家有所幫助。

互聯時代的使用者端

隨著 Web2.0、Web3.0 時代交迭,無線端硬體效能的提升與使用者體驗理念的倡導,Web 站點與應用變得越來越重要與複雜。這一點可以從 JavaScript 的熱度變化看出來:JavaScript、 Java、PHP 同樣誕生於 1995年,但是三者卻經歷了不同的發展曲線。JavaScript 不斷髮展,熱度漸漲聲名鵲起,GitHub 的 JavaScript語言編寫的開源專案共計 23 萬個位列第一,是第二名 Python 開源專案的 2.3 倍,並且遠超 Java 和 PHP開源專案總和。JavaScript 被越來越多的使用,AJAX 使得它在前端程式設計中大放異彩,而 Node.js 也讓人開始關注 JavaScript 在伺服器端開發的能力。

阿里巴巴向社群貢獻了兩款企業級開源專案: UI 設計語言和 React 實現專案 Ant Design、Web 基礎框架Egg.js。

Ant Design,前端的美好呈現

Ant Design 提煉自螞蟻金服的中後臺設計經驗:在產品互動和視覺風格上,它秉承“微小 · 確定 · 幸福”的理念,追求提升使用者和設計者的使用體驗;積累了豐富、靈活、使用的基礎元件,並準備了常見問題的解決方案;使用 TypeScript 支援完整的型別定義,採用高質量 React 元件可以開箱即用,並且基於 npm + webpack + dva 的企業級開發框架。

回顧 2017 年,Ant Design 主要做了三件事情:

  • Ant Design 2.x 版本持續迭代,版本從 2.6.0 迭代到 2.13.11。
  • 10 月推出了 Ant Design Pro 的前端腳手架,對中後臺常用的場景提供了最佳實踐。
  • 12 月初發布了 Ant Design 3.0,帶來了全新的設計體系和大量新特性。釋出日誌可見:https://medium.com/ant-design/announcing-ant-design-3-0-70e3e65eca0c

在開源兩年多的時間裡,Ant Design 一直通過收集設計和研發的需求進行不斷改進。設計師團隊不斷優化和改進 Ant Design 的設計規範,視覺效果整體調整也體現在本次 3.0 新版本中。而研發層面則會聽取內部與外部的各種業務需求:向社群公開專案開發的長期規劃,尤其是主要目標和破壞性改動,並且日常性地通過釘釘群和 GitHub 中收集大量新需求和問題報告,

與社群保持密切互動。專案有小版本研發的固定週期,每週都會發布 bugfix 版本,每月釋出 minor 版本。

Ant Design 是 React 社群最流行的 UI 元件庫之一,除了阿里巴巴集團,還有騰訊、百度、美團、滴滴和餓了麼等公司在使用。目前 Ant Design 在 GitHub 上擁有 21485 顆 star,是開源中國評選的 2017 年度 Top20最受歡迎中國開源軟體。

Ant Design 負責人偏右表示,在此次釋出 Ant Design 3.0 之後,專案已經相對成熟,會進進入較長的持續維護階段,暫時預計不會有巨大的變化;團隊將在視覺佈局和主題配置、國際化、整合化上補齊 Ant Design Pro 的功能,推動其實踐落地。

相關連結:http://ant.design/  http://pro.ant.design/  https://github.com/ant-design/ant-design

企業級 Web 基礎框架 Egg

企業開始採用微服務架構,這涉及到服務顆粒、API 介面、開發維護等具體任務,前端與後端不得不面對“應該更考慮使用者側的靈活體驗,還是更加配合後端服務的通用性”的爭執。Node.js 在近幾年的蓬勃發展中,慢慢改進了很多被人詬病的黑點:生態上 npm 包數量冠絕全球,改進單執行緒問題,藉助 ES 規範逃離回撥地獄,成熟的 TypeScript 帶來型別系統,效能也得以持續優化。

但是,非常遺憾的是,Node.js 的基建成熟度與生態熱度並不匹配,Node.js 本質上依然似個新生兒:工業界的 Web 框架實踐寥寥無幾;社群重複造輪子,而且缺乏統一參考規範,帶來很多重複、不合理使用的問題;相比應用,Node.js 的基礎技術研究依然很少,如何保證高可用成為重要問題。

阿里的 Node.js 應用始於 2011 年,經歷了重複造輪子等上述困擾之後,開始認真思考起來“如何既能統一生態共建,又能支援差異化定製”。於是,Egg 應運而生,其名寓意“孕育”,是期望成為一個 Web 開發基礎框架,以幫助各團隊在 Egg 之上搭建適配業務的上層框架。Egg 沉澱自大規模企業應用的工程實踐經驗,包括多年穩定支撐天貓雙 11 大促;也經歷了三年四個版本的微核心打磨。

Egg 基於 Koa,但又完全有別於 Sails / LoopBack 等上層框架, Egg 位於它們之間的中間層,提供『微核心 + 外掛機制 + 框架定製能力』,提供了一套統一的約定,為上層框架服務。Egg 是漸進式開發,極具伸縮性,因此既適合個人小專案快速開發,也適合企業級的團隊開發協作。

雖然剛剛開源一年,但是 Egg 已經收到 500+(主庫272)Pull Request,並處理了 1200+個issue,釋出了 40+ 篇共計 10 萬餘字的官方文件。在 GitHub 上收穫 6k+ star,Egg 官網 PV 近萬。在阿里巴巴內部,Egg 服務了 500+ 前端開發者和 1000+ 應用;而在外部,Egg 收到了來自百度、騰訊、全民直播、丁香園等多家公司共計 90 多位技術人員的改進反饋,甚至收到了 Node TSC Director Rog Vagg 在 Twitter 上的關注與轉發 。

未來,Egg 會將重心放在開發者體驗方面的優化上,並且分享更多的最佳實踐。

這裡還需要濃墨重彩地講講阿里的 Node 技術積澱:除了阿里內部的 1000+ 應用,阿里技術人同樣進行了Node.js 底層排坑工作,也與Intel探討如何進一步提高 Node.js 效能。此外,阿里最近剛剛釋出 Node.js 效能平臺,作為企業級效能解決方案,它提供免費的 Node.js 執行時 + 監控診斷服務。

相關連結:https://eggjs.org/  https://node.console.aliyun.com/

自 2007 年蘋果推出 iPhone 以來,智慧手機的普及開啟了移動開發時代,App開始承載越來越多的業務場景,但這也同樣給開發帶來了不小的挑戰。

靈活的 Android 開發框架 Atlas

和大部分開源專案一樣,Altas 也是為了解決阿里自身遇到的問題。伴隨著手機淘寶的不斷髮展,研發團隊規模擴大,功能愈發複雜,需要端側業務的快速迭代;而開發、執行和運維中遇到的問題不斷增多,也需要及時進行線上 bug 修復。於是手淘團隊開始思考如何將複雜事情簡單化,如何進行動態部署,提升團隊的移動開發效率。

Atlas 以容器化思路解決大規模團隊協作問題,適用於 Android 4.x 以上系統版本的大小型 App 開發,並且支援動態發版。一般而言,業界常用解法是外掛化框架,但是考慮到複用性,Atlas採用的元件化模式,將業務拆開並複用公共部分。專案借鑑服務端的 OSGI 思想,將業務拆出來獨立成 bundle,隔離解耦執行,從而實現並行開發、快速迭代和動態部署。

Altas 源自阿里巴巴移動團隊五年的研發積累,進行了靜態元件化和動態元件化的技術準備。在今年正式開源之後,Altas 基本上保持了每兩個月釋出一次大版本,同時做到內部和社群使用同一套程式碼。Altas 完善了穩定性、工具鏈升級及 dexpatch 等方面,具體而言,三個重大的功能點是:動態部署新增 component 支援;dexpatch 功能;bundle 間的 view 複用。

作為初來乍到的開源專案,老實說,Altas 最初並沒有做的盡善盡美,由於專案具有較高的門檻,再加上文件不夠完善,Demo 簡陋,所以遭遇了較多吐槽。Altas 隨即緊急決定建立一個釘釘群,一邊幫助開發者更快的理解和接入 Atlas,一邊完善文件和 Demo。據悉,目前基本上內部很多安卓 App 都使用了 Altas(如天貓、淘寶、蝦米、優酷、阿里雲),而外部至少有三款接入 Altas 的 App 上線,這是令 Altas 團隊非常開心的事情。

Atlas 的願景是“帶你重返 App 開發的田園時代”。未來,Altas 將繼續完善文件、升級工具鏈,降低接入成本、提升穩定性與相容性,並且還會推出配套的 Emas for Atlas 商業服務,並便於服務端的釋出。

相關連結:http://atlas.taobao.org/  https://github.com/alibaba/atlas

構建高效能的分散式系統

業界同樣見證了的從大型機到分散式系統的趨勢轉變。大型機部署簡單,無需多個節點配置,但是售價高、維護困難、單點依賴較高;而小型機組建的分散式系統則在降低成本的同時提高整體的併發量、擴充套件性和可靠性。相信不少人都聽說過資料庫連線池 Druid,json 解析 fastjson,訊息中介軟體 RocketMQ,分散式RPC Dubbo 這幾個開源專案;今年還有剛開源的飛天快取 ApsaraCache,自研富容器技術 Pouch 和檔案分發系統 Dragonfly。

分散式服務治理框架 Dubbo 重大升級

Dubbo 一個基於 Java 的高效能 RPC 框架,早在 2012 年開源,自開源以來深受國內友商和開源愛好者的青睞,雖然一直陸續在維護,但是由於使用者群體龐大,日常維護根本無法完全滿足社群的旺盛需求。隨著阿里技術的發展,在保證集團內部和客戶服務之外,如今可以抽調更多經歷將技術賦能全社會。

今年 Dubbo 重啟維護並進行了重大升級,Dubbo2 的設計原則強調擴充套件性、使用輕量及對開源外圍系統和協議的適配,它不僅修復了優雅停機、註解配置等一些框架缺陷,還新增了通訊模組和執行緒堆疊特性等,框架穩定性有了大幅提升。具體而言,Dubbo 今年釋出了 2.5.4, 2.5.5, 2.5.6, 2.5.7, 2.5.8 等五個版本,主要修復、合併了社群呼聲最高的 issue 和 Pull Request,另外主要做了以下的增強:對 Netty 4 的支援、annotation 的增強、Java 8 的支援、docker 的支援。Dubbo還會繼續完善,如Dubbo Spring Boot starter、RESTful 支援,優雅部署,容錯增強,路由策略增強以及非同步化增強等。

除了框架本身,Dubbo 團隊還重建了官網 (日均 PV 3500+),更新了文件。為了進一步的擴大影響力,對官網、文件、程式碼開始英文化的工作,並初見成效,著名的技術部落格 baeldung 發表了對 Dubbo 的深度介紹  Introduction to Dubbo,並參與了開源中國、InfoQ 的訪談和宣講等活動,併入選開源中國 2017 年度最受歡迎開源軟體 Top20。

Dubbo 之所以進行了重大升級,是因為觀察到與 RPC 特別相關領域的技術趨勢,未來主要會著重向 Cloud Native、多語言增強、微服務支援等幾個方向演進,同時 Dubbo 還會不斷建設生態系統和社群以及打造國際影響力。

歡迎大家來 https://gitter.im/alibaba/dubbo  https://github.com/alibaba/dubbo 的 dubbo 開發團隊一起探討。

分散式訊息中介軟體 RocketMQ

今年 9 月,Apache 軟體基金會官方宣佈,阿里巴巴捐贈給 Apache 社群的開源專案 RocketMQ從Apache社群正式畢業,成為 Apache 頂級專案(TLP)。自此,Apache RocketMQ 成為國內首個非 Hadoop 生態體系、國內首個網際網路中介軟體的 Apache 頂級專案。今年,RocketMQ 還斬獲了第十二屆中日韓開源軟體技術優勝獎和開源中國的“ 2017 年度最受歡迎中國開源軟體 Top20”。

RocketMQ 是阿里巴巴在 2012 年開源的第三代分散式訊息中介軟體,商用版 MQ 可在阿里雲上獲得。歷年雙 11,RocketMQ 都承載著阿里巴巴生產系統 100% 的訊息流轉,以去年雙 11 為例的, RocketMQ 完成了 1.2 萬億訊息精準低延遲投遞,交易峰值高達 17 萬筆/秒。

RocketMQ 來自於中國,但已經引起了全世界範圍的關注。RocketMQ 不僅斬獲 2015 年中日韓開源論壇的CJK OSS 大獎,並且已經進入歐美主流開源入口網站的視野,目前 100 多家公司和科研機構正在使用RocketMQ。值得一提的是目前美國是 RocketMQ 全球第二大訪問國。

作為一款分散式訊息引擎,RocketMQ 有如下特性:

  •  低延遲、高併發:99.6% 以上的響應延遲在 1 毫秒以內
  •  面向金融:滿足跟蹤和審計的高可用性
  •  工業級適用:可確保萬億量級的訊息傳送
  •  中立性:支援多種訊息傳遞協議,如 JMS 和 OpenMessaging
  •  效能可靠:給予足夠的磁碟空間,訊息可以累積存放而沒有效能損失。

相關連結:https://rocketmq.apache.org/    https://github.com/alibaba/rocketmq

資料庫連線池 Druid 和 JSON  庫 Fastjson

Druid 是阿里唯一使用的資料庫連線池,支援雙十一等最嚴苛的使用場景。Druid 有一句 slogan 是“為監控而生的資料庫連線池”。經過六年開源積累,已經相對成熟的 Druid 收穫了不小的知名度與口碑,並陸續成為很多技術團隊解決方案中的關鍵環節。

Fastjson 在服務端開發、Android 客戶端中廣泛使用,阿里幾乎每個 Java 應用都用到了 fastjson。

這是一個高效能功能完善的 JSON 庫,通過“假定有序快速匹配”的演算法,把 JSON Parse 的效能提升到極致,堪稱目前 Java 語言中最快的 JSON 庫。Fastjson 介面簡單易用,已經被廣泛使用在快取序列化、協議互動、Web 輸出、Android 客戶端等多種應用場景。

這兩個相對而言比較成熟的專案,今年並沒有大的功能變更,都是每個月根據社群中反饋的 issue 釋出小版本。未來,Druid 後續會增強監控功能,監控功能和阿里雲相關監控產品對接。其中的 Parser 模組會剝離出做一個專案大力發展。

相關連結:https://github.com/alibaba/druid https://github.com/alibaba/fastjson

雲資料庫 Redis 分支 ApasaraCache

ApsaraCache(飛天快取)是雲資料庫 Redis 版所使用的 Redis 分支,是在社群 2.8 版本基礎上開始維護的分支,並 backport 了部分 3.0 分支的功能,該版本主要解決了雲上使用者對穩定性、效能、災備和平滑升級體驗的訴求。

據瞭解,其實在 ApsaraCache 開源前,該方案就已經擁有很多成功的客戶案例,其中既有視訊直播行業的秒拍、一直播、映客、中國網路電視臺;也有遊戲行業的陌陌遊戲、龍淵網路、中情龍圖、暢遊;同時還有民生類的新聞如今日頭條、交通如高德導航、金融如螞蟻金服、其他如大疆創新,可以說,應用範圍和場景非常廣泛。

ApsaraCache 已經有很多成功的客戶案例了,為什麼要開源呢?原因在於:

  • 1. Redis 在中國的使用者群體和使用方式都發生著深刻的變化,遵循極簡哲學設計的 Redis 在某些場景下的穩定性和效能都受到新的挑戰,另外很多雲上客戶在使用Redis的過程中也碰到了各種各樣的問題,基於這些問題和挑戰,ApsaraCache 對 Redis 進行了大量的重構和改造,為了賦能 Redis 使用者,也為了讓 Redis 開發愛好者能夠更好地參與進來,我們決定對 ApsaraCache 進行開源。
  • 2. Redis 是 BSD License,相對比較自由;最新版本 Redis 4.0 支援 Redis Module 功能,而Redis Modul e屬於 AGPL License,ApsaraCache 後續也會支援 Redis Module 機制並開源功能Module 程式碼。所以 ApsaraCache 開源也是對開源協議的尊重與遵守。
  • 3. ApsaraCache 一直在等待 Redis 4.0 Release 版本的釋出,待該版本釋出之後會積極推動兩邊feature 的融合,爭取 merge 到社群主幹。

Redis 創始人 Salvatore 認為,ApsaraCache 專案開源是一件非常好的事情,將能夠吸引全世界更多 Redis核心專家參與,進一步提升產品的穩定性和可用性。同時,也表明阿里巴巴擁有 Redis 產品開發的能力,希望未來我們一起努力提升產品的各種功能和特性,給 Redis 帶來更多更好的改進。

ApsaraCache 於今年 10 月份正式開源,據悉,其即將釋出新版本會新增兩個功能: 解決了 AOF Rewrite頻繁造成的主機穩定性瓶頸,且支援精確到秒級的按時間點恢復;解決了原生核心在弱網條件下容易複製中斷導致的全量同步問題。

相關連結:https://github.com/alibaba/ApsaraCache

自研富容器技術 Pouch 檔案分發系統 Dragonfly 

Pouch 是阿里內部自研容器技術,目前資料中心執行有數十萬個 Pouch 容器,大規模支撐內部離線線上業務的混部。

首先,Pouch 是一種富容器技術,內部應用體驗類似虛擬機器,擁有init程式,富含多種系統服務;其次,通過核心加固與輕量級虛擬機器支援,Pouch 提供豐富的安全隔離保障和隔離維度;在映象分發上,特別是超大規模場景下可通過 P2P 的方式緩解網路負載;在核心相容性方面,更加符合企業現狀,考慮到大部分企業 IT 系統核心的升級緩慢、版本較低,最大限度適配現有底層基礎設施。

Pouch 與 Dragonfly 使用架構圖

以往大家常用傳統的方式來下載檔案,這帶來兩個問題:首先如果遇到特別大的檔案,下載失敗就要重試,效率低下;其次如果客戶端進行大規模下載, 會把檔案源壓垮。

Dragonfly 中文名“蜻蜓”,蜻蜓是通過 P2P 方式來下載檔案,有效的緩解了檔案源的壓力, 同時還支援斷點續傳,即使因網路環境導致失敗,也無需反覆下載檔案。蜻蜓的另外一個特點是與 Docker、Pouch 等技術的整合,它具備映象預熱等功能,Docker 原生的下載映象速度慢,而採用 P2P 技術的蜻蜓很好地解決了這個問題。

蜻蜓 P2P 容器映象分發示意圖

蜻蜓可以滿足 Docker 或者 Pouch 使用者的較大下載量(如大映象檔案)需求。而對於具備海外節點,蜻蜓也可以節約跨國頻寬的。

據悉蜻蜓有兩個版本:開源版,支援 Apache 2.0 協議,可用於 P2P 檔案分發、容器映象分發、區域性限速、磁碟容量預檢;企業版則還具備斷點續傳、全侷限速、映象預熱、支援記憶體檔案系統、智慧網路流控、智慧動態壓縮、智慧排程策略等功能,該版本內建在雲效、阿里雲容器服務(公共雲、專有云)之中。

相關連結:https://github.com/alibaba/pouch  https://github.com/alibaba/Dragonfly

源自最佳實踐的參考規範

《阿里巴巴Java開發規約

程式設計師的交流是通過程式碼,程式碼的質量好壞與工程、團隊效能息息相關。

阿里眾多資深技術專家與程式碼規約人員共同潛心研製了一套 Java 規約守則,並將對應規則研發了自動化檢測工具(DE 檢測外掛(IDEA、Eclipse))。如此可以使得開發者更加方便、快速將規範推動並實行起來。該外掛在掃描程式碼後,將不符合規約的程式碼按 Blocker/Critical/Major 三個等級顯示在下方,甚至在 IDEA上,我們還基於Inspection機制提供了實時檢測功能,編寫程式碼的同時也能快速發現問題所在。對於歷史程式碼,部分規則實現了批量一鍵修復的功能。

Java 程式碼規約正式以外掛形式公開走向業界,並引領 Java 語言的規範之路。目前,外掛已在雲效公有云產品中整合。

阿里巴巴 P3C 專案組會長期更新與維護外掛,團隊也希望更多的人蔘與進來,除了發現和解決已實現的檢測規則以外,能夠實現更多有益的規則,讓外掛變得更加完善並且幫助到更多的開發者。

相關連結:https://github.com/alibaba/p3c

分散式訊息領域的國際標準標準 OpenMessaging

OpenMessaging 專案由阿里巴巴發起,與雅虎、滴滴出行、Streamlio 公司共同參與創立,專案意在創立廠商無關、平臺無關的分散式訊息及流處理領域的應用開發標準。據發起人介紹,隨著標準的不斷演進,會有更多的網際網路、雲端計算廠商參與到該專案以及生態體系中來。

OpenMessaging 的價值有哪些呢?

在雲端計算時代,訊息通訊已經成為現代資料驅動架構的關鍵環節,訊息中介軟體可以連線資料來源、資料處理引擎和應用程式。然而,全球範圍內,訊息領域仍然存在兩大問題:一是缺乏供應商中立的行業標準,導致各種訊息中介軟體的高複雜性和不相容性,相應地造成了公司的產品低效、混亂和供應商鎖定等問題。二是目前已有的方案框架並不能很好地適配雲架構,即非雲原生架構,因此無法有效地對大資料、流計算和物聯網等新興業務需求提供技術支援。

OpenMessaging 拋棄歷史包袱,輕裝上陣,期望能解決這些弊端。除了做到可以連結跨平臺、跨語言、跨產品和跨雲的標準之外,OpenMessaging 將提供 Cloud Native 的能力,面向雲端計算、混合雲架構,實現多雲平臺無縫遷移,致力於提供金融、電子商務、IoT 及大資料等領域的一站式解決方案。

https://github.com/openmessaging/openmessaging-java/

物聯網時代

早在 1982 年,卡內基梅隆大學就在探討智慧裝置的聯網,這可以算作 IoT 早期概念的誕生,不過其普及流行還是近些年的事情,2005年國際電信聯盟釋出了《ITU網際網路報告2005:物聯網》,其中指出“物聯網”時代的來臨。Gartner 統計資料顯示2016年 IoT 裝置使用數量是64億,並預計該資料在2020年上升至204.1億。

新一物聯網作業系統 AliOS Things

作為一個相對新興的領域,物聯網相關技術的發展依然可圈可點。作業系統市場呈現高度碎片化,很多人採用傳統嵌入式的RTOS,也有人研發新的物聯網作業系統,但是這兩者存在不少的痛點:開發維護成本高,硬體生態/開發工具/功能元件不豐富,系統安全和可靠性無保證,雲端一體應用開發部署難實現等。

AliOS Things 是針對上述痛點而研發的新一代物聯網作業系統:通過提供安全、可靠、可擴充套件和高度優化的基礎 OS, 豐富而有差異化的功能特性和開發工具,雲端一體化的應用框架,致力於為廣大物聯網開發者賦能增效。

AliOS Things 是業界中最廣泛應用的輕量級消費類、連線類和控制類 MCU 的物聯網作業系統。值得一提的是,AliOS Things 依託阿里雲,基於生活、城市、工業等所有主要物聯網應用領域等 IoT 開放平臺,實現了安全裝置管理和升級、語音識別、雲端一體開發和全鏈路優化等高階應用。目前,AliOS Things已經被移植到包括意法半導體(STMicroelectronics)、樂鑫(Espressif)、博通(Beken)等17家國內外晶片廠商的21款晶片之中。

AliOS Things自今年十月份開源以來已經推出3個主要版本,並長期保持穩定的更新節奏;專案有豐富的文件和活躍的開發者社群,目前專案官方網站日均PV 1500+,收到了大量的反饋。AliOS Things 目前已經作為阿里雲所有物聯網業務裝置端上能力的整合平臺推出,並在多個業務專案成功落地。

相關連結:https://github.com/alibaba/AliOS-Things

輕量化作業系統 AliOS Lite

繼 AliOS Things 開源,AliOS 還有將開源 AliOS Lite。AliOS Lite 是面向 IoT 領域的輕量化作業系統,支援更多工處理,支援語音互動、視覺計算等智慧處理,適用於CPU效能和記憶體需求較低(最低支援256MB)的 IoT 裝置,例如智慧音響、智慧手錶、智慧攝像頭等。

同時由於IoT裝置種類繁多、硬體能力差別較大,業界尚不能找到一個相容性較好而且低開發門檻的作業系統,也很難有足夠的機器智慧和安全防護能力支援。

具體而言 AliOS Lite 解決了以下痛點:

1) 可伸縮的系統設計適應低至 256 MB 記憶體的智慧裝置,可配置剪裁的設計適應能力不同的各類裝置,保證在 API (應用程式設計介面)層次上一致的行為;還通過服務依賴流水線、快速渲染、後臺程式統一託管等一系列機制提升系統效率。

2)整合阿里巴巴機器智慧能力,如人臉識別、影像分類等,以 API 的形式提供給開發者;支援主流機器學習框架,例如 Tensorflow、Caffe。

3)強化加固其安全核心,提供輕量快捷的安全升級機制。

4)在低開發門檻同時,保障系統執行輕快高效。應用開發語言JavaScript,提供了完善高效的整合開發環境和工具。創新地支援輕量的多執行緒程式設計,使能多核硬體、支援預編譯和靜態型別,提速應用執行速度 35%, 降低應用記憶體消耗 20%。

總體而言,AliOS lite 的特點是智慧、輕量、可擴充套件、高效和安全等,並具備可配置裁剪的可伸縮設計和高效 JavaScript 引擎,應用模型無需安裝即可使用,並具備獨特的生命週期管理功能。