2023年11月30日发(作者:)

阿里巴巴的10款开源项目

一、框架

react-webReadt Web是为那些使用React Native兼容

API构建的Web应用而提供的一个框架。React Web

目的及意义非常明确: React Native代码跑在Web上让

一套代码运行在各个移动终端,对前端及业务来说,这是开

发效率中一个质的提升。

JstromJStorm是参考storm的实时流式计算框架,在网

IO线程模型、资源调度、可用性及稳定性上做了持续改

进,已被越来越多企业使用。经过4年发展,阿里巴巴JStorm

集群已经成为世界上最大的集群之一,基于JStorm的应用

数量超过1000个。数据显示,JStorm集群每天处理的消息

数量达到1.5PB 2015年,JStorm正式成为Apache

Storm里的子项目。JStorm将在 Apache Storm里孵化,

孵化成功后会成为Apache Storm主干。 Apache基金会

官方表示,非常高兴JStorm能够成为Apache Storm社区

的一员。

Dubbo高性能优秀的服务框架,使得应用可通过高性能的

RPC 实现服务的输出和输入功能,可以和 Spring框架无缝

集成。Dubbo is a distributed, high performance RPC

framework enpowering applications with service

import/export capabilities.

KissyKISSY 是一款跨终端、模块化、高性能、使用简单

JavaScript 框架。除了完备的工具集合如 DOMEvent

AjaxAnim 等,它还提供了经典的面向对象、动态加载、

性能优化解决方案。作为一款全终端支持的 JavaScript

架,KISSY 为移动终端做了大量适配和优化,使用户的程序

在全终端均能流畅运行。

DexposedDexposed是面向Android应用开发的一个强

大的非侵入式的运行时AOP框架。它基于 ROOT 社区著

名开源项目 Xposed的部分成果,并演化为服务于所在应用

自身的 AOP 框架。目前它支撑了阿里大部分 App 的在线

分钟级客户端 bugfix 和线上调试能力。

TDDLTDDLTaobao Distributed Data Layer),是淘

宝根据自己的业务特点开发了框架,主要解决了分库分表对

应用的透明化以及异构数据库之间的数据复制,它是一个基

于集中式配置的 jdbc datasource实现,具有主备,读写分

离,动态数据库配置等功能。

WebxWebx是建立在Java Servlet API基础上的通用

WEB框架。用Webx搭建的应用可以运行在任何一个标准

WEB应用服务器上面:TomcatJettyJbossWeblogic

Webx是基于经典MVC设计模式的WEB框架Spring,并

且可以被其它组件扩展。Webx不仅能够用来开发高度可定

制的Web应用,也能够用来帮助用户开发高度可扩展的非

WEB的应用。

MagixMagix 是用于构建大型富交互单页应用的前端

MVC框架。

BrixBrix 是基于 KISSYPC端)和 ZeptoSeaJS

(移动端)底层类库的应用层组件框架。

CanvaxCanvax是一款小型轻便的 canvas 图形框架,

它采用 Flash AS3 相同的模式来对绘制元素进行抽象

PloverPlover是一个专注于 模块化方式构建web应用

NodeJs MVC web框架。不同于其它web框架,它提供

完整的应用和模块化模型可以让复杂的业务功能可以方便

地抽象成多个模块的方式进行独立开发,让应用可以像搭积

目的方式拼装模块而成。

二、组件

DruidDruidJava语言中最好的数据库连接池。Druid

能够提供强大的监控和扩展功能。

Fastjsonfastjson 是一个性能很好的 Java 语言实现的

JSON 解析器和生成器。

MacaroonMacaroon是一个高效的反向代理测试套件,

测试框架本身基于python2.7开发,方便跨平台移植;测试

例使用格式化描述,做到编程语言无关性。使用Macaroon

能够简便快捷的完成测试场景的构造、线上失效案例的重建

及被测软件(DUT)的功能、模块、协议一致性测试等。

UploaderUploader是一个非常强大的异步文件上传组

件,支持ajaxiframeflash三套方案,实现浏览器的全

兼容,调用非常简单,内置多套主题支持 和常用插件,比

如验证、图片预览、进度条等。

