2017 JavaOne参会感想

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介:

国庆期间有幸作为代表和另外 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 等特性简直亮瞎了,比较自豪。

IMG_7356.JPG

IMG_7357.JPG

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 了。

IMG_7360.JPG

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 的阶段,生产环境还为时尚早。

IMG_7562.JPG

IMG_7568.JPG

JUG 社区氛围

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

IMG_7237.JPG

IMG_7238.JPG

国外的 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

IMG_7266.JPG

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 优化没有效果,不过我看也没这么绝对,做系统很多时候是一种权衡和妥协。

IMG_7453.JPG

IMG_7456.JPG

IMG_7474.JPG

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 的两张图,说得非常到位:

IMG_7338.JPG

IMG_7339.jpg

关于 Serverless

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

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

IMG_7599.JPG

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
弹性计算 网络安全 云计算
【结营撒花!!】7天实践训练营第一期学员感想
3月27日,阿里云高校计划“7天实践训练营”第一期顺利结束。首期入营的70名学员互帮互助,在营长的带领下顺利完成了每日打卡、学习和作业,收获了4个云上实践项目,阿里云免费技能认证,组团挑战了阿里云算法面试真题。当然,大家也在这七天结识了来自五湖四海的志同道合小伙伴。同学们都有哪些收获和感想,我们一起来听听看吧 ~
1223 0
【结营撒花!!】7天实践训练营第一期学员感想
|
新零售 机器学习/深度学习 人工智能
获得【ET勋章】后的感想
获得【ET勋章】后的感想
163 0
获得【ET勋章】后的感想
|
弹性计算 安全 关系型数据库
阿里云使用感慨
我是一名大一在校生,我的专业是软件工程,很感谢阿里云平台,能够让一名普通在校学生的我也能体验一次云服务部署项目的过程。 我是通过朋友介绍了解到阿里云平台现在有一个飞天加速计划·高校学生在家实践”活动的,我刚听到时很兴奋,因为一台云服务器的费用对于我们学生来说,只能望而却步,但是我现在居然也有机会能够使用体验,真的很感谢阿里云平台。
|
消息中间件 分布式计算 负载均衡
阿里技术面全A,终面却被产品经理拉下马,我不服
阿里技术面全A,终面却被产品经理拉下马,我不服
阿里技术面全A,终面却被产品经理拉下马,我不服
|
消息中间件 边缘计算 Cloud Native
议题剧透|欢迎围观 2021 阿里云开发者大会神仙打架现场
数字时代,创新的时代。万千开发者汇聚智慧,启迪梦想,不断推动创新发生。
议题剧透|欢迎围观 2021 阿里云开发者大会神仙打架现场
|
弹性计算 前端开发 Linux
一名大四学生初入阿里云的心得体会
首先得感谢阿里云的飞天加速计划,让本人能够免费领取并使用阿里云的云服务器ECS。
|
数据中心
这么霸道的见面邀请,我竟然有点心动
不仅可以来阿里园区做客,还可以与开发者小伙伴们一起交流成长
这么霸道的见面邀请,我竟然有点心动
|
机器学习/深度学习 自然语言处理 测试技术
工程师如何给女友买包?问问阿里“百事通”
小叽导读:工作那么忙,怎么给女朋友买包?是翻看包包的详情页,再从商品评论中去找信息吗?为了帮助类似的同学节省时间,阿里工程师们提出快速回答生成模型RAGE。你问它答,这个“百事通”能从整体结构,评论的抽取和表示及融合四个方面综合解决生成模型响应速率及生成质量的问题,进而提高生成的回答的真实性及有效性。从此,如何给女友“买包”,不再是难题。
1700 0
工程师如何给女友买包?问问阿里“百事通”
|
人工智能 算法 机器人
阿里工程师养了只“二哈”,专治讨厌的骚扰电话
前两天3.15晚会上曝光了利用智能机器人,一天打4万个骚扰电话,从而赚取利润的黑色产业链。
4895 0
|
弹性计算 负载均衡 NoSQL
结营感想
经过本次七天训练营,我学会了基于ECS搭建FTP服务 、快速搭建Docker环境 、ECS+SLB 负载均衡实践 、使用ECS和PolarDB搭建门户网站 、搭建个人Leanote云笔记本以及案例分享——钉钉 。

热门文章

最新文章