漂洋过海去看你:寻找Spring之旅
Posted Pivotal
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漂洋过海去看你:寻找Spring之旅相关的知识,希望对你有一定的参考价值。
我行过许多地方的桥
— ParlayX, VPC, NSX, OVS,
看过许多次数的云
— AWS, GCP, Azure, Aliyun,
喝过许多种类的酒
— SS7, SMPP, SOAP, REST,
却只爱过一个正当最好年龄的
—Spring!
今年九月底,我有幸前往美国华盛顿特区参加2018年度SpringOne Platform大会。作为Spring、CloudFoundry、Redis、RabbitMQ等开源技术的拥有者,Pivotal公司每年都会举办一次这样的大会,与全球数千位开发人员、客户和合作伙伴相聚在一起,交流企业数字化转型的最佳实践,探讨云原生应用开发的最新技术。
我与Spring的前世今生
我最早使用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更加方便的开发和应用——开发符合微服务架构的云原生应用。我在参会之前,在大会官网上大概浏览了一下大会安排,对这次大会充满了期待。
在长途飞行十四个小时之后,我顺利抵达,一进入举办地盖洛德国家度假和会议中心,就看见了SpringOne Platform大会的指引和地图标识,随后按照指引进入会场。
本次大会的Session非常多,为了让参会者更好的安排自己的行程,Pivotal不仅在大会官网上提供了Session的介绍,还专门为与会者提供了手机APP来管理自己的大会行程安排,非常实用。
授之以鱼不如授之以渔
体验式教学First Day!
大会第一天,以开发人员参加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的强烈兴趣。
现场直击
干货满满的Day 2
大会在第二天,才算正式拉开帷幕,能容纳三千人的主会场大厅座无虚席,巨大的屏幕墙显示着代表科技创新的深海般的蓝色,在快要开始的时候,屏幕开始动了起来,一只凶狠无比的巨龙张牙舞爪,在田野和村庄间四处游荡,而四周一团一团的小人手持刀棒或是弓箭,却束手无策,难以将其制服。我看到这个动画忍不住笑了,那巨龙应该是比喻基于传统技术开发的巨型单体应用,而那一团一团的小人,则是指产品经理、开发人员、测试人员和运维人员,他们很难扩展单体应用,也很难修复bug或添加新功能,所以也就很难将其制服了。突然动画消失,这个时候著名的Spring布道师Josh Long登场,和另外一个主持一问一答,幽默风趣的宣布大会开始。
首先登场的是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团队.
Day 3带来的思考
以软件为导向的数字洪流中企业的必由之路
当前的世界处在快速发展之中,而且越来越以软件为导向,企业和组织应该如何进行软件资产的创新,来跟上世界变化的速度,这是大会第三天不少的主会场演讲者论述的重点。
当前,将应用部署上云已经成为业界共识,很多企业和组织,已经将应用迁移到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: Serving模块负责部署和运行无服务器化的函数负载,它支持函数的运行可由HTTP或Message请求驱动,弹性伸缩可至零,并可利用Istio实现集群内的路由分发以及进入集群的入口连接;
Build: Build模块负责将源代码构建成容器,它基于Google的容器构建服务,提供了一个可插拔的构建模型,可扩展实现多种构建方法,Buildpacks就是Pivotal提供的一种构建容器模式;
Eventing: Eventing模块实现函数发布和订阅事件流的能力,函数遵循CloudEvents规范来发送和接收事件,它也提供了可插拔的事件源和消息代理模型,轻松支持多种消息代理服务如Kafka, Google Pub/Sub, RabbitMQ等。
有了Knative之后,整个Kubernetes体系就面貌一新了,我觉得Kubernetes+Istio+Knative+Riff将会成为云应用平台的一个发展方向。
Day 4
探索突破云发展方向的困境
事实上,我们身处一个复杂多变的世界,企业和组织面临着各种各样的境地和挑战,这说明云发展方向也将会存在多样性。大会第四天也是最后一天,大会接近尾声,在这天的主会场,演讲嘉宾给我们讲述他们软件团队曾经面临的困境,分享了他们的案例,其中StubHub与星展银行(DBS Bank)的案例为我留下了深刻印象,与大家分享。
StubHub是eBay旗下的全球最大的票务网站,每年购票人次达1.5亿,客户遍布48个国家和地区,提供超过100万项体育、娱乐和其他现场活动的票务服务,但是他们面临系统分布式架构和业务快速迭代的问题;
星展银行(DBS Bank)是东南亚最大的银行,有280多家分支结构,为广大个人用户提供丰富多彩的个人金融业务和应用,但是他们面临着系统应用单体化、用户体验和开发人员效率的问题。在企业数字化创新这一趋势下,他们都选择了PCF平台和Pivotal Labs服务,将应用平台云化,将应用架构微服务化,将应用部署自动化,将团队敏捷化,现在,他们的系统两年内无停机无业务中断,软件迭代速度提升了十多倍,人工的繁琐运维工作大为减少,他们已经取得了令人惊叹的进步。
大会总结
Spring世界的盛宴
SpringOne大会终于落下帷幕。算不上技术粉的我何其幸运,一览了Spring世界的繁华。四天的时间,百余场讲演,大咖云集,干货满满。从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社区在中国的顶级盛会,报名免费开放中,话不多说我现在就去注册了。
点击下方“阅读原文“即可报名
以上是关于漂洋过海去看你:寻找Spring之旅的主要内容,如果未能解决你的问题,请参考以下文章