2017 JavaOne参会感想

国庆期间有幸作为代表和另外 6 位同学去旧金山参加 JavaOne 大会,本次大会我关注的几个关键的 points:

  1. AJDK 在 Java 9 的 Keynote 主场公开亮相,Kingsum 为全场听众讲解了 AJDK 如何与 Intel 等硬件商场深度合作,支撑了双 11 全球最大的购物节。
  2. Java 9 的新特性,以模块化为代表。
  3. Serverless、Cloud Native 架构。
  4. 微服务和 DevOps 的结合。

下面记录一些感觉相对有启发的 info 带着我个人的一些想法:

Java Keynote

Alibaba JDK

这一场应该是本次大会对 Java 9 和 Java 生态而言最光鲜的亮相,三红提前剧透了说会有惊喜,结果真的是个大惊喜,Kingsum 代表阿里巴巴把 AJDK 在这个 Keynote 上公开 show 了一把,包括实例数、性能改进、多租户、WISP 协程、JITWarmUp 等特性简直亮瞎了,比较自豪。

Intel

看赞助商列表的时候看到 Intel 是 TOP 1,刚在想作为一个硬件厂商和 Java 9 发布有什么关系时,Intel 的 VP 就解答了这个疑问,Intel 还是比较有危机感,除了芯片还在做非常多和软件特别是语言底层紧密结合的事情,10 年来 Intel 使得 Java 的性能提升了 73 倍,比如 Intel 也在搞 AI 战略,他们的思路是要做 AI 的 infrastructure,例如 AVX512 指令集,针对向量计算相比上一代有 8~16 倍的提升,还不仅于此,Intel 直接发布了 Vector API SDK 让 Java 程序员可以用 Java API 去充分压榨硬件的向量计算性能,在过去是需要用 JNI 去调用 low-level API 实现的事情,现在可以用 PureJava 了。

Intel 在存储上也有不少创新,非易失内存 3D-XPoint 和 Optane SSD 的发布(对于二者的区别 Session 结束后问了下,前者是基于 byte 裸访问的,后者还是面向 Block 和文件系统),结合 pmem 库的支持(还在 pilot flight 开发阶段),对未来几年的存储软件有很大的利好,褚霸团队的 PolarDB 似乎也是用的 Optane。

针对深度学习开源了 BigDL 框架,Scala/Python 也都支持,Intel 决心还是有的。

其它

Spotify 分享了下如何从 Python 迁移到 Java,背了个书。

Kubernetes 已经成为容器调度实际的主流,发布了 Wercker 在线性能诊断工具,相比 Cloud Native 提出了 Container Native 的概念,有一系列的本地工具提高对开发者的友好度。

Java 9 开始提供了 jlink 这个新工具,需要结合 module 一起用,能够只打包用到的 JRE 模块,大幅缩小容器镜像的大小(对 Container 微服务比较有用)。

Java 9 引入了 AOT,不过目前还非常 experimental 的阶段,生产环境还为时尚早。

JUG 社区氛围

国内在 Java 社区这一块的氛围感觉远不如 Go/Node.JS/Python/Ruby 等语言的社区,一定程度上是因为 Java 程序员数量比较多,比较少抱团,另一方面 Java 程序员一般都在做企业级的应用,平时和社区交流的机会也少一些。不少讲师都有一个 Java Champion 的头衔,查了一下,这个冠军程序员不光要求技能过关,而且要在社区上投入足够多的精力和时间,得到社区认可的人才可以获此殊荣。

国外的 JUG 发展非常火热,几乎每个城市甚至一个城市会有 2 个以上的 JUG,听了一场芝加哥 JUG 的负责人的 Session,大家都在谈 JCP,关于建设社区的一些 points:

  1. 尊重社区里的 members,不要泄露别人隐私 like email,不然会被惩罚
  2. 传播信息时要精确的信息(比如不要用『第一个工作日、这周的休息日』这样的描述),每个成员来自不懂的地域,习俗不同,比如有些地方是周一休息
  3. 冷启动 JUG 比较好的方式:参加别的会议看是否有同城来的,social 拉拢一下
  4. lightening talk,每个人 5 到 10 分钟,让每个人都有表达的机会
  5. 整体感觉虽然是技术社区,但很 social beings,虽然工程师都比较 nerd
  6. 内部认同感很强,有种巫师秘密集会的感觉

