ApacheCon北美站参会见闻,RocketMQ全力出击

开发 开发工具
在开源领域,ApacheCon和OSCON是最负盛名的两大顶会(从今年开始,Linux基金会又推出了Open Source Summit,每年全球巡回举行)。

一、ApacheCon简介和议程

在开源领域,ApacheCon和OSCON是最负盛名的两大顶会(从今年开始,Linux基金会又推出了Open Source Summit,每年全球巡回举行)。ApacheCon可以看作是Apache Committer的全球集会,参加分享的Speaker除了Apache董事会下的各路President,Chairman,Director, Officer等,当属Committer最多,他们大多数为一线顶级的工程师&架构师。平时大家都是邮件里沟通往来,借着每年一次的ApacheCon欢聚一起,聊开源,谈技术,确是一件快事。

本次ApacheCon北美站的官方Slogan是“TOMORROW'S TECHNOLOGY TODAY.”没错,透过这次会议,我们确实看到了一些未来几年会在Apache社区、甚至会撬动整个开源领域的技术方向,比方说Serverless技术、深度学习等。再比方说Apache RocketMQ(哈哈,这也是我们团队的目标之一)。今年的大会还专门把大数据部分拆了出去,为期三天的会议实际上也分了两个议题 - ApacheCon和Apache BigData。因为是同期举行,我们并没有去领略Apache BigData的风采,不过透过分享嘉宾的Topic简介,我们还是能够管中窥豹,领略其中一二。

总的日程安排上,本次大会有30多个主题方向, 4个子会议(ApacheIoT、CloudStack Collaboration Conference、FlexJS Summit 和TomcatCon),共计200多个演讲,规模不可谓不大~

二、Day1第一天

我们主要参加了BarCampApache,有些类似workshop。每个人先做简短自我介绍,从介绍中抽取相关话题,如下图。大家围绕着这些主题一起交流讨论,氛围确实很轻松,也利于发挥(不过还是有一些小紧张,毕竟学校毕业后就没怎么正经的和老外“勾搭”过)。我们主要共享了3个话题,分别是“MQ in Practice”,“Differences between Queue”和“Open Source in China”。在简单介绍了Apache ActiveMQ,Apache Kafka和Apache RocketMQ之间设计上和功能特性上的区别后,一位德国小哥,追着我们问“RocketMQ是否已经全面替换了Kafka”,“从从你的介绍中,似乎RocketMQ已经全面超越Kafka了,是吗”哇,多么具有挑衅的问题啊,而我们的回答也是不亢不卑,既体现了中国人的谦逊,也表明了我们对RocketMQ产品的信心。也正是透过这次简单的讨论,引起了更多的同学来听我们第三天的技术分享。有位印度小哥,在我们分享完了过来,和我说“很想听下你们的分享,没想到来晚了”我连忙安慰他说“There is a video in apache official, you can watch it !”,他这才“悻悻”离开。

 

[[193375]][[193376]]

三、第二天上午-Keynote环节

