
6月24日至25日,由中国开源软件推进联盟(COPU)主办的“第十一届开源中国开源世界高峰论坛”在北京成功召开。本届论坛以“深化开源交流,壮大开源平台,服务万众创新,发展共享经济”为主题。 阿里云资深开发数据库工程师郑涔(花名明俨),受邀参与了这次大会,为大家介绍了阿里云与开源项目MongoDB的故事,他的演讲内容大致可分为三部分: MongoDB简介:主要介绍MongoDB项目 利用MongoDB搭建云数据库服务 云数据库MongoDB社区建设 以下是郑涔发言整理内容。 关于MongoDB MongoDB是一个文档型的NoSQL数据库。目前是全世界最受欢迎的文档型数据库之一,仅次于Oracle、MySQL等数据库。 大体认为MongoDB是传统关系型数据库和NoSQL的一个结合。对数据库有所了解的人都知道,传统的关系型数据库需要一些诸如建表、设置字段等复杂操作。而近几年比较火爆的NoSQL,无需建立schema就可以利用一些简单的K/V存储,来实现数据存储。所以说相对于传统的关系型数据库,NoSQL数据库在扩展性、性能等方面更胜一筹。MongoDB结合两者优点。一方面,它在某种程度上像是包含了传统关系型数据库的特性,如具备丰富的查询语句及一些索引功能;另一方面,它也继承了NoSQL的优点,省去了设计字段和表的麻烦,并且拥有较好的性能,可以很方便的进行水平扩展。 MongoDB的主要特性可归纳为如下三点: 灵活动态的文档模型。适用于需要进行快速迭代开发的场景。 高可用。副本集架构具备自动容灾切换的功能。 水平扩展。存储的数据相对比较聚集,便于对数据进行水平分割,提高扩展能力。 具体而言,在传统关系型数据库中,我们需要在设计时考虑数据库要有哪些表,哪些字段,有时候需要在不同的表之间通过Join进行一些复杂的查询操作。而MongoDB的文档模型则不需要那些操作,它存储的是JSON格式的文档,以富文档的形式存储所需数据,通过数据冗余来避免Join,并提高性能。 在高可用方面,它采用了多节点副本集架构,使用户完全不需要关心容灾问题,因为其内部实现了选举算法,如果主节点发生宕机,它能自动地进行新的主节点选举,保证服务可用。这个功能可以用来实现多数据中心支持,以及滚动运维,举个例子,当你需要对系统进行维护的时候,你可以主动把当前的主节点降级为一个备节点,对备节点进行维护,维护好后再提升为主节点。在海量数据的支持及可扩展性方面 ,MongoDB同样做得很出色。用户可以对数据进行水平切割,系统可以自动实现负载均衡,对使用者来说则都是透明的。 在适用场景方面,用户所能想到的场景,MongoDB基本上都能可以胜任,除了一些需要复杂的事务处理的场景。 利用MongoDB搭建云数据库服务 阿里云的MongoDB云数据库服务是基于最新的MongoDB社区版本3.2构建的,存储引擎采用WiredTiger,性能比较优秀。目前该服务的特性主要体现在数据库的高可用、高可靠、高可扩展等方面。 此外,MongoDB云数据库服务拥有一支专业的源码团队,团队核心成员全部都是官方认证的DBA,他们可以做到内核的深度优化。目前他们的工作主要关注在MongoDB内核剖析、为用户提供一些增值服务和创新优化、社区建设等方面。阿里云数据库团队拥有一个中台团队,开发了一系列的系统工具并摸索出一整套的流程,可以方便地把一个开源的数据库做成一个云服务。目前阿里云的MongoDB云数据库服务在高可用方面上做的主要改进就是通过N+1个节点再加上负载均衡的方式来保证用户同时有N个节点可用。用户可以拿到一组包含N个节点的连接地址,这N个地址是会通过一个负载均衡服务动态解析到后端的服务节点。当有节点宕机时,阿里云会根据情况对节点连接地址的指向情况进行动态切换,保证用户始终有N个节点是可用的。 具体来说,当N为2时,用户可以拿到两个连接地址,其中一个连接地址是指向当前主节点的服务,另一个指向当前备节点,那么当主节点发生问题宕机时,这个主节点会自动下线,这时备节点会自动提升为主节点,另外原来的一个隐藏节点会提升为备节点,并且系统会根据情况为用户再新建一个隐藏节点,这样就能始终保持两个节点高可用。隐藏的那个节点平时也可以拿来做一些数据备份等操作,由于用户看不到这个节点,这样不会对用户的访问产生影响。 另外,如果需要为用户提供云服务,系统必须要做一些多租户的安全管理。这里我们是用成熟的cgroup解决方案来做一个多租户的隔离和资源限制,来实现IO、CPU及内存等资源的隔离。同时我们做了一些系统权限的独立,使每个用户的每个实例只能存访自己的一个目录,从而进一步提高安全方面的隔离。另外,我们还将内部使用的管理账号和用户的账号隔离开。因为我们需要让用户的使用更加省心,我们对用户屏蔽了内部的一些细节,包括一些高级的运维命令。此外用户还可以设置白名单来增强安全性。 目前阿里云MongoDB云数据库实现了一些企业版本才有的特性。众所周知,MongoDB除了有一个开源的社区版外,它还有一个收费的企业版,有一些高级特性是企业版才具备的。 阿里云团队也针对社区版本实现了一些企业版才有的特性: 一个是数据库的审计,这是一个重要的功能,大型企业一般都需要这个特性来获知或是处理安全方面的问题,以及用来做用户行为的分析,或者是做一些索引的自动优化建议等; 另一个是对中文索引的支持,原本的社区版本不具备这个中文处理的特性,这对广大的中国开发者来说是一个福音; 另外还包括一些创新优化,如动态调整MongoDB主备同步使用的增量日志的空间占用甚至于自适应的进行调整、对短连接做了性能优化,等等。 这些都是阿里云团队在实际开发运维中遇到的问题,并针对这些问题做的一些改进。 云数据库MongoDB社区建设 MongoDB的发展离不开社区的支持,目前MongoDB的社区人气火爆,用户活跃。在MongoDB开源社区的一些建设中,可以获得的最大的好处就是我们可以站在巨人的肩膀上。现在MongoDB这个开源数据库已经做得非常好了,程序员可以把它拿过来做一些改造、优化以及配套周边服务,来提供云服务。 具体而言,我们首先直接利用了一些现成的基础设施,然后,因为开源,我们团队能够更好地吸引人才,开拓视野并提高软件质量等等。另外,我们当然也要遵守开源协议,对开源产品做出的改进会回馈到社区。这包括我们做的针对原来功能上的改进、新的特性,以及一些Bugfix等等。因为MongoDB公司内部使用的特性和Bug追踪系统是对外开放的,任何人都可以提交一些需求或是代码补丁,并可以看到他们最新的一些进展。还有,我们还会不定期做一些最佳实践,并分享一些博客、文档,共同促进MongoDB在中国的普及和发展,让大家知道并解决实际使用中会遇到的问题,把MongoDB用得更好 ! 云数据库MongoDB首页:https://www.aliyun.com/product/mongodb/
今天我们的阿里巴巴开源技术汇总更新到了第六期,也算是这个系列的最后一期了。回顾这一百多个开源项目,它们凝聚了许多阿里人无数的心血和汗水,但我们相信阿里不会止步,随着阿里对于开源这个理念愈加执着,今后一定会有更加优秀的开源项目源源不断地发布,让广大攻城狮和程序猿们收益。好啦!现在就让我们一起跟随云栖社区,看看在这一期里又有哪些亮点吧! 1.Aliyun OTS 【项目简介】 Aliyun OTS是基于 Node.js 的 Aliyun OTS(Open Table Service) SDK。它具备以下功能:①提供表、视图、表组的创建、删除等基本功能②支持单条数据的插入、查询、修改、删除③支持批量数据的插入、查询、修改、删除④支持事务性操作,保证事务内操作集合的原子性 并且Aliyun OTS可以应用于以下场景:①存储应用产生的海量数据,如电商交易信息、系统详细日志、科研原始记录等,单表数据量能达到百TB级别,支持分区存储②低延迟的实时数据查询,如实时交易处理、历史数据展示等③高并发数据访问,如拥有千万级甚至更多用户的网站交互信息、大量数据采集源的物联网应用等 【架构图】 【源码托管地址】 https://github.com/alibaba/ots 2.Orzdba 【项目简介】 orzdba是阿里开发的一款MySQL测试工具。它的主要功能是将MySQL性能元数据进行计算,统计MySQL/INNODB层面的各种指标(QPS/TPS/thread/buffer/log等)和性能阀值展现。 将Linux和MySQL性能指标结合在一起,更方便的对主机和MySQL压力情况进行展示,能够让管理人员方便快捷地看出目前压力的瓶颈点。 【源码托管地址】 http://code.taobao.org/p/orzdba 3.LuaView 【项目简介】 LuaView 是一种运行在一个 ViewController/Activity 中,可以灵活加载Lua 脚本,并能够按照 Native 的方式运行的一种面向业务的开发技术方案。可以快速开发电商应用中既要求体验又要求灵活性的页面功能,例如首页,类目首页,垂直频道,大促活动会场等。 【架构图】 【源码托管地址】 https://github.com/alibaba/LuaViewSDK 4.OceanBase_client 【项目简介】 OceanBase客户端主要用于开发人员编程时连接Oceanbase数据库。虽然Oceanbase内置了对SQL的支持,用户可以通过libmysql,JDBC等方式直接访问Oceanbase,但由于OceanBase是 一个分布式数据库,可以由多个节点(MergeServer)同时提供SQL服务。而MySQL客户端等都是针对单机系统,在连接OceanBase时, 客户端会绑定其中一台MergeServer进行SQL操作,而不能有效利用其他MergeServer资源。为了实现了多集群间流量分配和多MergeServer间的负载均衡,并给应用开发人员提供一个简单接入方案,阿里团队在libmysql,JDBC的基础上封装一个OceanBase客户端。 5.Min-velocity 【项目简介】 min-velocity 是一个专为代码生成而定制的简化 velocity 模板引擎。它的目标是以 velocity 1.7 为基础, 裁剪出适合用作代码生成的模板引擎。目前它在原有的基础上去除了event机制、macro、stop、evaluate、define、break等等。 【源码托管地址】 https://github.com/pfmiles/min-velocity 6.ADFS 【项目简介】 ADFS(Ali Distributed File System)是基于hadoop开源分布式系统HDFS的一种优化 实现,能够将HDFS中单点master namenode节点中的内存数据结构利用高速存储介质同步到磁盘中,同时能够提供很高的吞吐和性能 。这样做能够同时解决namenode内存瓶颈问题,meta信息持久化问题和单点故障问题,以及启动时间过长等困扰用户的地方。 【源码托管地址】 https://github.com/taobao/ADFS 7.Cube 【项目简介】 Cube 是一套跨终端、响应式、低设计耦合的CSS解决方案。包含全新基础重置、布局、按钮、工具类、字体图标等相对独立的模块。此外还提供专为中文排版优化的type.css,可以快速美化文章的排版。 【架构图】 【源码托管地址】 https://github.com/thx/cube 8.Canvax 【项目简介】 Canvax是一款小型轻便的 canvas 图形框架,它采用 Flash AS3 相同的模式来对绘制元素进行抽象,采用OO的模式方便的管理绘制在Canvas上面的每个元素和进行事件绑定和检测触发,解决Canvas开发面对 无状态的Canvas画布无从下手的尴尬;独树一帜的心跳包主动渲染机制(不再需要定时器轮询)提升渲染性能;在IE9-中使用FlashCanvas解 决Canvas的兼容问题。 【源码托管地址】 https://github.com/thx/canvax 9.websockify-nginx-module 【项目简介】 websockify-nginx-module 使 Nginx 支持将 TCP 协议转化为 websocket 协议,使js + html5 配合 websockify 理论上可以完成 任意tcp 客户的 web 化。目前 websockify 主要用于 noVNC 项目 广泛用于 web 版本的 vnc 的客户端。 【源码托管地址】 https://github.com/tg123/websockify-nginx-module 10.Ossfs 【项目简介】 ossfs 是用Perl语言写的基于 aliyun OSS 的 fuse 客户端。它能够让用户在Linux/Mac OS X 系统中把Aliyun OSS bucket 挂载到本地文件 系统中,使用户能够便捷地通过本地文件系统操作OSS 上的对象,实现数据的共享。 【源码托管地址】 https://github.com/alibaba/ossfs 11.Darko 【项目简介】 Darko 是阿里妈妈的 THX 团队编写的一个站点生成工具,与 Jekyll 兼容,在不便安装 Jekyll 的平台上,可以试试 Darko。 【源码托管地址】 https://github.com/dotnil/darko 12.taobao-pamirs-proxycache 【项目简介】 taobao-pamirs-proxycache是一个使缓存配置和业务代码分离的缓存管理框架。缓存代理通过XML配置,框架使用Spring AOP的方式与业务代码无缝结合。 【架构图】 【源码托管地址】 http://code.taobao.org/p/taobao-pamirs-proxycache 13.Crox 【项目简介】 Crox 是一个由 JavaScript 语言实现的高性能跨语言模板引擎。Crox 模板可以直接在JavaScript环境中使用,也可以翻译成 PHP、 JSP 等其他编程语言的可执行方法或翻译成 Velocity、Smarty 等其他模板引擎的源模板,Crox 通过独有的“模板逻辑直译”技术保证翻译后的结果在各种环境下都具备最佳执行效率。 【源码托管地址】 https://github.com/thx/crox 14.BiSheng.js 【项目简介】 BiSheng.js 是纯粹的数据双向绑定库。BiSheng.js 的名称源自活字印刷术的发明者“毕昇”。因为单向绑定犹如“刻版印刷”,双向绑定犹如“活字印刷”,故名 BiSheng.js。 【源码托管地址】 https://github.com/thx/bisheng 15.KsLite 【项目简介】 KsLite 是 花费10 年开发的一个短小精悍的模块加载器,特别适合在广告投放、广告创意等第三方应用中使用。它的种子文件本身支持异步加载,并可以被多次加载。而其本身已具有现代模块加载器必备的异步的多层依赖处理机制和较完善的包管理及打包机制。 【源码托管地址】 https://github.com/thx/kslite 16.OB configure 【项目简介】 OB Configure是OceanBase配置管理中心,保存了所有的OceanBase Java客户端的配置参数,包括:数据库集群地址、用户名、密码以及数据源本身的配置项。其主要功能为:配置信息集中化管理和操作,简化DBA操作流程, 同时方便OceanbBase Java客户端的升级。 【源码托管地址】 https://github.com/alibaba/OB-Configure 17.TDH_Socket 【项目简介】 TDH_Socket 是一个MySQL daemon 插件, 类似于HandlerSocket。现在TDH_Socket能接受客户端的TCP请求,并且直接通过MySQL的Handler层访问数据,绕开了SQL解析等一系列逻辑。TDH_Socket的Java客户端可以通过在客户端解析SQL的方式提供JDBC接口来提高易用性,并且也不会降低性能 。 【源码托管地址】 https://github.com/alibaba/TDH_Socket 18.Node-hbase-client 【项目简介】 node-hbase-client 是 Node.js 的异步 HBase 客户端,使用纯 JavaScript 实现。 【源码托管地址】 https://github.com/alibaba/node-hbase-client 19.Tsar2bd 【项目简介】 Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告工具,如收集服务器的系统信息(cpu,mem等),以及应用数据(nginx、swift等),收集到的数据存储在服务器磁盘上,可以随时查询历史信息,也可以将数据发送到nagios报警。Tsar能够比较方便地增加模块,只需要按照 tsar 的要求编写数据的采集函数和展现函数,就可以把自定义的模块加入到tsar中。 【源码托管地址】 https://github.com/alibaba/tsar2db 20.Aliyun-openapi-php-sdk 【项目简介】 aliyun-openapi-php-sdk 是阿里云官方为 PHP 开发者提供的阿里云 Open API SDK。 【源码托管地址】 https://github.com/aliyun/aliyun-openapi-php-sdk 21.Brix-bisheng 【项目简介】 brix-bisheng 是一款纯粹的数据双向绑定库工具。 【架构图】 【源码托管地址】 https://github.com/thx/brix-bisheng 22.Asyncload 【项目简介】 Asyncload是一款异步并行加载工具(依赖字节码技术)。用于常用的IO需求,如:①nas上文件 (共享文件存储)②output/xxx (磁盘文件)③memcache client / cat client (cache服务)④database (oracle , mysql) (数据库)⑤dubbo client (外部服务)⑥search client (搜索引擎) 在早期开发的时候因为考虑到I/O阻塞,长的外部环境单个请求处理时间基本都是在几十ms,最终的出路只能异步+并行,从而促使了该开源产品的诞生。 【架构图】 【源码托管地址】 https://github.com/alibaba/asyncload 23.DragonBonesJS 【项目简介】 DragonBonesJS是DragonBones的JS版本,是DragonBones的改进版。而DragonBones是Adobe支持的一个开源项目,用于制作和播放骨骼动画,其首先在Flash和Starling引擎上使用,后续继续推广支持多个游戏引擎,现在已经能很好的支持HTML5和cocos2d-x了。 【架构图】 【源码托管地址】 https://github.com/06wj/DragonBonesJS 24.CNPM 【项目简介】 CNPM 是阿里巴巴开发的一个Nodejs的库,致力于打造私有的 NPM 注册服务。当然,除了私有库功能以外,CNPM官网 (http://cnpmjs.org/) 还提供了NPM同步的服务。 【架构图】 【源码托管地址】 https://github.com/cnpm/cnpm 【相关链接】 阿里巴巴开源技术汇总:115个软件(一)阿里巴巴开源技术汇总:115个软件(二)阿里巴巴开源技术汇总:115个软件(三)阿里巴巴开源技术汇总:115个软件(四)阿里巴巴开源技术汇总:115个软件(五)阿里巴巴开源技术汇总:115个软件(六) 【云栖社区】:对于开源的内容选题,我们也有最新的规划。欢迎对阿里技术开源感兴趣的社区/社群、媒体伙伴和技术开发者,联系社区,一起打造。有意者,可邮件:yqeditor@list.alibaba-inc.com ,邮件主题标注:开源选题策划
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。 【源码托管地址】 http://code.taobao.org/p/taobao_linux_server 【相关链接】 阿里巴巴开源技术汇总:115个软件(一)阿里巴巴开源技术汇总:115个软件(二)阿里巴巴开源技术汇总:115个软件(三)阿里巴巴开源技术汇总:115个软件(四)阿里巴巴开源技术汇总:115个软件(五)阿里巴巴开源技术汇总:115个软件(六)【云栖社区】:对于开源的内容选题,我们也有最新的规划。欢迎对阿里技术开源感兴趣的社区/社群、媒体伙伴和技术开发者,联系社区,一起打造。有意者,可邮件:yqeditor@list.alibaba-inc.com ,邮件主题标注:开源选题策划
在上一期阿里开源技术汇总(阿里巴巴开源技术汇总:115个软件)中,我们向大家介绍了一些有趣的强大的开源工具,想必大家阅读完之后还意犹未尽吧!别着急,第二波新鲜出炉的阿里开源项目汇总现在终于来了, 现在让我们跟随云栖社区一起看看在这期的文章里又出现了哪些好玩刺激的开源项目吧! 1. Velocity.js 【项目简介】 Velocity.js是一个基于velocity模板语法的javascript实现。它具有支持客户端和服务器端使用、支持Node.js环境、支持Vim语法等功能,具备富逻辑语法、语法分析和模板渲染分离等特点。除此之外,Velocity.js还最大限度地保证了对低端浏览器的兼容性,如仅支持es5的浏览器。目前Velocity已经成功地被广泛应用在阿里集团的各个子公司中。 【源码托管地址】https://github.com/shepherdwind/velocity.js 2. Yugong 【项目简介】 Yugong是用纯Java开发的一种数据库迁移工具。通过全量迁移和增量迁移,它实现了整个Oracle数据库到MySQL或DRDS数据库的数据迁徙。Yugong的诞生离不开阿里于08年兴起的一股去IOE(IBM, Oracle和EMC)的浪潮,为了实现这个目标,阿里尝试开发了各种各样的技术和工具,其中就包括Yugong。目前,除了被阿里内部使用,Yugong还帮助了不计其数的互联网公司迁移数据库,为去IOE迈出了坚实的第一步。 【架构图】 【源码托管地址】https://github.com/alibaba/yugong 3.Macaca 【项目简介】 Macaca是一套完整的自动化测试解决方案,它的特性包括支持移动端和PC端、支持Native,Hybrid,H5等多种应用类型和提供客户端工具和持续集成服务。 【源码托管地址】 https://github.com/alibaba/macaca 4.Dexposed 【项目简介】 Dexposed是面向Android应用开发的一个强大的非侵入式的运行时AOP框架。作为阿里巴巴无线事业部第一个重量级 Andorid 开源软件,它基于 ROOT 社区著名开源项目 Xposed的部分成果,并演化为服务于所在应用自身的 AOP 框架。目前它支撑了阿里大部分 App 的在线分钟级客户端 bugfix 和线上调试能力。 【架构图】 【源码托管地址】 https://github.com/alibaba/dexposed 5.Andfix 【项目简介】 AndFix,全称“Andriod hot-fix”,是阿里开源的 Android 应用热修复工具,用来帮助 Android 开发者修复应用的线上问题。AndFix实现原理是方法体的替换,目前支持的平台有Android 2.3 - 6.0,ARM 和 x86 架构,dalvik 运行时和 art 运行时。 【架构图】 【源码托管地址】 https://github.com/alibaba/AndFix 6.Lealone 【项目简介】 Lealone 是一个兼具RDBMS、NoSQL优点的面向OLTP场景的分布式关系数据库。它有商业版和开源版两个不同的版本。其中开源版具有以下的特点:①完全异步化,使用少量线程就能处理大量并发②基于SQL优先级的抢占式调度,慢查询不会长期霸占CPU③创建JDBC连接非常快速,占用资源少,不再需要JDBC连接池④插件化存储引擎架构,内置MVStore存储引擎⑤插件化事务引擎架构,事务处理逻辑与存储分离⑥支持索引、视图、Join、查询、触发器、自定义函数、Order By、Group By和聚合⑦从H2数据库借鉴了大量成熟的代码和思想 【源码托管地址】 https://github.com/lealone/Lealone 7.WindFramework 【项目简介】 windframework是一个轻量级的php开源框架。它以组件工厂为核心,提供了像MVC,数据持久化,视图模板引擎等应用技术。此外windframework采取了一种组件化的开发模式。虽然目前的组件库还不算丰富健壮,但是基于这种开发模式,使组件的扩展变得非常的容易。 windframework拥有一个强健的内核,它实现了基于配置的Ioc控制反转技术。开发者只需要简单的配置,就可以实现类的依赖注入,完全实现了类与类的松耦合。 【架构图】 【源码托管地址】 https://github.com/phpwind/windframework 8.Macaroon 【项目简介】 Macaroon是一个高效的反向代理测试套件,测试框架本身基于python2.7开发,方便跨平台移植;测试例使用格式化描述,做到编程语言无关性。使用Macaroon能够简便快捷的完成测试场景的构造、线上失效案例的重建及被测软件(DUT)的功能、模块、协议一致性测试等。 【源码托管地址】 https://github.com/wb-yinlu/Macaroon 9.Reliable 【项目简介】 Reliable 是由 Macaca 团队的成员开发的分布式架构的持续集成系统。它是用Node.js和Javascript编写的,并且使用MongoDD作为数据源、Redis作为缓存,Docker作为运行环境,具有集群负载,合理调配、提供插件机制,易扩展、部署非常简单、便于接入 Gitlab和Github社区化系统、与 Macaca 无缝融合等特点,因而适用于集成构建、集成构建等场景。 【源码托管地址】 https://github.com/reliablejs/reliable-master 10.React Web 【项目简介】 Readt Web是为那些使用React Native兼容的API构建的Web应用而提供的一个框架。React Web的目的及意义非常明确: 让React Native代码跑在Web上让一套代码运行在各个移动终端,对前端及业务来说,这是开发效率中一个质的提升。 【架构图】 【源码托管地址】 https://github.com/taobaofed/react-web 11.KISSY 【项目简介】 KISSY 是一款跨终端、模块化、高性能、使用简单的 JavaScript 框架。除了完备的工具集合如 DOM、Event、Ajax、Anim 等,它还提供了经典的面向对象、动态加载、性能优化解决方案。作为一款全终端支持的 JavaScript 框架,KISSY 为移动终端做了大量适配和优化,使用户的程序在全终端均能流畅运行。 【架构图】 【源码托管地址】 https://github.com/kissyteam/kissy 12.Tengine 【项目简介】 Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。目前,来自淘宝、搜狗等互联网企业的Tengine团队核心成员正在积极地维护和开发这个开源项目。 【架构图】 【源码托管地址】 https://github.com/alibaba/tengine 13. RocketMQ 【项目简介】 RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点:①能够保证严格的消息顺序②提供丰富的消息拉取模式 ③高效的订阅者水平扩展能力④实时的消息订阅机制⑤亿级消息堆积能力 【架构图】 【源码托管地址】 https://github.com/alibaba/RocketMQ 【相关链接】 阿里巴巴开源技术汇总:115个软件(一)阿里巴巴开源技术汇总:115个软件(二)阿里巴巴开源技术汇总:115个软件(三)阿里巴巴开源技术汇总:115个软件(四)阿里巴巴开源技术汇总:115个软件(五)阿里巴巴开源技术汇总:115个软件(六) 【云栖社区】对于开源的内容选题,我们也有最新的规划。欢迎对阿里技术开源感兴趣的社区/社群、媒体伙伴和技术开发者,联系社区,一起打造。有意者,可邮件:yqeditor@list.alibaba-inc.com ,邮件主题标注:开源选题策划