一个封闭的国家,即便有一时的兴盛,最终也逃不掉落后、挨打的命运;一个封闭的企业,就算一时形成技术垄断,最终也会被超越、遭淘汰。当今世界开放是主流,国家在开放,企业在开源,越来越多的企业,借助开源技术推动企业创新。阿里巴巴就是其中之一。
在2017云栖大会之开源技术峰会上,阿里巴巴发布了OpenMessaging和ApsaraCache两个开源项目,并宣布GitHub、Hashicorp两家公司成为技术合作伙伴。两个开源项目,加上与开源领域两家非常重要的公司达成合作,引起我们强烈的兴趣,阿里未来的开源之路要如何走?为此我们梳理了阿里巴巴集团的开源历程。
拥抱开源
在开源的道路上,阿里巴巴已经走得很远。根据阿里官方资料显示,目前阿里巴巴开源和维护的开源项目超过150个,涵盖中间件、开发框架、数据库和各种工具类软件。仅2016年,阿里巴巴就开源了Ant Design、Hilo、Weex、Freeline、Macaca、AliSQL,EGG等软件。
在开源中国公布的“2016年度最受欢迎中国开源软件评选TOP20”榜单中,阿里巴巴独占4席,分别是:数据库连接池Druid、JSON解析库Fastjson、分布式服务框架Dubbo、分布式消息中间件Apache RocketMQ。
Alibaba在GitHub上Star数超过17万,组织排名前十;其中Weex、Ant Design、Dubbo、Fastjson四个项目在GitHub上Star已经破万。
阿里巴巴对开源的贡献有两点:
1、都是成熟的技术,经历千锤百炼; 都是将最好的贡献出来。项目都是经历阿里内部打磨、乃至是已经取得了商业成功的产品。
2、已经取得了世界范围的认可。比如不到一年就已经孵化成Apache基金会的顶级开源项目的RocketMQ;有很多是受到欢迎的项目,阿里巴巴在GitHub上总star数量组织排名前十。特别是,OpenMessaging作为阿里巴巴发起的一个本领域内国际化标准,已经获得了雅虎、滴滴出行、Streamlio等公司的全力支持和积极参与。
阿里巴巴将自身千锤百炼的成熟技术甚至是已经取得了商业成功的最好产品贡献出来,其中到底有什么深意呢?
开源的核心是连接,社区的根本是连接。阿里巴巴的平台将“消费者和商家连接在了一起,这个平台不仅是个渠道,也从消费者获得了非常多反馈。能够快速地根据消费者的需求,来做出满足消费者要求的产品。其实,开源社区也非常像这个模式。”
众所周知,阿里巴巴是做一家做平台的公司,无论是电商、云还是物流,本质上都是在做平台。平台需要流动、需要活力,开源社区也是如此,开源社区把众多分别在不同地域、不同公司的技术人员和用户连接起来。同时,丰富适用的功能,良好顺畅的沟通环境,为开源软件带来了源源不绝的生命活力,同样也带来了广大使用者来追随和参与。参与开源,掌控开源,最终做到将开源的核心技术为我所用,这不但可以提升企业形象,还可以更好地服务用户。
当前阿里云在底层技术上和英特尔、红帽等有紧密的合作,主要集中在Linux内核、虚拟化、OS层面,同时和开源社区也有着密切的技术互动与对接;在上层的应用平台层,有容器技术、开发者工具、软件集成、代码管理等都采用了开源,与开源社区有合作和应用。简单来说,除了分布式操作系统飞天这一层,往上往下阿里云都是应用、集成开源软件,或者与开源社区合作共建的。
GitHub排名(https://gitstar-ranking.com/organizations)截图
现在,阿里巴巴已经宣布与GitHub、Hashicorp两家公司成为技术合作伙伴。此前,阿里巴巴捐赠开源的RocketMQ已被Apache基金会接纳为全球顶级项目。
目前,GitHub企业版已经上架了阿里云国际云市场,让开发者能够更方便地在云上使用开源软件,将开源和云连接;阿里云开发者产品CodePipeline和GitHub的企业版实现了集成,这样阿里云用户不仅可以直接在阿里云上使用GitHub企业版,还可以将GitHub企业版与与CI/CD环节联动,从而打通云上DevOps流程。同样,阿里云今天和Hashicorp的资源编排软件Terraform、镜像制作软件Packer也做了集成。今天,在Hashicorp的官网可以看到,开发者能够使用开源软件做多云,做跨云的资源管理和编排,让IaaS的理念更加的开放。尤为值得一提的是,借助这些开源项目,不少在国际主流的开源软件、开源社区逐步开始和中国云厂商有了交流,也让中国的开发者能够更便捷地使用和参与到国际主流的开源项目中去。
通过在应用平台层技术、开发者工具、软件、代码管理等方面集成开源,阿里云为用户提供了全面且丰富的应用开发环境。在方便阿里云用户云端应用与管理的同时,为阿里云聚集了大批的忠实用户。
提升在标准领域的发言权
在2017杭州·云栖大会之开源技术峰会上,阿里巴巴正式发布的全球化OpenMessaging和ApsaraCache两个开源项目是阿里在开源路上最新成果。
据悉,OpenMessaging项目由阿里巴巴发起,与雅虎、滴滴出行、Streamlio公司共同参与创立,项目意在创立厂商无关、平台无关的分布式消息及流处理领域的应用开发标准。
OpenMessaging抛弃了历史包袱,轻装上阵,期望能解决传统消息中间件的弊端。除了做到可以跨平台、跨语言、跨产品和跨云之外,OpenMessaging还提供云原生(Cloud Native)的能力,面向云计算、混合云架构,实现多云平台无缝迁移,致力于提供金融、电子商务、IoT及大数据等领域的一站式解决方案。
ApsaraCache是在社区2.8版本基础上开始维护的分支,并backport了部分3.0分支的功能。与Redis相比,ApsaraCache的显著特点是与场景有关、与数据规模无关,并且在短连接、内存满时回收、耗时指令执行等场景表现优秀。
值得一提的是,ApsaraCache不仅兼容Memcached协议,而且复用Redis架构为Memcache带来了新的生命,如支持了持久化、主备容灾、备份恢复、慢日志审计、信息统计等功能。
从OpenMessaging和ApsaraCache两个新公开的开源项目可以看出,一个是信息通讯标准,一个内含管控相关协议。阿里巴巴正在进行着从企业内部标准和协议,向国际化、公开化标准协议的转变。我们期望随着阿里巴巴在相关领域的开源付出,可以让我们在相关标准领域有更大的发言权力,让中国标准走向世界。
为了做好开源工作,阿里巴巴积极加入各种开源组织,包括自由软件基金会(2012年)、Apache软件基金会(2015年11月)、Linux基金会(2015年8月)、MariaDB基金会(2017年3月)、CNCF基金会(2017年6月)、NTF基金会(2017年3月), Open Computer基金会(2017年6月)等在内的多家国际知名开源组织。其中,大多数基金会都是国内首家参与到该组织的互联网公司。
和一些IBM、HPE、红帽等IT巨头一样,阿里巴巴不仅是从开源社区汲取营养,学习成长,在长大后还回报社区。长久以来,国外对中国IT界有着误解(只拿不贡献、沉默不参与)。除了贡献优秀的开源项目,阿里巴巴通过积极参与到开源组织中去,尽到企业的责任,为中国企业赢得尊重。
同时,我们也很欣慰地看到,随着阿里巴巴加入各大基金会之后,带动了国内同行相继加入。这对于中国IT企业在国际开源界上树立良好形象是很好的事情,大企业需要担当起相应的责任。
今天,阿里贡献出了RocketMQ、OpenMessaging,在世界范围被关注和认可。透过阿里,我们可以相信,中国IT人已经可以贡献乃至引领业界的发展。下面这张长图比较完整的展现了这些内容。
图2 阿里活跃在多个开源社区
开源的阿里,打造开放的未来
最后让我们展望一下阿里巴巴开源技术的未来。
首先,阿里开源的形式会越来越立体化,从Java开发规约的开放和OpenMessaging标准的开放,都可以看到阿里的开源不是拘于一个代码库形式的开放,更是一种开发理念,一种经验积累的开放和建设。
其次,云会给开源带来更多的可能和想象空间,云和开源会互相拥抱和支持。
开发者在日常工作中或多或少都会接触到开源软件,云要为开发者提供更多的便利和效率,势必要和开源软件合作与集成,让开发者能够比本地更高效的运用到开源技术。比如,在2016年阿里云OSS成为Hadoop社区官方的存储技术,就降低了社区和云服务的门槛,说明开源社区开始接受了云计算。再比如,开源机器学习框架Tensorflow,如果开发者想要在本地环境进行搭建和训练,需要花费数周甚至月的时间单位,而在云上(比如阿里云)今天的解决方案上则是分钟级别的建立。
今天的开源比以前更复杂,有可能是端跟云端的结合,比如无服务计算领域的Serverless,就是在云计算的能力被开发者理解之后推出的开源项目。但这也是趋势,比如在近年来发展势头迅猛的CNCF就是针对云原生的概念发展起来开源基金会,越来越多的企业和开发者会逐步从本地架构转变为云原生的架构,相应的开源技术也会越来越多。
最后,在互联网时代,软件连接了各个开发者,开源社区围绕着开源软件建立了开发者交流的平台。而下一个时代是IoT,是智能物联网的时代,阿里巴巴今天开源自己的AliOS Things(物联网操作系统)就是为了将在下一个时代能够连接更多的开发者,相信无论是阿里还是开源社区,将来在AI、IoT上都会有越来越多的技术涌现和开放出来。
原文发布时间为:2017年11月7日
本文作者:董培欣