SpringOne Platform 大会见闻

  • 彭建华

2018 年 10 月 8 日

话题:语言 & 开发

我行过许多地方的桥, ParlayX, VPC, NSX, OVS,

 看过许多次数的云, AWS, GCP, Azure, Aliyun,

 喝过许多种类的酒, SS7, SMPP, SOAP, REST,

 却只爱过一个正当最好年龄的, Spring!

今年九月底,我有幸前往美国华盛顿特区参加 2018 年度 SpringOne Platform 大会。作为 Spring、CloudFoundry、Redis、RabbitMQ 等开源技术的拥有者,Pivotal 公司每年都会举办一次这样的大会,与全球数千位开发人员、客户和合作伙伴相聚在一起,交流企业数字化转型的最佳实践,探讨云原生应用开发的最新技术。

我最早使用 Spring 开发应用是在 2012 年,那个时候 Spring3.1 刚出来没多久,还没有现在的 Spring Boot 和 Spring Cloud,甚至也没有 Spring MVC,我们当时只是用 Spring 核心框架(包括 IoC,AOP,JDBC 等),结合 struts 和 hibernate 来开发 java web 应用,当时觉得比 JEE 已经好用很多了。如今,Spring 已经发展到了 5.1,其中除了当年的核心框架功能得到优化和增强之外,更是增加了 Spring Boot 和 Spring Cloud,这让开发者能够基于 Spring 非常方便的开发应用,而且能很方便的开发符合微服务架构的云原生应用。我在参会之前,在大会官网上大概浏览了一下大会安排,知道大会有一百多个讲演,涵盖了 Spring Framework, Spring Boot, Spring Cloud, CloudFoundry, Data, DevOps, Kubernetes, Serverless Microservices, Application Transformation 等多类主题,我对这次大会充满了期待。

大会第一天,以开发人员参加 Workshop 动手练习为主,参加者在讲师的指导下完成一系列开发任务。以前我参加类似的大会都是被动式的听讲,而这次一上来就是打开随身携带的 Laptop,连上大会现场的 WIFI,按照讲师的指导开始编写代码和执行指令,那种切切实实的操作,一个坑一个坑的趟下去的感觉真是非常过瘾。上午,我参加了 Modernizing and Moving App to Cloud with PCF and AWS,在这个 Workshop 中,来自 Amazon 的讲师 Ryan Niksch 先展示了一下在 PCF 上如何部署配置 AWS ServiceBroker,然后让参加者打开 Laptop 开始练习,在 PCF 创建 AWS Polly 和 S3 的服务实例,利用 cf push 指令一键部署应用,最后将 AWS Polly or S3 服务实例绑定到指定的应用,做完这个 Workshop 后,参加者对 PCF 的常用指令以及和 AWS 的服务集成都有了基本的印象。下午,我又参加了 Serverless with Spring Cloud, Riff and Knative,在这个 Workshop 中,来自 Google 的讲师 Ray Tsang 一上来就让大家打开 Laptop 登录 GCP,开始基于 Kubernetes/Knative/Riff 的一系列任务,先在 GCP 上创建 Kubernetes 集群并安装 Riff 及其依赖的 Istio/Knative,然后开发部署两个 Riff 函数,最后创建 Eventing bus 和 channel 将两个 Riff 函数进行关联,使得两个函数能依序处理某一触发事件,并得到预期的结果,我在做这个 Workshop 之前并没有接触过 Riff,但是我顺利完成了这一系列任务,并且对 Riff 和 Knative 有了基本的理解。一天 Workshop 做下来,最大的收获是激发了我对 Knative 和 Riff 的强烈兴趣。

