轉載:https://news.cnblogs.com/n/585988/前端
阿里妹導讀:自從 2011 年宣佈第一波開源項目以來,阿里技術人一直積極參與開源社區共建。開源項目數量每一年都有所增加,目前阿里巴巴已經有 150+ 個開源項目,其中數個項目 star 破萬。相關的 GitHub 2017 年數據統計顯示,阿里巴巴是惟一一家入圍 GitHub 頂尖貢獻名單的中國公司。java
在開源中國舉行的「2017 年度最受歡迎中國開源軟件 Top20」的評選中,阿里巴巴佔據五席位。node
其實,阿里巴巴並無開源項目的 KPI 考覈,各個團隊都是發自心裏地將踩過的坑和總結的經驗融入到開源項目中,供業界全部人使用,但願幫助他人解決問題。這正是社區一致的開源精神,你們均可以站在巨人的肩膀上,每一個人均可以既是老師又是學生,這或許能夠解釋爲何 IT 技術的發展能如此充滿活力。webpack
本文總結整理了 2017 年阿里巴巴九個重要的新開源項目和在開源中國評選中五個備受歡迎的項目,但願能對你們有所幫助。git
構建高性能的分佈式系統程序員
咱們見證了從大型機到分佈式系統的趨勢轉變。大型機部署簡單,無需多個節點配置,可是售價高、維護困難、單點依賴較高;而小型機組建的分佈式系統則在下降成本的同時提升總體的併發量、擴展性和可靠性。相信很多人都據說過數據庫鏈接池 Druid,json 解析 fastjson,消息中間件 RocketMQ,分佈式 RPC Dubbo 這幾個開源項目;今年還有剛開源的飛天緩存 ApsaraCache,自研富容器技術 Pouch 和文件分發系統 Dragonfly。github
分佈式服務治理框架 Dubbo 重大升級web
Dubbo 一個基於 Java 的高性能 RPC 框架,早在 2012 年開源,自開源以來深受國內友商和開源愛好者的青睞,雖然一直陸續在維護,可是因爲用戶羣體龐大,平常維護根本沒法徹底知足社區的旺盛需求。隨着阿里技術的發展,在保證集團內部和客戶服務以外,現在能夠抽調更多經歷將技術賦能全社會。算法
今年 Dubbo 重啓維護並進行了重大升級,Dubbo2 的設計原則強調擴展性、使用輕量及對開源外圍系統和協議的適配,它不只修復了優雅停機、註解配置等一些框架缺陷,還新增了通訊模塊和線程堆棧特性等,框架穩定性有了大幅提高。docker
具體而言,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 還會不斷建設生態系統和社區以及打造國際影響力。
歡迎你們來和 Dubbo 的開發團隊一塊兒探討:
https://gitter.im/alibaba/dubbo
https://github.com/alibaba/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 年中日韓開源論壇的 CJKOSS 大獎,而且已經進入歐美主流開源門戶網站的視野,目前 100 多家公司和科研機構正在使用 RocketMQ。值得一提的是目前美國是 RocketMQ 全球第二大訪問國。
做爲一款分佈式消息引擎,RocketMQ 有以下特性:
低延遲、高併發:99.6% 以上的響應延遲在 1 毫秒之內
面向金融:知足跟蹤和審計的高可用性
工業級適用:可確保萬億量級的消息發送
中立性:支持多種消息傳遞協議,如 JMS 和 OpenMessaging
性能可靠:給予足夠的磁盤空間,消息能夠累積存放而沒有性能損失。
相關連接:
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 Module 屬於 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
互聯時代的用戶端
隨着 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 負責人偏右表示,在這次發佈 AntDesign 3.0 以後,項目已經相對成熟,會進進入較長的持續維護階段,暫時預計不會有巨大的變化;團隊將在視覺佈局和主題配置、國際化、集成化上補齊 Ant Design Pro 的功能,推進其實踐落地。
相關連接:
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://node.console.aliyun.com/
自 2007 年蘋果推出 iPhone 以來,智能手機的普及開啓了移動開發時代,App 開始承載愈來愈多的業務場景,但這也一樣給開發帶來了不小的挑戰。
靈活的 Android 開發框架 Atlas
和大部分開源項目同樣,Altas 也是爲了解決阿里自身遇到的問題。伴隨着手機淘寶的不斷髮展,研發團隊規模擴大,功能愈發複雜,須要端側業務的快速迭代;而開發、運行和運維中遇到的問題不斷增多,也須要及時進行線上 bug 修復。因而手淘團隊開始思考如何將復瑣事情簡單化,如何進行動態部署,提高團隊的移動開發效率。
Atlas 以容器化思路解決大規模團隊協做問題,適用於 Android4.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 商業服務,並便於服務端的發佈。
相關連接:
https://github.com/alibaba/atlas
源自最佳實踐的參考規範
《阿里巴巴 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 引擎,應用模型無需安裝便可使用,並具有獨特的生命週期管理功能。