AliJVMAliJVM基于OpenJDK HotSpot VM,是国内第

一个优化、定制且开源的服务器版Java虚拟机。目前已经

在淘宝、天猫上线,全部替换了Oracle官方JVM版本,在

性能,功能上都初步体现了它的价值。

KChartsKCharts是基于Svg的图表组件库,兼容IE6+

等主流浏览器。基于淘宝js框架KISSY的图表组件库,包含

折线图、曲线图、柱状图、散点图、饼图、地图等常用图表。

nginx-tfsnginx-tfs Nginx 的扩展模块用于访问淘宝

TFS 文件系统。

transmittable-thread-local

transmittable-thread-local是阿里用Java开发的用于多

线程的的组件。

nginx-http-sysguardnginx-http-sysguard 是阿里巴

巴开发的一个 Nginx 模块,用来保护运行 Nginx 服务器

的系统负载和内存使用不会太高。

java-dns-cache-manipulator用编码的方式设置/查看

JVMDNS(实际上设置的是DNS Cache支持JDK 6+

支持IPv6

三、引擎

是一个基于velocity模板语法的

javascript实现。它具有支持客户端和服务器端使用、支持

环境、支持Vim语法等功能,具备富逻辑语法、语

法分析和模板渲染分离等特点。

QlexpressQuick Laconic Express是高效简洁的类java

语法动态脚本引擎。

Simple ELSimple EL是一个表达式解析引擎。它将表达

式解析分成四个部分:预处理、编译、缓存和执行。这四个

步骤任意一部分都可以替换,类似设计模式中的Template

Method

xtemplatextemplate是独立的富逻辑模板引擎,基于浏

览器和 的可扩展的模板引擎库。

nQuerynQuery引擎是来自阿里的数据中间层,主要为

应对大数据场景的在线查询的三大难题:长数据、宽数据、

杂数据, 广泛参考 Big QueryImpala PL/SQL

MySQL PgSQL 等,结合自身业务特点,自行精

设计、实现的一套类SQL 语言(nSQL)及解析、执行

引擎。

Min-velocitymin-velocity 是一个专为代码生成而定制

的简化 velocity 模板引擎。它的目标是以 velocity 1.7

基础, 裁剪出适合用作代码生成的模板引擎。

四、数据库/存储

AliSQLAliSQL 是基于 MySQL 官方版本的一个分支,

阿里云数据库团队维护,目前也应用于阿里巴巴集团业务以

及阿里云数据库服务。该版本在 MySQL 社区版的基础上做

了大量的性能与功能的优化改进。尤其适合电商、云计算以

及金融等行业环境。AliSQL 版本在强度和广度上都经历了

极大的考验。最新的 AliSQL 版本不仅从其他开源分支比

如:PerconaMariaDBWebScaleSQL 等社区汲取精华,

也沉淀了阿里巴巴多年在 MySQL 领域的经验和解决方案。

AliSQL 增加更多监控指标,并针对电商秒杀、物联网大数

据压缩、金融数据安全等场景提供个性化的解决方案。“在

通用基准测试场景下,AliSQL 版本比 MySQL 官方版本有

70% 的性能提升。在秒杀场景下,性能提升 100 倍。

OceanBaseOceanBase是一个支持海量数据的高性能分

布式数据库系统,实现了数千亿条记录、数百TB数据上的

跨行跨表事务,由淘宝核心系统研发部、运维、DBA广告、

应用研发等部门共同完成。

TairTair是由淘宝网自主开发的Key/Value结构数据存储

系统,在淘宝网有着大规模的应用。

TFSTFSTaobao FileSystem是一个高可扩展、高可用、

高性能、面向互联网服务的分布式文件系统,其设计目标是

支持海量的非结构化数据。目前,国内自主研发的文件系统

可谓凤毛麟角。淘宝在这一领域做了有效的探索和实践,

Taobao File SystemTFS)作为淘宝内部使用的分布式文

件系统,针对海量小文件的随机读写访问性能做了特殊优

化。

AliRedis(计划开源):AliRedis是阿里团队针对Redis

常维护中出现的不足而在Redis原有基础上做出的深度改

