SpringOne Platform 2016 参会分享
SpringOne 大会是全球最权威的 Spring 大会,今年 8.1-8.4 日在美国 Las Vegas 举办,阿里几位架构师参加了这次会议,在此分享给大家一些参会的感受。
大会的几个热门话题
技术框架
ReactiveX:响应式的编程模型,用来编写异步和基于事件的程序,它把观察者模式、迭代器模式和函数式编程完美有机地结合在一起了;刚开始看它的文档有示例代码,有点不是很好理解,需要多琢磨,我到现在也还没有搞明白,有兴趣的可以参考:http://reactivex.io/intro.html ,中文翻译版本:https://mcxiaoke.gitbooks.io/rxdocs/content/Intro.html
Ratpack:一个轻量级的高性能 http 框架(https://github.com/ratpack/ratpack/ ),基于 Netty 和 Java8;在微服务盛行的今天,服务之间的通信除了传统的 RPC,http RESTful 也会是趋势;http 微服务时代下,相比 Servlet 规范,轻量级的 http 框架虽然功能会少一些,但它有着开发效率快,吞吐量高等优点;
Jigsaw in JDK9:Java9 里的模块化系统,模块之间相互隔离,通过导入和导出相互依赖,这个和 Pandora 的原理有点类似;虽然 Java9 还没有发布,但是能感觉的到大家对这个还是很期待的;
Spring 5:
1、全面支持 Java8, Java9
2、支持 Java EE7,Tomcat 8.5+, Jetty 9.3+, Wildfly 10+
3、支持响应式编程模型
Spring Boot 1.4:
1、1.3 里 deprecated 的类、方法等,在 1.4 里都直接被删除掉了,这无疑给应用升级带来了成本;
2、启动失败信息人性化,约定的错误而等,自定义 Banner 图片等
3、Josh Long 现场演示时,看到是支持热部署,修改 pom,properties,java 等都实时生效,这个感觉很牛 B,但是在 Spring Boot 1.4 Release Notes 里没有看到这方面的说明;
Zipkin:Twitter 的开源产品,做分布式调用跟踪的产品,类似 EagleEye;有很多公司基于这个在做链路踪分析的产品。
XRebel:在展台宣传的,ZeroTurnaround 的继 JRebel 后的又一个主打产品,通过 Java Agent 对应用进行性能分析,它的优势是无需要埋点,即插即用,它对大量三方库、底层代码做了 hack;但是目前应该只局限于单机分析,分布式架构能力不是很明显。
PaaS,平台即服务
SpringOne Platform,无疑会重点介绍其明星产品 PCF,它从底层 IaaS 到容器,再到上层微服务,提供了一整套”云操作系统“解决方案;而 Spring 也是 Pivotal 的一部分,两者的深度合作简直就是强强联手。
另外几个比较影响力的 PaaS 产品有:Microsoft Azure,Google App Engine,Amazon Web Service(AWS);有意思的是,这次微软也过来宣传他们的 Azure,说明微软也在拥抱开源世界,也在积极变化。
一个比较大的感受是,国外 PaaS 平台的生态发展的比较好,比如专门做 API 管控的公司 Apigee,他们围绕 API,从设计、文档、数据分析、访问、安全、稳定等多个方面做的都很完善,这样不同公司数据的互通和调用将会变的非常简单。
另外一个感觉是,国内的云计算公司,貌似都不太开放,你的应用跑在上面,你想和跑在其他云平台上的应用进行通信,这些方面的技术产品还没有成型,这样就需要用户自己去想办法解决,无疑也给用户带来了成本。
Serverless,无服务器架构
虽然会场没有专门的 Session 介绍这个话题,但是在第一天下午的开放讨论中,有个环节聊到了 Serverless;Serverless 最终目的就是,远离服务器和基础设施方面的问题,让开发人员可以主要专注于代码。
IaaS 将真实的物理机变成了虚拟机, PaaS 进一步将虚拟机变成了包含基础设施的中间件服务;SaaS 和 BaaS(后端即服务 Backend as a Service)将中间件服务扩展到更基础的后端能力。
比如开发者在进行业务开发时,需要用到消息、缓存、存储等中间件服务,开发者需要对这些中间件的服务器进行性能优化、可扩展、稳定性保障等,这会很大程度上占用开发者的时间;开发者如果能直接租用现有的服务,或是在平台上直接开发这样的服务,而无需要关注服务器相关的稳定、可扩展等因素,就是是去服务器而直接使用服务的一种架构思想。
有关 Serverless 相关的产品,可以看看 AWS lambda,它是 FaaS(Funtion as a Service),按规范写一个函数,上传到 AWS lambda 平台上,秒级启动,按调用计费。
Cloud Native,云原生
Cloud Native 是一种软件架构思想,是在互联网、物联网、移动互联的背景下对我们传统软件架构提出的新的要求:
• 快速响应需求快速发布
• 应用高可用性、高可扩展性
云原生应用要求应用的架构、开发方式、部署和维护技术都要做出改变,真正的发挥云的弹性、动态调度、自动伸缩;
持续交付、DevOps 和微服务分别描述了 Cloud Native 应用的为什么、怎么做和是什么。
Agile & DevOps
这个话题被多个 Session 提到;敏捷,重在执行,感觉老外在这方面还是很坚持的:
• 产品、设计、开发、测试坐一起,沟通,站会,roadmap 同步会
• 全栈开发,结对编程,互相 code review
• 团队大小为沟通而优化,围绕产品进行组织架构调整,坚持产品导向
如果敏捷解决了产品在商业设计、开发、测试这个环节中的问题,有效的加快了产品开发的周期和效率;那么 DevOps 则是解决开发和运维之间的隔阂。
开发关注的是产品和技术的快速上线,运维关系的是稳定压倒一切,DevOps 要求两个角色必须要有统一的目标:即快又稳;同一个目标,在同一个团队,通过相应的规范和工具化,保证团队协作有序进行,避免线上运维的重复劳动和失误。
MicroService,微服务
不管是 PaaS、BaaS,还是 Cloud Native,还是 DevOps,都和微服务是离不开的;在云计算的今天,我们不断地在强调开发效率、部署效率,而 Spring Boot 确实在这些方面给我们带来了质的变化和感受;但是如何将它们和现有的技术体系结合,这是我们需要关注的问题。
Spring Boot 的核心开发和倡导者 Josh Long 和阿里架构师
其他一些感受
SpringOne 大会是其母公司 Pivotal 举办的,因此很大一部分主题演讲和 Session 都是在介绍 Pivotal 的 Cloud Foundry(PCF)及相关的客户案例;但是 PFC 在国内貌似用的人不很多,了解到华为在用(华为也派代表来参会了);另外,参加大会的国内公司,除了阿里和华为,我们只发现了招商银行的同行。
版权声明: 本文为 InfoQ 作者【阿里技术】的原创文章。
原文链接:【http://xie.infoq.cn/article/a73a36d285cec2b212ff97415】。未经作者许可,禁止转载。
评论