后来我也跟坤谷聊了下这个问题,有机会的话后面希望能为我们自己的 JUG 做一些贡献。

关于 Java 未来发展

这一场找了一些 Java 社区中的活跃者,基本上是一些 Java 生态创业公司的技术负责人的角色,例如 Azul JVM,也有 Oracle/IBM/Google 这样巨头的 TL 来参加。

挑选几个有价值的信息:

  1. Oracle 向社区捐赠 JavaEE,同时最新的 JavaEE 8 也发布了,社区比较兴奋,准备大干一场,例如 Eclipse MicroProfile 等社区,我们平时用 Spring 比较多,这块其实关注度不太高,整体上 JavaEE 未来的发展会比过去更快
  2. Google 目前在 JVM 生态上的投入,主要是维护 CMS GC(Oracle 一定会推 G1,CMS 的代码太老太复杂,维护成本太高,但是 Google 有需要),以及一些 OpenJDK 的 patch
  3. Java 在 AI 方面,Mahout 和 Spark 这些基础设施都是运行在 JVM 之上,社区的人认为 Java 在 AI 方面相比 Python 更成熟稳定,所用的东西都是经过 5 年以上考验的(这个么听听就好了:D)
  4. 对于 G1 的使用,Oracle 的同学表示还是要看具体 case,从他们的经验看,目前对于 large heap 的场景 G1 还是有优势的,另外对于使用 G1 的公司,建议一定要保持用最新的 JDK,因为 G1 还在不断修复优化(是不是听起来不太靠谱,这也是 Google 还要维护 CMS 的原因之一吧)
  5. Java 对 GPU 计算的支持,目前 Project Sumatra 在试图解决这个问题,但是不太活跃,他们也请求大家能够一起进来 contribute(多个 Session 的分享人都讲到了希望大家一起来改善和贡献,有非常强的社区味道,这点国内还比较弱)
  6. 有人问到了 JNI 2 的问题,Project Panama 正在尝试更好地解决 Pure Java 和 Native Code 之间互通的问题
  7. 关于并发编程,社区不断地提高线程模型的抽象程度,例如 ForkJoin、Actor 等,但对于协程依然没有 official 的说法,JVM 的协程在开源界已经有部分支持了,但 runtime 还是比较少,不过回来以后看三红讲协程已经被 proposal 了(http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html)
  8. Java 作为一门不那么年轻的语言,今天有什么优势,大家还是比较有共识:生态,你想要的一切,在这个生态里几乎都有,这一点是 Python、Go 很难追上的
  9. JavaEE 8 开始在 GitHub 开源,社区做 contribute 效率更高了(https://github.com/javaee)

JVM 研发相关

Azul 是一家比较有特色的 JVM 公司,一般我们讲 JVM 都是什么 Oracle、IBM、Google、Alibaba 这些大厂在搞,但是 Azul 独树一帜做到了 latency 极低的 GC 时间。

Azul CTO 讲了下他们在做 JVM 过程中的一些思路,有一个印象比较深刻的点,和阿里云销售的思路是比较像的。Azul 重新审视『快』的问题,快到底是吞吐高、延迟低、还是别的,他们给客户特别是交易系统推销的时候,不会讲我这个东西技术上多牛逼,GC 延迟相比 Oracle JVM 低多少,而是一套业务解决方案,告诉客户用了我的你可以比别的券商快几个毫秒完成交易,这也是客户最看重的。

对于技术底层知识的用途,平时很多同学也会有疑问,好像了解底层的东西对于业务开发并没有什么帮助,Azul 的 CTO 是这么看的:也许你不懂也能干活,但是懂的人 keep it in mind,在关键时刻能让你有思路解决别人解决不了的问题。我觉得讲的已经很到位了。

还有一些细节,例如 volatile 在编译器中的作用:不要 cache value。对于压测预热,我们压测中有一些代码是 if(EagleEye.getUserData("t")) 判断是否压测流量的,然后某些下游就不压了,这个被称为 fake msg,他认为这类预热对于 JIT 优化没有效果,不过我看也没这么绝对,做系统很多时候是一种权衡和妥协。

Docker相关

分享人是 k8s team 的,台湾人。

介绍了一些 dockerfile 的 tips:

  1. 写到一行缩减 layer size
  2. 指定 user 不要用 root
  3. 公共镜像的安全性目前无法很好保证(即便是 official 的),最好是自己 build 出来
  4. https://stacksmith.bitnami.com/ 这个网站很实用,有点像 SpringBoot 那个 start 的网站,选你要用的组件,自动生成 Dockerfile 下载下来 build
  5. 文件读写用 volume 挂载避免 layer 不断增长最后磁盘爆掉,
  6. 容器内存限制和 jvm heap size 不联动(JVM 默认会用宿主机的内存大小),包括 CPU 也是,一般用 Runtime.getRuntime() 拿到的数据在 Docker 中已经不准了,可以用-XX:+UseCGroupMemoryLimitForHeap 这个 8u141 开始的试验性特性

从 Functional Programming 到 Reactive Programming

函数式编程以前 Java 程序员比较陌生,从 Java 8 引入 lambda 开始慢慢 popular 了。这次几个 Session 都提到了 Reactive 即响应式编程,简单来说就是面向异步数据流的编程。

这个思想在目前我们的工作中实际已经在部分使用了,只是还没上升到理论级别,例如将线程池的并发计算改造为基于消息的分布式并发计算,Reactive 的范式我相信和分布式计算一样会给研发协作方式带来一些改变,过去是靠同步 RPC 解耦,时间维度还是耦合的,现在是靠异步数据间进一步在时间上也解耦。

我个人是比较喜欢这种方式的,但对于面向终端用户的 UI 请求而言,很多时候还是要退化到同步模型去做。

最重要的是,它背后依赖的一个真实而残酷的现实是,在分布式系统下,一切都只能为最终一致性而设计,如果你没意识到这个问题,要么是别人在给你兜底,要么是还没出故障。

分享另外一场 Session 的两张图,说得非常到位:

关于 Serverless

Serverless 也是本次大会很多讲师在布道的东西,我的感觉是 Serverless 目前比较实用的场景和过去 nginx 中的 lua 脚本很类似,特别在 CDN 等 Edge 节点上,比如 CDN 回源、图片缩放、水印等,但是对于业务逻辑开发的场景还是不太适用,需要理性对待。

讲师总结的这个 drawbacks 我个人觉得还是比较中肯,在企业级开发中 Serverless 还有很长的路要走:

时间: 2024-11-02 13:35:41

2017 JavaOne参会感想的相关文章

与世界同行 2017中国人工智能大会有感

中国人工智能大会(CCAI),由中国人工智能学会发起,目前已成功举办两届,是中国国内级别最高.规模最大的人工智能大会.之前在北京举办过两届,第三届由阿里巴巴集团&蚂蚁金服主办,去做报告的都是中国人工智能大会的大咖:香港科技大学计算机主任杨强,以前是华为诺亚方舟实验室的首届主任:蚂蚁金服副总裁.首席数据科学家漆远,以前是普度大学的终身教授,还有中国科学院.工程院的院士以及一些国外的牛人,来头不小. 有意思的是,就在大会举办前两天,国家刚发布了新一代人工智能的发展规划通知,把人工智能拉升到了国家战略

再会,Unite 2017 Shanghai

5月为期三天的Unite 2017 Shanghai圆满结束.Unite 是一年一度国内外Unity开发者齐聚的盛会,这是第六界在中国地区举行的盛会,也是Unite 亚洲行中规模最大的一站.本次Unite 2017 单日参会人数最高达到5123人次.现在让我们来回顾这三天中的精彩聚焦和感动瞬间. Unity最重要的市场-中国 在Keynote主题演讲中Unity CMO Clive Downie分享了最新的数据,全球移动游戏市场Top 1000的免费游戏中,有38%的游戏使用Unity制作.20

AAAI 七大精华大盘点,零距离体验国际人工智能大会

2月4日至2月9日,旧金山迎来人工智能的国际顶级会议--AAAI 2017. AI科技评论作为前赴第一线现场报道的中国媒体,在大会期间为大家梳理了一份AAAI 2017的现场精华集锦.内容包括七大部分,让你即便不在现场也能感受一番"故事在手,天下我有"的体验. 一.百度.腾讯.华为--哪些国内公司的论文被 AAAI 收录? 今年的 AAAI 2017 上,百度.腾讯.华为.360.今日头条.携程.iPIN 等公司的人工智能团队都有论文被收录. 百度 今年百度共有两篇论文被 AAAI 收

会议 | JavaOne 2017参会报告

​ 序言 2017年国庆节,蚂蚁金服的几位小伙伴们前去参加了Oracle在旧金山举行的JavaOne 2017会议.来自全球多家公司的技术专家和听众们齐聚一堂,分享.见证了世界最前沿的应用开发技术. 本次会议除了必备的Java语言平台最新特性介绍之外,还有几个有特色的话题,包括:云计算.FAAS.微服务.大数据.人工智能.区块链等热点或前沿技术.本文试着从中挑出java语言平台.FAAS给大家做一个介绍. Java语言平台 1. JDK9的新特性今年9月Oracle发布了JDK9版本,有许多新特

KDD 2017 参会报告

本次参会报告由技术发展部黑屏:阿里云飞天一部杰铭.布晓.吴双:阿里妈妈产品技术部永叔.怀人:集团安全部裕宏等同学一起撰写.希望大家积极交流,踊跃发表看法. 一 背景:(杰铭) KDD的全称是ACM SIGKDD Conference on Knowledge Discovery and Data Mining.SIGKDD是ACM在数据挖掘领域的顶级学术会议,每年都吸引着超过2000位来自世界各地的顶级数据挖掘学者,以及知名企业代表前来参加.然而,大会的论文接收每年却仅约200篇,接收率不超过1

Oracle在JavaOne上宣布Java EE 8将会延期至2017年底

经过数周的猜测之后,Oracle负责Java EE和WebLogic Server的副总裁Anil Gaur在JavaOne上公布了Oracle针对Java EE的路线图.他们的规划包括在2017年底发布Java EE 8,这个版本会具备基本的微服务和云功能,并且计划在此一年后发布Java EE 9,这个版本将会包含进一步的特性. 这与一个月前他在JCP执行委员会上的表述一致,也与对Oracle产品开发总裁Thomas Kurian的采访相符,Gaur在JavaOne上的Java主旨演讲涉及到三

AI 产学研大集结,CCAI 2017 中国人工智能大会将于明日正式召开(附参会指南)

会前须知 本次大会地点是在杭州人无所不知的"大金球"--杭州国际会议中心,位于浙江省杭州市解放东路2号(近之江路),乘坐公交8路.22路.34路.42路等到打铁关站,或乘坐地铁4号线到市民中心站,J口出,步行490米就到啦,杭州国际会议中心这个显著的金色圆球形建筑就是最好的方向标. 需要注意的是,周六周日两天杭州气温较高,好在阳光明媚,并不会下雨.各位参会者请注意防暑降温,下面天气预报供大家参考: 本次大会有多位国外嘉宾参与,特别是23日上午,会有四位国外重磅嘉宾发表独立演讲,大会组委

MongoDB World 2017 参会全记录

作者简介 张友东,阿里云数据库技术专家,Mongoing中文社区联合发起人,主要关注分布式存储.NoSQL数据库等技术领域,目前主要从事MongoDB云数据库的研发工作,致力于让开发者用上最好的MongoDB云服务,本次给大家分享上周(6.19-6.21)在芝加哥参加 MongoDB Wolrd 2017 的一些收获. MongoDB云数据库包年5折,包月6折活动火热进行中,猛击了解详情 云数据库 MongoDB 版 基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁

【参会邀请】2017智能交通与大数据峰会将在吉林举办

由国家"千人计划"指定杂志<千人>联合吉林高新技术产业开发区.千人智库共同发起的"2017中国·吉林松花湖论坛--智能交通与大数据峰会"将于2017年8月17-19日在吉林举行. 据悉,本届大会以"智能交通和大数据"为主题,将齐聚大数据.云计算.人工智能等相关领域的专家,行业巨头以及创新.务实的企业代表,围绕智能交通和大数据发展中的共议和热点话题展开深入探讨和交流分享,引导行业方向,创造商机. 大会的讨论内容将覆盖议智能交通系统.车联