进。具体而言,AliRedis采用多线程master + N*work

作模式,并且抛弃save, bgsave, aof等三种原有的模式.

redisDB lock模式,除此之外,它还优化了jemalloc,

用大内存页。

WaspWasp 是类Google MegaStore & F1的分布式关

系数据库。它是分布式的、支持SQL的、事务型数据库。

ADFSADFS(Ali Distributed File System)是基于hadoop

开源分布式系统HDFS的一种优化 实现,能够将HDFS

单点master namenode节点中的内存数据结构利用高速存

储介质同步到磁盘中,同时能够提供很高的吞吐和性能。

五、平台/系统

Zeus宙斯是一个完整的Hadoop的作业平台 Hadoop

任务的调试运行到生产任务的周期调度 宙斯支持任务的整

个生命周期。

DataXDataX 是阿里巴巴集团内被广泛使用的离线数据同

步工具/平台,实现包括 MySQLOracleHDFSHive

OceanBaseHBaseOTSODPS 等各种异构数据源之

间高效的数据同步功能。

ReliableReliable 是由 Macaca 团队的成员开发的分布

式架构的持续集成系统。它是用Javascript编写

的,并且使用MongoDD作为数据源、Redis作为缓存,

Docker作为运行环境,具有集群负载,合理调配、提供插

件机制,易扩展、部署非常简单、便于接入 GitlabGithub

社区化系统、与 Macaca 无缝融合等特点,因而适用于集

成构建、集成构建等场景。

ToastTOAST(Toast Open Automation System for Test)

是一淘广告技术测试团队开发的一套自动化测试任务调度

平台。

cnpmjsCNPM是阿里巴巴开发的一个私有npm 仓库和

web服务。

RubyGems Mirror Web page

ali_kernel RHEL6 source codes 基础上做的更新,

以及一些新功能加入。

六、解决方案:

Hilo一套HTML5跨终端的互动游戏解决方案。Hilo支持

了多届淘宝&天猫狂欢城等双十一大型和日常营销活动。内

核极简,提供包括DOMCanvasFlashWebGL等多种

渲染方案,满足全终端和性能要求。支持多种模块范式的包

装版本以及开放的扩展方式,方便接入和扩展。提供对2D

物理,骨骼动画的内建和扩展支持。

Weex移动端高性能动态化,跨平台移动开发解决方案,

A framework for building Mobile cross-platform UI

MacacaMacaca是一套完整的自动化测试解决方案,它

的特性包括支持移动端和PC端、支持Native,Hybrid,H5

等多种应用类型和提供客户端工具和持续集成服务。

F2etestF2etest是一个面向前端、测试、产品等岗位的多

浏览器兼容性测试整体解决方案。F2e test = Front to End

Test = 前端测试。

LuaViewLuaView 是一种运行在一个

ViewController/Activity 中,可以灵活加载Lua 脚本,并

能够按照 Native 的方式运行的一种面向业务的开发技术

方案。

CubeCube 是一套跨终端、响应式、低设计耦合的CSS

解决方案。包含全新基础重置、布局、按钮、工具类、字体

图标等相对独立的模块。

BeeHiveBeeHive是用于iOSApp模块化编程的框架

实现方案,吸收了Spring框架Service的理念来实现模块

间的API耦合。

七、工具

TsarTsar是淘宝的采集工具,主要用来收集服务器的系统

信息(如cpuiomemtcp等)以及应用数据(如squid

haproxy nginx等),tsar支持实时查看和历史查看,方便

了解应用和服务器的信息!

yugong阿里巴巴去Oracle数据迁移同步工具(全量+

,目标支持MySQL/DRDS)

AndFixAndFix,全称“Andriod hot-fix”,是阿里开源

Android 应用热修复工具,用来帮助 Android 开发者

修复应用的线上问题。AndFix实现原理是方法体的替换,

目前支持的平台有Android 2.3 - 6.0ARM x86 架构,

dalvik 运行时和 art 运行时。

tblivetblive开源项目对应的产品是千牛主播,是一个独

立的PC端主播工具,基于开源软件OBS Studio来修改定