BarCampCon可以看做是ApacheCon的一个预热,正式的会议今天拉开了序幕,通过下面的Agenda,我们可以看到上午是基本上都是Keynote,和国内的Qcon一样,主要是一些大佬们致辞。首先来自Apache基金会的President Sam的分享“Keynote: State of the Feather - Sam Ruby, President, Apache Software Foundation”。关于Sam的个人介绍,大家可以参看这里(https://apachecon2017.sched.com/event/9yTE/keynote-state-of-the-feather-sam-ruby-president-apache-software-foundation)。Sam的介绍也基本围绕着Apache的要义上,上图说明。

[[193377]]

Community over Code的理念是对Apache社区18年的精髓提炼。但我们看这个问题切不可偏薄,在强调社区重要性的同时,也要关注产品,关注设计,关注代码。Apache开源项目,我读过源码的项目不在少数,困扰我内心的疑惑也是在看到这句话后有了一丝理解。为什么Apache很多顶级项目的代码写的没有想象中的那么好,有的项目早期的代码甚至可以用“惨不忍睹”来形容。我想社区提出这个理念的是好的,是站在大家具备了一定工匠代码能力的前提下提出来的。在大家都关注代码可读性,可维护性,可扩展性之外,强调思路外延,产品理念外延。也正因为有了很好的社区,很好的群众基础,你的产品才会被更多的人接纳,被更多人喜欢。所以我们看这个问题,一定要先立足我们的产品设计,编码测试等。

我们现在还属于Podlings状态,团队今年也在尝试去运营一个更多元化,更健康的社区,争取早日成为TLP。

接下来,是来自Hortonworks的Co-founder Alan Gates的分享Training Our Team in the Apache Way。谈到Hortonworks,我想大家应该不陌生,尤其是Hadooper们,作为Hadoop商业化三驾马车之一的Hortonworks,在开源方面的贡献真不少,如下图:

[[193378]]

他们通过和Apache合作,分享Apache开源理念与研发机制,培养更多的,更高产的Open Source Coder。这个与后面的Jim分享的InnerSource的思路可以联系起来,利用开源软件优秀的研发理念,运作内部项目,从而获得成功。

[[193379]]

接下来是来自ApacheCon白金赞助商IBM的Keynote: Apache CouchDB: A Tale of Community, Cooperation and Code。可能很多同学都不是太了解这个存在了近十年的Apache顶级项目。MongoDB是和它对应的非Apache产品,它们都是文档型NoSQL数据库。这次也主要是以产品介绍为主。

最后一个keynote来自剑桥美女博士Sandra Matz的关于数字化心里评测方面的分享,与传统那种“照镜子”的问题式方式不同,数字化充分利用我们的社会数据,借助如Twitter, Instagram, facebook, google+等社交媒体,将个人的数字化足迹转换为psychological profiles,利用这些评判人的性格(Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism etc.),像Facebook这样的社交媒体甚至可以以此为参考来做精准营销,协同推荐等。整个议题感觉和这次大会不是很搭,但是讲到性格特征时,会场笑声朗朗,氛围甚是轻松。

四、第二天下—技术Session环节

Keynote完了之后,接下来就是CoffeeBreak,短暂休息之后,开始技术烧脑分享。和国内Qcon一样,Apache 80多个topic,被安排到了6个半天里,同一时刻有至少4个topic同时进行,而我们关注重点主要集中在了Apache Way、MQ、IoT、大数据、性能相关。下面挑几个我们参加的分会场给大家分享一下。

1、Netflix公司关于Cassandra在Netflix的应用

首先是来自Netflix公司云数据架构师Vinay Chella带来的Cassandra的分享,在我们的记忆里,Cassandra火了两把,第一次是它刚开源的时候,借着Bigtable,Dynamo等知名存储模型,那个时候国内也有很多人研究应用它。再后来就是2.0出来。相比于HBase,Cassandra更适合于实时事务处理(这两者的对比,大家可以参考这篇HBase vs. Cassandra: NoSQL Battle!)。Netflix同学的分享开头先提出了一个CDE(Cloud Database Engineering)的概念(在Netflix内部,Responsible for providing data stores as services @ Netflix)。

而Cassandra在Netflix的体量大体上有上万的节点,PB的数据规模,每秒百万的事务处理。面临的挑战也基本上围绕在运维监控层面,产品的敏捷迭代。考虑到Cassandra的存储模型(先记录日志CommitLog,然后数据开始写入到 Column Family 对应的 Memtable 内存中,在满足一定条件时,再把 Memtable 的数据批量的刷新到磁盘上,存储为 SSTable ),监控围绕在延迟(主要和Coordinator相关),集群的健康状况(如Gossip问题,Thrift服务状态,Dmesg等硬件情况,日志错误等)。Netflix同学分享了它们的monitoring方案,不仅仅是快照,可以实时监控成千上万的节点和集群

接下来讲了一堆Maintenance的工具,大体是是自己基于开源开发的一些运维监控,解决备份,故障恢复,集中式配置管理,Token的自动分发等。在接下来比较有意思的是它的开源工具Benchmarking工具

最后,把所有的一切Stitching it together,提出了它们的Cassandra服务架构。

2、Apache Commons Crypto: Another wheel of Apache Commons

接下来的topic是“Apache Commons Crypto: Another wheel of Apache Commons”常见的密码学原语都有哪些呢?

Apache Commons Crypto 是一个高性能的加密库,使用 AES-NI (Advanced Encryption Standard New Instructions) 进行优化,通过JNI的形式封装了OpenSSL。它的发展也比较有意思,早起被用在Hadoop(HDFS)加解密、编解码体系中,有17+倍性能提升。后来Intel和Apache Commons社区合作,推出了Apache Commons Crypto工具,旨在收益其它大数据项目,如Spark等。Crypto提供了Low level Cipher API, Stream API, Random API。接下来分享了为什么要造这个轮子,既然有了JCE(Java Cryptography Extension)

而Crypto性能之高归纳起来,大致有这么几点1. AES算法固化到硬件层面(Intel®AES-NI)。2 利用指令集的并行机制。最后,到底有哪些大数据组件使用了该算法呢?

3、InnerSource 101 and The Apache Way

接下来,由我们的导师Jim,也是Apache软件基金会的 co-founder分享了InnerSource 101 and The Apache Way.

基本的原则有哪些,社区和代码之间的关系如何?

关于社区的思考又是如何的? 总体上来讲,Jim的分享还是让我很受启发的。虽然只是一些方法以及一些相对宽泛的原则性指导。但Apache 18年的历史长河孕育了无数成功开源项目的经验,让我钦佩不已。开源软件的产品经验,社区孵化都可以反哺到我们的日常工作,甚至是商业包装上来,关于这一点,消息团队也在不断探索,期待有一天能把我们的思考也分享出来。

4、NTT公司在IoT业务上采用Kafka踩过的10个大坑

接下来的主题,我们重点去听了日本NTT DATA Corporation关于IoT的分享。说是IoT,其实用了大量篇幅在讲Kafka作为连接服务器在大规模部署中遇到的问题以及解决方案。最近团队上线了Kafka服务,通过和Apache RocketMQ的后台服务打通,期间也踩了不少坑,做了很多改进和优化。大家如果有需求,欢迎来Aliware MQ官网来试试。

[[193382]]

5、ActiveMQ Artemis 2.0

接下来是RedHat同学关于Artemis的分享,说实话我关注它很久了(主要是感兴趣它的产品形态)。原型是JBoss的HornetMQ,之前和Apache ActiveMQ做了融合,作为其子项目在Apache社区孵化。不过从这次的分享来看,2.1版本和ActiveMQ做了整合,如下图:

从协议支撑来讲,比Apache RocketMQ要丰富一些,也做了自己的线路层协议。用它自己的话来说是protocol agnostic。剩下的介绍了一些它内部的异步存储机制,高可用,传输层Netty的使用以及优化等。说到这,要提下我们在做的OpenMessaging这个项目,Apache的MQ起初都是面向企业应用的,在安全、异构形态的支撑方面要更加擅长,在面对互联网高并发,大数据流量,海量终端在线领域还是有不少空缺的。我们经常在讲互联网的趋势,那下一个趋势是什么呢?我们能不能成为趋势的制造者,亦或者跟随趋势顺势而为,光想想这些问题就让人激动不已。好了,中间插播下广告,阿里中间件(Aliware)消息团队招聘进行中,希望我们都能“赌准”下一个云计算趋势,成为“弄潮儿”。

五、Day3第三天

1、How to Become an IoT Developer (and Have Fun!)

因为今天中午有我们Apache RocketMQ的分享,早上大家花了1个小时过了下场,打起百分之一百二的精气神。接下来去会场听了来自我们的导师Justin的分享How to Become an IoT Developer。在开篇,他介绍了自己跟IoT结下的梁子

接下来就是一堆物联网趋势已经来临之类的判断,以及用软件的思路去做硬件编程。在Arduino下的编程体验是什么样的?

接下来Justin又分享了各种电子元器件,电路板等硬件设施的特点。有一些我自己都没听懂。最后,引用他结尾的PPT做一个总结。总结的非常精辟。没错,对于人生来说,确实一个很好的Journey(活到老,折腾到老,更是学到老。尤其像他这种工作20多年的Apachers)。我们还把中文的“老司机”(Old Driver)讲给他听,在Apache这个社区里,它确实是不折不扣的老司机。

2、Apache RocketMQ - Trillion Messaging in Practice

接下来,就是我们阿里中间件(Aliware)消息团队分享的话题--Apache RocketMQ – Trillion Messaging in Practice,令人振奋的是我们这个会场有视频录播,这对我们来说确实是一个福音。这样我们回去就可以听听自己第一次的英文分享,便于总结,有利于下次发挥的更好,和国际开源社区的交流更加流畅。非常巧的是,这个演讲结束后,就有几个韩国、印度和国外的华裔来问问题,可见英文在国际开源社区沟通中的重要性。

[[193383]]

在分享过程中我们也介绍了阿里中间件(Aliware)商业产品的高级特性,旁边的印度同学一直在问“这个…你们会开源吗?”答案当然是肯定的。不过这里面需要有策略,我们目前是有时间差的,内核与扩展,核心专利等多种有效机制,来保证我们在分享我们开源情怀胸襟的同时,防止一些不“友好”的事情发生。开源商业化这种玩法,在国际科技巨擘里面屡见不鲜。像IBM这次会议就来宣传他们的CouchBase和OpenWhisk商业版本。其它的如Pivotal,RedHat等就更不必说了。

3、CloudStack Collaboration Conference

再接下来,去CloudStack分会场去兜了圈,CloudStack这次能够作为四场Mini峰会之一去举办,可见其在Apache基金会下发展的势头是多么良好。前几年,国内OpenStack大行其道,中国社区的各种meetup搞的也是风生水起。很多公司,像华为,网易也有专职的岗位去做这块。而和它相对的CloudStack国内知晓的人不多,而CloudStack最大优势就在于apache基金会的管理,这是保证CloudStack能持续有生命力的关键。Apache基金会的管理中,很重要的一点是社区高于代码。Apache基金会关注社区的建设,项目本身的代码质量会因为社区的繁荣得到改善,社区也是项目有生命力的关键。我自己本身对于这块的践行比较少,所以这块就一笔带过。最近也在计划花点时间去研究下这块,希望能给我们的私有云,公有云大规模部署运维带来一些启发。

六、Day4-第四天

1、Apache httpd 2.4新功能和性能现状

上午主要去听了HTTP 2.4,HTTP/2相关的一些Topic。主要想解下Apache Server对于Nginx的竞争如何发展,以及HTTP2目前的生产实践效果。

这里的测试都是基于本地的静态网站以及反向代理,所有的配置也几乎都是out-of-the-box的。由此可见Apache Server 2.4的Event MPM模型已经有很不错的吞吐性能。至于孰优孰劣,做过性能测试的同学都知道,没有benchmark一切都是没有信服力的。大家还是看看这些截图,仅做参考,实际的流量特性,分布也和测试是完全不同。

去年阿里中间件(Aliware)消息团队研发的MQ中继产品也利用了HTTP2高性能、防火墙友好、安全特性等,实现跨网络,跨云基础实施的通讯。在实现过程中也对HTTP2进行了简单的探寻研究,为此提出了降级的MVP自由线路层协议,防止HT先·TP2的基础设施对硬件限制。通过跟踪Netty HTTP2模块代码,也发现了不少问题。在这块有研究的同学,欢迎和我们交流。

2、OpenWhisk和IoT话题

最后让我们以OpenWhisk的topic为尾。OpenWhisk几乎是和RocketMQ同时期(IBM捐赠)进入Apache的。我对它的印象还比较深,在Apache董事会需要审核的月报里,我都会留意它的报告。一开始声称是一个Gateway解决方案,到现在已经朝Serverless framework发展了。

接下来开始介绍它们的商业化解决法方案Bluemix:

最后的提问环节,有外国友人提到是否有机会集成ActiveMQ作为Event Provider,IBM的同学顺口还提了Apache RocketMQ也在它们的考虑范围,看来这次Apache RocketMQ北美之旅不虚此行哈。

七、大会总结

4天的烧脑时间就这样嗖的过去了,是时候收敛并总结一下这次ApacheCon的参会感受了。

1. 和开篇呼应下,ApacheCon的主要参会人员大部分是全球各种Apache项目的Committer,都是货真价实的一线Coder。整体会议的技术含量较高,但同时也影响了其参会观众的规模。20多人的小会场很难看到满员的情况,这要是放在国内,100人的场地应该都可以爆满(从前年的Apache亚洲路演来看)。从这个角度来讲,我们的软件行业对Apache这个品牌还是非常认可的。

2. 亚裔参会人员不少,国内参会的同学集中在Intel,EMC,Ebay,华为和阿里巴巴。从一定程度看到了公司的政策倾向,受此影响不断创新自研出一些可以影响全球的产品的意愿也越来越强。我们的近邻日本的开发者来作分享的也不少。从这点来看,我们国家的软件行业,至少是FOSS层面慢慢地走上了正轨。

3. 全球软件行业中,开源商业化的趋势非常明显。所有的Apache基金会旗下的开源软件,放眼望去,背后几乎都有商业化公司在运作。这也是这些年从Linux这种早期开源商业化模式中不断验证出来的盈利模式。客户对于这种后付费的产品,Apache品牌效应更为认可。

4. 拉回现实,就像之前强调的那样,捐赠RocketMQ是非常积极的第一步,我们的产品在易用性,稳定性等方面距离我们心里的那个“第一”还有一定差距,我们需要更加清醒的认识到这点。我们要按照既定节奏稳扎稳打,做一样精一样,将国外那种严谨,工匠精神贯彻到底,相信我们的开源软件产品一定可以带来不同的体验。

【本文为51CTO专栏作者“阿里巴巴官方技术”原创稿件,转载请联系原作者】

戳这里,看该作者更多好文

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2010-09-27 11:26:29

无线路由掉线问题

2014-03-12 09:49:02

ASC14名校浪潮

2011-03-28 16:49:01

数据库技术

2009-05-06 10:35:13

苹果微软掌上游戏

2015-09-06 14:43:06

2012-04-05 14:32:21

MongoDB

2017-12-22 13:35:55

CIO房地产云计算

2023-11-22 18:25:57

WOT技术

2012-05-18 14:50:28

惠普工作站

2013-08-05 11:02:55

戴尔

2021-10-12 10:37:49

IDC

2009-07-28 21:53:24

LTES实验室华为

2021-04-27 15:49:36

IDC

2012-12-31 09:44:01

求职面试微软面试

2010-04-01 10:52:34

IT运维管理ITIL摩卡软件

2009-03-24 10:24:00

GPON运营商光纤接入

2011-12-16 14:07:37

微软MVPOffice 365

2015-08-28 09:12:44

云测O2O

2011-03-23 09:19:22

2017-01-04 15:10:34

华为
点赞
收藏

51CTO技术栈公众号