其实大会在第二天,才算正式拉开帷幕,这一天首先登场的是 Pivotal 负责研发的高级副总裁 Onsi Fakhouri,他分析了企业在数字化转型过程中面临的挑战,以及 Pivotal 如何从工具、平台、技术和服务等诸多方面帮助客户应对这些挑战,他的演讲生动而又透彻;在他之后,来自 Pivotal 的 Juergen Hoeller 介绍了 Spring Framework 5.1 on JDK 8&11,来自 Google 的 Mark Chmarny 介绍了 Knative,来自 Pivotal 的 Mark Fisher 介绍了 Riff,这些演讲嘉宾都是业界知名的资深技术专家,他们的演讲为参会者指明了未来五年的云原生技术发展方向;接着,波音公司 CIO 兼高级副总裁 Ted Colbert 上场,介绍波音公司如何在 Pivotal 的帮助下加快企业数字化转型的步伐,利用 PCF 平台技术和 Pivotal Labs 服务,从技术和人才两方面推动公司进入自己的云原生时代。

主会场结束后,我先后听取了迁移企业应用上 PCF 的工具和方法,基于 Spring Cloud 服务的云原生应用开发,Spring Cloud 和 Istio 两种微服务框架的比较,测试驱动 Spring Boot 应用的开发等等。有的讲师会娓娓道来他们的实际案例,有的讲师会当场和你一起编写代码,都让我受益颇多。这里我重点讲一下迁移企业应用上 PCF 的工具和方法,实用工具有很多,比如 SNAP,它用于分析应用迁移时的关注点和难易度;比如 Tracker,它用于跟踪项目的需求、任务分解和代办事项,使之一目了然;比如 Concourse,它和 Jenkins 一样用于程序的自动化构建部署和发布;关于方法,Pivotal Labs 做过很多类似的项目,所以积累了一套行之有效的敏捷方法,比如结对编程,比如测试驱动开发,比如微服务化时的领域驱动设计等等。Pivotal Labs 有一个部门叫 AppTx,专门负责将企业应用迁移到云应用平台 PCF 上来,然后进行微服务化改造。为了更好的为中国企业服务,Pivotal Labs 于今年年初在国内也组建了 AppTx 团队.

当前的世界处在快速发展之中,而且越来越以软件为导向,企业和组织应该如何进行软件资产的创新,来跟上世界变化的速度,这是大会第三天不少的主会场演讲者论述的重点。当前,将应用部署上云已经成为业界共识,很多企业和组织,已经将应用迁移到 PCF 这样的 PaaS 云平台,因为 PCF 提供了功能强大的框架和丰富实用的工具,能够让客户只需关注业务本身,从而获得企业快速发展所需的产品迭代速度,来自美国空军 Cyberspace Innovation 的技术总监 Lauren Knausenberger 和 Bryon Kroger 上尉介绍了美国空军如何与 Pivotal Labs 展开合作,来实现美国空军软件系统的创新;来自 Pivotal 的资深工程师 Jon Schneider 介绍了 Spinnaker,这是一个开源且支持多云的持续交付平台,在多云的世界,即是云平台发生变化,也可以用 Spinnaker 完成相同的交付工作;随后,来自 McChrystal Group 的总裁 Chris Fussell,来自 Microsoft 的 Azure 云开发布道师 Bruno Borges,来自 Accenture 的首席技术官 Paul Daugherty 等业界精英也登场进行了精彩的演讲,不一一详述。

