阿里巴巴开源技术汇总:115个软件(三)
Hi~大家好,第三期阿里开源技术汇总又和大家见面了!在这一期中我们又给大家带来了20个项目的介绍,保证能让你们看得大呼过瘾。准备好了吗?现在就让我们跟随云栖社区一起看看在这期的文章里出现的哪些新鲜刺激的开源项目吧!
1.Weex
【项目简介】
Weex是阿里近日在Qcon大会上宣布开源的一款跨平台移动开发工具。Weex不仅能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,而且并支持iOS、安卓、YunOS及Web等多端部署。
【架构图】
【官网地址】 http://alibaba.github.io/weex
2.Apns4j
【项目简介】
apns4j 是 Apple Push Notification Service 的 Java 实现,目前1.0.1版已经发布。
【源码托管地址】 https://github.com/teaey/apns4j
3.BugFree
【项目简介】
BugFree 是一款借鉴微软公司软件研发理念、免费且开放源代码、基于Web的精简版Bug管理系统。BugFree基于PHP和MySQL开发,其服务器端在Linux和Windows平台上都可以运行;客户端也无需安装任何软件,通过IE,FireFox等浏览器就可以自由使用。使用这款软件,企业可以保证质量、控制进度,并使产品可持续发展。
【架构图】
【源码托管地址】https://github.com/taobao/BugFree
4.TDDL
【项目简介】
TDDL(Taobao Distributed Data Layer),是淘宝根据自己的业务特点开发了框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个基于集中式配置的 jdbc datasource实现,具有主备,读写分离,动态数据库配置等功能。它具有以下优点:
1.数据库主备和动态切换2.带权重的读写分离3.单线程读重试4.集中式数据源信息管理和动态变更5.剥离的稳定jboss数据源6.支持mysql和oracle数据库7.基于jdbc规范,很容易扩展支持实现jdbc规范的数据源8.无server,client-jar形式存在,应用直连数据库9.读写次数,并发度流程控制,动态变更10.可分析的日志打印,日志流控,动态变更。
【架构图】
【源码托管地址】 https://github.com/alibaba/tb_tddl
5.PHPWind
【项目简介】
PHPWind是阿里开发的一套论坛系统。它采用 php+mysql 数据库,运行并可生成 html 页面的全新且完善的强大系统。它具有网站统筹化、技术专业化、友好人性化三大特点,出色的访问速度和卓越的负载能力更令它深受国内外朋友的喜爱。
【源码托管地址】 https://github.com/alibaba/phpwind
6.TFS
【项目简介】
TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据。目前,国内自主研发的文件系统可谓凤毛麟角。淘宝在这一领域做了有效的探索和实践,Taobao File System(TFS)作为淘宝内部使用的分布式文件系统,针对海量小文件的随机读写访问性能做了特殊优化,承载着淘宝主站所有图片、商品描述等数据存储。
【架构图】
【源码托管地址】 https://github.com/alibaba/tfs
7.Webx
【项目简介】
Webx是建立在Java Servlet API基础上的通用WEB框架。用Webx搭建的应用可以运行在任何一个标准的WEB应用服务器上面:Tomcat、Jetty、Jboss、Weblogic。 Webx是基于经典MVC设计模式的WEB框架Spring,并且可以被其它组件扩展。Webx不仅能够用来开发高度可定制的Web应用,也能够用来帮助用户开发高度可扩展的非WEB的应用。目前Webx在阿里巴巴集团内部被广泛使用。
【架构图】
【源码托管地址】 https://github.com/webx/citrus
8.FourInOne
【项目简介】
FourInOne(中文名字“四不像”)是一个四合一分布式计算框架。它提供了四合一的分布式框架功能(即整合了Hadoop、Zookeeper、MQ、分布式缓存的主要功能)和简单易用的编程API,从而实现了对多台计算机CPU、内存、硬盘的统一利用,最终获取到强大计算能力去解决复杂问题。
【架构图】
【源码托管地址】 http://git.oschina.net/fourinone/fourinone
9.Uploader
【项目简介】
Uploader是一个非常强大的异步文件上传组件,支持ajax、iframe、flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持 和常用插件,比如验证、图片预览、进度条等,广泛应用于淘宝网,比如退款系统、爱逛街、二手、拍卖、我的淘宝、卖家中心、导购中心等。
【架构图】
【源码托管地址】 https://github.com/kissygalleryteam/uploader
10.DataX
【项目简介】
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。目前DataX在淘宝内部每天约有5000道同步任务分布在全天各个时段,平均每天同步数据量在2-3TB。
【架构图】
【源码托管地址】 https://github.com/alibaba/DataX
11.Httpsender
【项目简介】
httpsender是一款轻量级的http压力测试工具,由淘宝的测试工程师用Java语言开发完成。它可以指定并发连接数发送指定数目的请求,还可以自定义请求的header头。请求的URL支持通过正则表达式指定范围,同时也支持从文件随机或顺序读取。它还具备验证数据是否完整和错乱等较高级的功能。默认应用环境为Linux。
【源码托管地址】http://dl.dbank.com/c0vxx27aa5
12.CobarClient
【项目简介】
CobarClient是一个基于iBatis和Spring的轻量级分布式数据访问框架(DDAL)。它具有一些特点:主要特性:
①可以支持垂直和水平数据切分数据库集群的访问;
②支持双机热备的HA解决方案, 应用方可以根据情况选用数据库特定的HA解决方案(比如Oracle的RAC),或者选用CobarClient提供的HA解决方案.
③小数据量的数据集计(Aggregation), 暂时只支持简单的数据合并.
④数据库本地事务的支持, 目前采用Best Efforts 1PC模式的事务管理.
⑤数据访问操作相关SQL的记录, 分析等.(可以采用国际站现有Ark解决方案,但CobarClient提供扩展的切入接口)
【架构图】
【源码托管地址】 https://github.com/alibaba/cobarclient
13.F2etest
【项目简介】
F2etest是一个面向前端、测试、产品等岗位的多浏览器兼容性测试整体解决方案。通过在项目中采用开源的HTML5远程解决方案Guacamole、Server版Windows和跨浏览器、跨服务器的hosts共享技术hostsShare,F2etest最终实现了以下的功能:
①硬件利用率提高10倍以上,降低了企业运营成本
②提供极佳的用户体验,因而提高了测试效率
③提供真实浏览器环境,还原真实测试场景
【架构图】
【源码托管地址】 https://github.com/alibaba/f2etest
14.AliRedis
【项目简介】
AliRedis是阿里团队针对Redis日常维护中出现的不足而在Redis原有基础上做出的深度改进。具体而言,AliRedis采用多线程master + N*work 工作模式,并且抛弃save, bgsave, aof等三种原有的模式.采用redisDB lock模式,除此之外,它还优化了jemalloc, 采用大内存页。
【架构图】
15.Canal
【项目简介】
Canal是纯Java开发的数据异地同步工具。它能够提供的基于日志增量订阅和消费支持的业务有:
①数据库镜像
②数据库实时备份
③多级索引 (卖家和买家各自分库索引)
④search build
⑤业务cache刷新
⑥价格变化等重要业务消息
目前Canal主要支持了mysql。
【架构图】
【源码托管地址】 https://github.com/alibaba/canal
16.Taocode
【项目简介】
taocode(淘蝌蚪)是淘宝网推出的开源平台。它具有平台化和社区化两个特征。
1).平台化
a) 完善项目管理过程工具平台
b) 提供更多代码级工具
c) 提供更多文档化工具
2).社区化
a). 提供更好的交流平台
b). 增加更多的持续性生态化平台功能
【架构图】
【官网】http://code.taobao.org/
17.JStorm
【项目简介】
Storm 是一个类似Hadoop MapReduce的系统。如果用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,Jstorm将这个任务跑起来,并且按7 * 24小时运行起来,一旦中间一个worker 发生意外故障, 调度器立即分配一个新的worker替换这个失效的worker。因此,从应用的角度,JStorm 应用是一种遵守某种编程规范的分布式应用。从系统角度, JStorm一套类似MapReduce的调度系统。 从数据的角度, 是一套基于流水线的消息处理机制。
【架构图】
【源码托管地址】 https://github.com/alibaba/jstorm
18.Athrun
【项目简介】
Athrun以Mobile自动化为基础,以PC2Mobile为切入点,是淘宝Mobile测试日常工作必备的平台。目前Athrun支持:
①Android上的自动化测试,包括自动化测试框架,持续集成体系。覆盖率工具和自动录制回放工具,也在试用完善中。
②iOS上的自动化测试,包括注入式自动化框架AppFramework,和基于录制的非注入式自动化框架Athrun_IOS,还有持续集成体系。目前两个框架在淘宝测试内都有用户群,都还在不断使用和演进过程中。AppFramework将会支持socket通信方式。
【源码托管地址】 http://code.taobao.org/p/athrun/src/
19.Cobar
【项目简介】
Cobar是提供关系型数据库(MySQL)分布式服务的中间件,它可以让传统的数据库得到良好的线性扩展,并看上去还是一个数据库,对应用保持透明。自Cobar实际投入运用以来,它接管了3000+个MySQL数据库的schema,集群日处理在线SQL请求50亿次以上。
集群日处理在线数据流量TB级别以上,并且到目前为止,该产品在阿里巴巴稳定运行3年以上。
【架构图】
【源码托管地址】 https://github.com/alibaba/cobar
20.TaoLinux
【项目简介】
TaoLinux是淘宝团队基于淘宝多年服务器优化积累, 内核优化经验对Linux做出的改版。它默认安装tengine等服务 没有GUI界面 基于RHEL 6.2。