一次偶然的机会,看到了活动行上有个dapr和OAM的技术沙龙推荐。由于之前对OAM和dapr在去年刚推出来的时候,都有一定的关注,并且都是跟Kubernetes容器技术有着密切联系,因此,赶紧报名来学习学习。

Anyway,2020年第一次技术沙龙,比想象中来得更早一些。

沙龙之前,我所知道的OAM是什么,dapr又是什么

  • OAM,定义了云原生时代的应用发布模型

先说OAM,全称「Open Application Model」,是由微软和阿里巴巴在去年10月共同发布的开源应用模型(spec),诣在帮助定义云原生应用更方便地交付和发布,而且是跨平台的抽象模型。一段英文描述能很好解释OAM的意义:

A platform-agnostic open source specification that defines cloud native applications. It is designed to solve how distributed applications can be composed and then successfully handed off to those responsible for operating them.

最近阿里巴巴一直在社区里为OAM打call,推出了基于Kubernetes,用rust语言实现OAM spec的Rudr框架,实践了“以应用为中心,分离开发(Application Developer)、应用运维(Application Operator)、基础运维(Infrastructure Operator)三种角色的关注点”这一系列的OAM理念。下面是一张官网架构图:

感兴趣的童鞋还可以看看公众号「阿里巴巴云原生」文章。

  • dapr,定义了云原生时代的应用编程模型

再说dapr,全称「Distributed Application Runtime」,主要是由微软开发维护的云原生应用的开发编程模型。下面是一段英文定义:

Dapr is a portable, event-driven runtime that makes it easy for developers to build resilient, microservice stateless and stateful applications that run on the cloud and edge.

它的出现,是为了解决开发微服务应用时,突破开发语言的限制,在获得开发便利性的同时,兼具企业级应用的特点,如事件驱动、消息订阅等,一步到位满足云原生时代的开发者需求。下图是一张dapr运行在Kubernetes上的示意图:

令人印象深刻的技术分享

一天的技术分享都很精彩,我把印象深刻的部分,记录下来,分享给大家:

  • 微软Principal Program manager还在写代码

首位分享嘉宾是来自微软美国总部的Mark,他的title是Principal Program Manager(据我所知,Principal级别在外企是非常高的了,看来微软很重视这两个新技术的推广,特地从美国请来重量级人士)。Mark上午首先给大家普及了什么是OAM,从Application-focused的角度,阐述了OAM给不同角色带来的好处:

现场有人问了目前OAM成熟度如何,Mark的回答是目前阿里巴巴正在重度使用,所以质量有保证,这意思是阿里巴巴背书靠谱呗。

还有人问,OAM推行的跟其他类似技术有什么差别?Mark说“站在这些技术的肩膀上。通过一个标准,后端透明。Abstract way to define everything u need”。

期间我也关注到了「cloud+edge」这一趋势,不知道大家怎么理解edge computing,也就是边缘计算,这个概念在2019年下半年被炒得热度很高,可能2020年它的热度会更高。

下午的第一场还是Mark,这次是普及dapr,不但是ppt讲得溜,还亲自上阵给大家现场代码演示demo,不禁令人感叹:外国的manager都是可以现场码代码的!

下面是Mark大佬的高清无码图:

  • 阿里出品,实属宝贵经验

现在是「国际IT巨头」的阿里巴巴这次来了两位大神。先说第二个分享的孙健波大神,公众号里拜读过他不少文章,绝对是大神级人物。果不其然,现场分享时声音宏亮、口齿清晰、思路明确,讲的内容更是非常有价值,一看就是在各种大会上历练过。他分享主题是:「Build Discoverable and Manageable CRD + Operator In Prod」。首先讲了阿里巴巴在容器化、云原生化这条道路上的历程,同时引出了遇到的主要问题:

  1. k8s operator虽好,但是复杂高,难以上手
  2. 通过一个CronHPA自定义CRD(实现定期扩容)的例子,阐述了k8s operator在一个集群里会越来越多,CRD也越来越多,无法知道不同的operator所关注的CRD资源是否有冲突(目前普遍的解法,是通过k8s admission controller验证资源绑定的有效性)
  3. 到处都是CRD,是否overused?
  4. 社区里每家都维护着自己的Application Operator,虽然都是开源,但是复用性不高,跟其他项目整合性也不高,导致无法深度使用或扩展。

