Velocity NYC 2016 参会总结
作者: 发布于:

就在刚刚过去的九月,作为 FED 团队的代表有幸参加了美国纽约的 Velocity Web 性能和敏捷运维大会。在大约一周的行程中,会议团队组织了十分丰富的行程,会议团队也在内部对于 Velocity 的演讲内容做了多次讨论。整个行程在我看来是十分圆满的。

Velocity @ NYC

Velocity 作为 O'Reilly 旗下的老牌会议品牌,从 2008 年开始专著 Web 性能、DevOps(运维或开发自运维)等领域。在会议组织、开发者关系和商业运作等方面都十分老道。国内的开发者社区方兴未艾,也有诸如 SegmentFault D-Day、JSConf、D2 等类似定位的会议,但从各方面来讲都与 Velocity 有云泥之别。这也是为何在汇报中把会议组织本身感想放在了最前面。

会议组织方固定在圣克拉拉(美国加州)、纽约(美国纽约州)、阿姆斯特丹(荷兰)、北京(中国)四个城市巡回举办,可见其国际化程度之高。正是如此的多元化的组织形式,不仅吸引了全球不同国家的参会者,对于赞助商和讲师来说,也让自己的思想和意志传播到得更广。另一方面,由于有固定的巡回议程,举办方在现场把控上容易积累更多的经验。这是体现在各种细节上的,例如:

  • 会场位于纽约中央公园旁边,对于第一次来纽约的人来说,太好找了;另外由于地处曼哈顿中心,即使当日会议日程安排的很晚,也不用担心治安问题;
  • 会议前夕,收到邮件告知参会信息以及领取胸牌的操作指南,并且提供了一个会议伴侣 App,方便当天查询会日日程;
  • 茶歇区即赞助商展位,互利互惠;作为参会者,还是很有激情一边吃吃喝喝一边参观摊位的;
  • 赞助商的展位都有非常专业的一对一讲解、游戏、抽奖等各类活动;
  • 赞助商参与的演讲均有明显标示,参会者可以自行选择;
  • ...

当然,国内的技术会议也办的的越来越好了。

补充下没有论据的一家之言:健康良好的开发者社区不应该只是默默的搞开源项目,而是应该包括线上和线下;如今开发者 BBS、博客、微博大V、公众号等富媒体已经产生了大量的技术内容,但是还以搬运国外原创内容和互相捧臭脚为主;而线下的会议和其他形式活动(编程马拉松、培训等)缺乏成熟稳健的商业模式,导致要么昙花一现,要么沦为大厂的宣传和招聘工具。

根据 IDC 数据,国内 2014 年开发者人群约有 185 万,相信随着互联网的火爆发展,近几年这个数据只会增长的更快。阿里作为国内首屈一指的互联网综合体,拥有丰富的开发者资源、良好品牌效应,理应在这个领域发出更大的声音。

Keynote 心得:意料之外,情理之中

Velocity 的主题限定了 Web 性能和 DevOps 两个领域,但实际上这两个领域又都非常宽泛,所以导致一次会议中演讲的具体内容并没有非常清晰的关联关系。本次的会议有一个宴会厅和五个会议室,每个会议室至多一天分为五场演讲顺序进行。作为参与者,是不可能全部全部听完的。但整体上还是有有不少热门主题被多次提到,所以后文还是以这些较为聚焦的话题进行归纳总结。

微服务趋于理性

微服务架构至少被个大厂商(Google、Facebook、Twitter、Netflix)布道有两年有余,那些能够接受的公司早已改造完毕。如今甜蜜期已过,新架构带来的各种问题也接踵而来。

这次直接和微服务有关的演讲有:

这些话题(包括其他的话题)大多有一个特征——它们聚焦一个问题,给出一个思路,结合一个解决方案,最后给出实践成果。被各位演讲者提到的问题:

  1. 编码成本提高:代码越来越复杂,一个是在代码行数上,另外就是服务组件越来越多
  1. 人员成本提高:团队越来越复杂,细化后的组件总会依赖至少一个团队去负责维护
  1. 调试成本提高:新架构下的会话跟踪、重放、日志以及自动测试等中间件都要改造以及积累经验
  1. 稳定性成本提高:监控、容灾和资源调度也都出现了新的问题

社区里针对这些问题给了不少开源方案,例如 ConsulFinageZipkin

阿里内部由于有一个强大的中间件团队,所以这些基础设施均为自建。虽然实现不一样,其实大家的理论都基本类似。集团的 HSF 服务出现的很早,如今也是 PandoraBoot 的实现基础;EagleEye 也是老牌的 Tracer,基本能适配到任何应用场景了。

除了在部分细节不如开源方案来得好。例如,HSF 对超时处理、分布式事物等处理欠缺、容灾方案常常只有机房热冷备诸如此类的问题。但阿里的中间件实际表现是十分出色的,并且经过了时间的考验。

反过来想也有些后怕,在中小型企业对极为积极的采纳这些开源方案并玩的正欢的时候,集团的技术人员由于没有实际的应用场景,其实并不是很热衷于去了解这些东西,是否会和外界社区脱节呢?当然大厂留着各种私货是很正常的事情(包括 Google、Facebook)。

DevOps 全家桶越来越大:Serverless、CloudNative、Infrastructure as Code...

今年围绕 DevOps 的新名词 Serverless、CloudNative、Infrastructure as Code 等新名词如数出现在了演讲的标题中。

对技术人员来讲,是大家开始从吹捧 DevOps 概念,到了各种实践和解决方案,然后并进入下一轮概念炒作的过程了(注意此处炒作并不是贬义)。