主会场结束之后,我先后听取了在 PKS 上运行 Apache Kafka,用 Spring Flux 实现 Reactor 执行模式,用 Istio 结合 Kubernetes 实现服务网格,Knative 介绍等等。信息量太大,不一一展开说了,在这里重点介绍一下 Knative,大家知道,Kubernetes 只是个容器编排系统,Kubernetes 自身只能部署容器级别的工作负载,这个系统本质上是给运维人员用的。开发人员用起来往往会遇到困难,开发人员希望的是能够和 PCF 一样,直接往平台一键推送源代码并可以很好的运行,而这就是 Knative 的使命。Knative 可以在任意云环境的 Kubernetes 和 Istio 之上运行,负责构建、部署和运行无服务器化的函数,它由 Google、Pivotal 等公司发起开源,包含三个模块:Serving, Build, Eventing。Serving 模块负责部署和运行无服务器化的函数负载,它支持函数的运行可由 HTTP 或 Message 请求驱动,弹性伸缩可至零,并可利用 Istio 实现集群内的路由分发以及进入集群的入口连接;Build 模块负责将源代码构建成容器,它基于 Google 的容器构建服务,提供了一个可插拔的构建模型,可扩展实现多种构建方法,Buildpacks 就是 Pivotal 提供的一种构建容器模式;Eventing 模块实现函数发布和订阅事件流的能力,函数遵循 CloudEvents 规范来发送和接收事件,它也提供了可插拔的事件源和消息代理模型,轻松支持多种消息代理服务如 Kafka, Google Pub/Sub, RabbitMQ 等。有了 Knative 之后,整个 Kubernetes 体系就面貌一新了,我觉得 Kubernetes+Istio+Knative+Riff 将会成为云应用平台的一个发展方向。

事实上,我们身处一个复杂多变的世界,企业和组织面临着各种各样的境地和挑战,这说明云发展方向也将会存在多样性。大会第四天也是最后一天,大会接近尾声,在这天的主会场,演讲嘉宾给我们讲述他们软件团队曾经面临的困境。StubHub 是 eBay 旗下的全球最大的票务网站,每年购票人次达 1.5 亿,客户遍布 48 个国家和地区,提供超过 100 万项体育、娱乐和其他现场活动的票务服务,但是他们面临系统分布式架构和业务快速迭代的问题;星展银行(DBS Bank)是东南亚最大的银行,有 280 多家分支结构,为广大个人用户提供丰富多彩的个人金融业务和应用,但是他们面临着系统应用单体化、用户体验和开发人员效率的问题。在企业数字化创新这一趋势下,他们都选择了 PCF 平台和 Pivotal Labs 服务,将应用平台云化,将应用架构微服务化,将应用部署自动化,将团队敏捷化,现在,他们的系统两年内无停机无业务中断,软件迭代速度提升了十多倍,人工的繁琐运维工作大为减少,他们已经取得了令人惊叹的进步。

SpringOne 大会历时 4 天终于落下帷幕。百余场讲演,大咖云集,干货满满。从 TDD/CI/CD/DevOps 敏捷开发工具和组织结构的最佳实践,到企业数字化转型时应用往云上迁移的实例介绍,如数家珍;从 Java 和 Spring 未来几年的兼容版本和发展路线,到 SpringFramework5 的 Web 和 Data 层面的 Reactive 的全栈支持,娓娓道来;从 PCF on AWS 环境如何用 ServiceBroker 调用 S3 等 AWS 服务的动手练习,到 GCP 上部署 Riff 并快速实现函数即服务的实操演练,逐一讲解;从基于 SpringBoot2 和 SpringCloud 的云原生应用开发的代码分析,到 Kubernetes 环境快速构建部署应用或函数的 Istio/Knative/Riff 等新技术的介绍和 Demo 实现,均有涉猎。

四天的时间收获很多,我聆听了多家企业将遗留应用迁移到 PCF 上的实例介绍,吸收了一些 Spring 测试、安全或是 Reactive 方面的技能,也接触了 Istio、Knative 和 Riff 这些新兴的技术,但我觉得最大的收获,是看到了当今云平台的发展方向,PaaS 和 CaaS 在相当长的一段时间依然会是企业应用部署的首选,而 FaaS 的时代即将到来。

最后我要说的是,SpringOne Platform 大会虽然很好,但是飞行十四个小时到美国华盛顿特区确实比较辛苦,还要倒时差,而且那边饮食也不习惯。一个好消息是 SpringOne Tour 大会即将于 11 月 3 日在北京举行,多位刚刚在华盛顿 SpringOne 大会上发表演讲的全球知名技术专家都将专程赶来。这绝对是 Spring 社区在中国的顶级盛会,点击大会官网:http://pivotal-china.com/html/event/springone_tour.html?channelID=gw可以免费报名。

语言 & 开发