孙大神表示,其实社区里有很多好的实践来解决上述的问题,但是缺乏共同协作,无法形成抽象模块化能力。另外,目前的Kubernetes提供的能力,其实包含了开发者、应用发布者、基础资源管理者多个角色的职责(这点,作为容器平台维护者,我深有感触)。那么,引入并使用OAM这个抽象模型,实现不同角色的关注点分离,让每个人就干擅长的事情,就可以逐步解决问题。可对照下图进行思考:

后面孙大神讲了「service binding」、「trait」、「app config」的使用实践,也都很精彩,给大家落地使用OAM模型提供了参照。

下面是孙大神的风采:

PS:我在github上找到了跟这次内容大致相同的演讲材料,可以在我的公众号(大卫李的IT技术分享)回复oam直接获取。

第二位来自阿里巴巴的大神,是EDAS团队的刘洋。他的分享主题是:「Revisit K8s API as a Paas Builder: what’s missing?」。他从一个平台运营管理者的角度,指出了基于Kubernetes技术的PaaS平台会有哪些问题:

通过引入OAM模型后,运维工作和开发工作分开,开发人员写component,暴露运行参数,运维人员来使用,这样就形成了约定,主体是开发人员。

最后,刘大神给出了自己总结,实践OAM模型对于一个平台来说,好处是开放、标准化、对用户来说操作更直观简单,管理成本也就降低了。同时,他也提到使用OAM也引入了更多的Controller,其带来的资源消耗需要加以考虑、以及从其他应用体系迁移到OAM的成本问题。

下面是刘大神的风采:

  • 来自东北的微软资深工程师,他是dapr的“创始人”之一

最后一个分享是个workshop,一位来自东北,但长居美国的微软资深工程师,来给大家介绍如何上手dapr。作为dapr的最早开发者之一,这位东北大佬一开始就给大家分享了dapr的发展史,原来dapr的原型最早是在2017年推出的,由于是基于Actor编程模型,因此一开始的名字叫「Action」。后面渐渐发展成使用流行的sidecar模式,并且只基于简单的http协议进行互相通信,功能也越发与时俱进了,名字也就更高大上了。

介绍完dapr架构设计后,大佬给大家介绍了如何向dapr社区进行contribute。目前社区贡献率最高的repo——dapr-components-contrib,很多开发者基于dapr 组件开放解耦模式,贡献了自己觉得有用的组件,如state store组件,官方原来只有redis作为实现,现在社区已经有了包括consul、etcd、cassandra等多达10种 的实现了,所以,如果你有想法,就赶紧来contribute吧。

最后,他给大家演示了一个dapr的hello world例子是怎么运行起来的。由于我之前已经跑起来了一个例子(基于dapr cli+kubernetes+dapr runtime),也就没怎么听了。

下面是东北大佬的风采:

沙龙之后,我对OAM和dapr的理解和期盼

对于OAM,这个新的定义应用的标准,它的主张就是分离了运维和开发的关注点,本质上是各自定义了更倾向自己这一侧的资源类型,最终再组成一个富应用,进行交付和发布。我觉得理念非常好,值得学习借鉴。用的话,由于它目前的资源类型跟k8s原生是不一样的,对于k8s初级阶段使用者,学习成本不减反增,看看能不能在微软和阿里的大力推广下,后面会不会融进k8s变成标准。

对于dapr,它给开发者提供了一种开发云原生应用的编程框架,我觉得它提供的sidecar模式和SDK模式,其实跟service mesh技术很类似(比如最近很火阿里的MOSN),但定位不一样,目前的dapr更像是一组中间件组成的超级中间件,提供了很多out-of-box的功能,而目前的service mesh更侧重网络层面的通信管理,是个超级proxy。前面提到的微软东北大佬也说未来dapr可能也会做service mesh的东西,就看社区的导向了。对于想要快速构建云原生时代应用服务的团队来说,有着微软背书而且社区也相当活跃的dapr,值得一试。

令人印象深刻的场地——微软reactor,创业者们起飞的地方,

这是我第一次来到微软startup孵化基地,看到了很多明星创业公司在这里起步,也有高新科技的展示,拍了一点照片,大家可以领略下:

这里感谢下组织方人员,除了有丰富的点心饮料外,中午还有简餐,绝对业界良心了,据组织方说这里每周都会有一场免费的技术分享,有空大家一定要去啊。给点小建议,现场准备点共享充电设施,技术分享人多时间长,移动设备容易撑不住。

4 对 “2020年第一次技术沙龙——体验新云原生技术OAM&dapr”的想法;

    1. 银行这几年都在探索和发展新型金融科技,像云计算、大数据、人工智能都是重点发展方向。

发表评论

电子邮件地址不会被公开。 必填项已用*标注