Serverless 是一种和微服务有关的开发和部署形式(即 DevOps 的一种实践方案)。Serverless 的模式下,开发者不再关注计算资源(集群、服务器等)、不再关心虚拟化(VM、Docker 等)、不再关心进程模型(进程启动、停止、重启等),只需利用各种云计算资源(对象存储、消息服务、离线任务等)提供实现业务逻辑的函数或方法。Amazon 的 AWS 最近提供的一种新的服务类型 Lambda 所掀起的新一轮浪潮,预计其他云服务厂商会迅速跟进。这种模式也非常适合在集团内部推广,为业务开发减负,同时提高整体资源利用率。当然,目前 AWS 推的还是动态语言的服务类型,诸如 Node.js、Python,预计 Scala 也快了,也许这也是让多语言在业务层面得到支持的一个好机会。

Serverless 的主题演讲有:

由于时间关系我只去了第二个,但比较失望的是一个多人对话形式的访谈,并没有什么逻辑可言。多为介绍自己公司的在 Docker、Serverless(沾了点边)方面的实践。透过第一个演讲的 Keynote 可以判断内容还是有很高价值的,讲的是第一轮 Serverless 实践中遇到的各种问题,主要集中在监控方法、编程模式、安全模型的变化,并且讽刺的是其内容透出的担忧标示 Serverless 并不能让开发者完全不关心服务器。

Implementing infrastructure as code 是一个布道性质的演讲,从零开始介绍了其概念、组成部分(以及顺便推销了自己的书)。

Infrastructure as Code 也不是什么全新的概念,是指利用软件工程的工具和方法来管理基础设施的一种思路。近几年 Docker 火的的一塌糊涂,其一大特性就是所有资源都可以通过 API 操控,这也是 Infrastructure as Code 在实践上成为可能的一大支柱。在此之上的 kubernetes 等开源项目又在集群纬度提供了可编程的编排能力。这样开发者是能够面向集群编程管理的,这才是真正意义上的 DevOps。题外话,这里也期望明年的 Docker 改造中起码能把 DockerCompose 的能力开放出来。

最后,CloudNative 是一套包括 CD(持续交付)、Microservice(微服务)、DevOps、容器思想的集合,所以这次会议的演讲中不会直接将其作为主题,但都命中 CloudNative 这个关键字。再说几个厂商的名字 Pivotal、Cloud Foundry,都是这些概念的布道者,也是此次 Velocity 会议的演讲者和赞助商。

Web 相关

MobileWeb 性能优化和趋势

这次来自 Google 的两场演讲分别介绍了 PWA、AMP

总的来讲,Google 作为 Chrome、ChormeOS、V8、Blink 等 Web 技术产品的维护者,自然对 MobileWeb 的前景相当看好,因此每年都会推出一些新的技术来增强 Web 平台的能力。AMP推广的时间很长了,其本质是一套前端优化的最佳实践。PWA 是今年的新技术,也为未来的 MobileWeb 注入了新的活力,但基于 H5 的 MobileWeb 的颓势是不会改变的。

此次也有演讲对 Web 和 App 重新做了对比和思考: Web versus apps revisited。里面的数据是血淋淋的,只有 13% 的用户时间花在 MobileWeb 上。

个人观点是,虽然以 HTML5 页面再也不可能成为入口或主要产品,但在碎片场景下是有巨大发挥空间的。例如微信公众号、微信微应用等场景,均是以 HTML5 技术为基础的。

当然 Web 和 App 的竞争还在继续,Android Instant Apps 这样的技术出现意味着原声应用正在挑战 Web 应用的易传播性这样的优势。而 ReactNative 这样的技术,则在结合 Web 技术和 App 技术来挑战传统 App 的开发成本问题。

阿里旗下产品都有自己的航母应用,所以更多考虑的在闭环生态下增强用户体验的技术改进,Weex、ZCache 这类技术从实际效果来讲远超 Google 给的任何方案,但是 Google 的这些方案是通用方案,我们的是限于 App 内的方案。

HTTP2

正如上文指出的,大多数演讲都是围绕某个开源项目或自家公司产品进行的,很少有讲解基础技术或原理的。由于时间排期,我听到的数量有限的演讲中,只有 HTTP/2: What no one is telling you 是讲解 HTTP2 原理和应用的。碍于 40 分钟的时长限制,演讲者也大多在讲时间过程中遇到的问题和一些关键数据。

目前来看 HTTP2 最大的问题就是它并没有想象中的那么好。头压缩、socket 复用等技术在效果上并没有各大浏览器厂商优化了多年的 HTTP1.1 效果好,反而在弱网环境下,简单粗暴占用多连接的 HTTP1.1 效果更好。

HTTP2 在草案期间就广受开发者追捧,可如今标准确定,却罕见实质改变。也许 HTTP2 会让 HTTP 技术在一些 RPC 场景中会有明显优势,但在传统页面浏览方面,并不会得到非常迅速的应用。

总结

Velocity 的会议总的来说,在演讲内容上是中规中矩的,毕竟也不是专门的学术会议或事领域论坛。但正是成熟稳定的运作,让厂商和开发者有持续的交流机会。DevOps 相关话题依然热门,微服务和容器必然成为互联网公司的必备武器。新技术在国内都是慢热的,但最终结果会保持和社区同步,可预见集团在未来也会在这些领域有所沉淀和输出。

多元化的社会和多元化的会议组成,让我们对于此次美国之行十分充实。行程的最后我们短暂的参观了谷歌位于纽约的分公司。几位华人研发的同事接待了我们,听了他们讲的经历和工作,也感受到在多元化冲击下对于企业和员工的种种机遇是巨大的。也很是期待,阿里集团能拓展更多的国际业务,成为在国际上更具影响力的跨国企业。