制,增强了交互和功能上的可用性,同时引入统一登陆sdk

),可以支持淘宝账号的验证以及免

url的拼接,能更好的支持淘系webview页面。

canal阿里巴巴mysql数据库binlog的增量订阅&消费组

件。

RAP是通过GUI工具帮助WEB工程师更高效的管理接口

文档的工具。它在管理的同时通过分析接口结构自动生成

Mock数据、校验真实接口的正确性,使接口文档成为开发

流程中的强依赖。正因为有了结构化的API数据,RAP可以

为使用者做更多地事,从而避免更多重复劳动。

tclip自动头像识别的图片裁剪项目。

TProfilerTProfiler是一个可以在生产环境长期使用的性

能分析工具.它同时支持剖析和采样两种方式,记录方法执行

的时间和次数,生成方法热点 对象创建热点 线程状态分析

等数据,为查找系统性能瓶颈提供数据支持。

Tao-ReviewBoardTao-ReviewBoard是淘宝开发的基

eclipsereviewboard插件,能很好的解决安装和使用

的问题。

是一款模拟数据生成器,旨在帮助前端

攻城师独立于后端进行开发,帮助编写单元测试。

Flex GateWay Flex GateWay 提供了 VPNSNAT

础服务。

Sqlautoreview淘宝开源的SQLautoReview是一个SQL

自动化审核的程序。

ossfsossfs 是用Perl语言写的基于 aliyun OSS fuse

客户端。它能够让用户在Linux/Mac OS X 系统中把Aliyun

OSS bucket挂载到本地文件 系统中,使用户能够便捷地通

过本地文件系统操作OSS 上的对象,实现数据的共享。

DarkoDarko 是阿里妈妈的 THX 团队编写的一个站点生

成工具,与 Jekyll 兼容,在不便安装 Jekyll 的平台上,可

以试试 Darko

AsyncloadAsyncload是一款异步并行加载工具(依赖字

节码技术)。用于常用的IO需求。

DragonBonesJSDragonBonesJSDragonBones

JS版本,DragonBones的改进版。DragonBones

Adobe支持的一个开源项目,用于制作和播放骨骼动画。

otter阿里巴巴分布式数据库同步系统(解决中美异地机

)

FreelineFreeline是蚂蚁聚宝团队在Android平台上的量

身定做的一个增量开发的工具,支持mPaas

uirecorderUI 测试用例录制工具。

八、中间件

RocketMQ"消息队列(Message Queue,简称MQ

是阿里云商用的专业消息中间件,是企业级互联网架构的核

心产品,基于高可用分布式集群技术,搭建了包括发布订阅、

消息轨迹、资源统计、定时(延时)、监控报警等一套完整

的消息云服务。RocketMQ:是MQ的开源版本"

CobarCobar是提供关系型数据库(MySQL)分布式服

务的中间件,它可以让传统的数据库得到良好的线性扩展,

并看上去还是一个数据库,对应用保持透明。

Tbschedule一种异步任务处理系统,目的是用来可以提

高用户体验,以及增大系统的可扩转性,正因为它的种种优

势和特性,Tbschedule得到大量的应用。

九、Web Server

TengineTengine是由淘宝网发起的Web服务器项目。

它在Nginx的基础上,针对大访问量网站的需求,添加了很

多高级功能和特性,是目前全球9 大流行web server之一。

Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫

商城等得到了很好的检验。它的最终目标是打造一个高效、

稳定、安全、易用的Web平台。

AnyProxyAnyProxy 是一个基于 的代理服务

器。代理服务器是个中间人,站在了客户端和服务端中间,

双方通信的每个比特,都会滴水不漏地经过它。它控制了完

整的请求头、请求体、响应头、响应体,可以在客户端与服

务端都无感知的情况下介入处理所有的流程。

十、设计

Ant-designAnt Design 是一个致力于提升『用户』『设

计者』使用体验的中台设计语言。它模糊了产品经理、交互

设计师、视觉设计师、前端工程师、开发工程师等角色边界,

将进行 UE 设计和 UI 设计人员统称为『设计者』利用统

一的规范进行设计赋能,全面提高中台产品体验和研发效

率。