|

数字化转型浪潮滚滚而来,越来越多的企业开始拥抱云原生。根据云原生计算基金会(CNCF)最新调查显示,云原生技术如今已无处不在。
与此同时,容器也已成为常态,在2019年,有高达84%公司应用容器技术,而在2016年初次调查时仅为23%,增长可谓神速。其中有78%的受访者使用K8s来管理容器。
源于一个朴素的想法
早在2016年起,K8s便开始崭露头角,并逐渐在行业中获得重视。K8s确实解决了计算平台上一些现实问题,但在Developer层面还不够友好,即在K8s上开发,不仅要了解K8s的概念和它的API,还要对其各种工作方式了解。
微软首席程序员白海石
这引起了一位有着长达33年编程经验的资深程序员的重视,他就是微软的首席程序员白海石。
据白海石介绍,当时的想法非常朴素,即能不能创建一个和平台无关的应用程序的设计语言,让开发者在设计应用程序时,不必过多关注底层基础架构,转而专注于应用程序的拓扑结构。OAM「Open Application Model」由此诞生。
在后来讨论OAM的过程中,白海石的一位以色列同事Yaron Schneider希望更进一步,设计一个新的编程模式,将分布式系统常见的功能封装成一个边车「sidecar」,通过http或gRPC暴露给开发者。就这样,DAPR「Distributed Application Runtime」也诞生了。
与过去分布式系统的思路相比,DAPR有很多不同:
首先,该设计没有侵入性,因为应用程序本身不需要引用任何DAPR的程序库,也不需要与DAPR相关的任何东西,所有都是基于标准的http边车的端口进行调用;
其次,其设计理念可以让开发者选择性的使用DAPR的全部或部分功能,并不强制用户从头到尾必须采用DAPR提供的全部功能,严格按照其编程模式来设计程序;
最后,DAPR支持各种编程语言,只要通过http或gRPC进行交流,所有现代语言均可使用DAPR。
OAM和DAPR都是针对开发者设计的,他们位于一个分布式系统中的两个不同层面。OAM在更高层,用来描述应用程序整体的拓扑结构,而DAPR更进一步,用于解释每一个部件内部是如何实施的。
OAM应用模型
OAM与DAPR的宗旨是要为开发者,特别是企业级的开发者,在设计和实施分布式系统时提供一些帮助。随着企业数字化转型进程的发展,很多传统企业也开始将应用程序向云中迁移,而这过程实际上还是非常复杂,而通过OAM和DAPR这种比较简单的应用程序模式和编程模式,为开发者提供一些便利,助其在云上高效开发。
开源是一个很自然的选择
OAM和DAPR已经开源。白海石认为,这两个项目的开源是一个很自然的选择,因为要做一款通用的应用模型和分布式系统的编程模式,离不开社区的支持。其设计理念、具体实施,都需要经过社区来验证,在社区的共同努力下,让项目朝着开发者更友好的方向发展。
而过去传统的产品渠道,在半封闭的情况下,从开始到相对完整的版本,再推到社区,基于用户的反馈,再进行下一次迭代。这样的话,更新速度太慢,同时也不能同步考虑社区的不同需求和意见,多少有些后知后觉。
而通过开源的方式,一开始便与社区一起工作,能够让系统在架构上、功能上,更贴近最终产品想要达到的广泛应用,因此这两个项目的开源,是一个极度自然的选择。
目前,这两个项目的进展都很顺利,DAPR如今是每三周有一个新的小版本发布,预计到今年的9月份,会推出1.0版本;OAM稍微慢一些,因为它要设计应用程序模式,其中还存在很多的不同意见,需要不断进行讨论。目前已经发布了Alpha 1版本,Alpha 2近几周也会发布,下一个目标是Alpha 3,更长远的一些目标还在讨论中。
在OAM层面,阿里巴巴是非常重要的合作伙伴,不仅在规范制定本身,包括后台的实施,都提供了非常多的力量来支持。此外,还有其他合作伙伴,在OAM合作中是非常融洽的,整个过程都是非常平等、融洽的进行,有问题大家共同修补。当然,也有很多激烈的争论,但这对项目发展都是健康的,旨在将项目做得更好。
另据白海石介绍,OAM和DAPR这两个开源项目在社区中接受程度都很好,特别是DAPR,在很短的时间内就达到了5K Star,其内部还做了一个图谱来跟踪DAPR Star增长情况,其增长是直线上升的,开发者的反响超出了预期。
简化K8s开发,支持在云与边缘中自由切换
DAPR的设计理念就是为了给开发者提供便利。在写分布式系统时,通常将开发者需要完成的任务封装成DAPR的功能,暴露给开发者。例如DAPR提供状态管理、服务发展、消息收发、发布与订阅、安全信息管理等,目前提供的功能是分布式开发者需要做的事情,其目的就是希望通过简单的API,将这些功能暴露给开发者,进而高效开发。
此外,开发者并不需要局限于DAPR中,以状态管理为例,是以键值对的方式存储或读取状态,仅需一个键值和要存储的数据,即能完成数据的存取。该功能看似简单,实际封装了一些典型的数据行为,进行实现一些比较安全的分布式代码。
同时,在后面的数据源中加入了自动重试,比如连接失败会重试,在内部加入了自动的版本管理和并发控制。在缺省的情况下,即便开发者不太了解分布式编程,也能书写出比较可靠的分布式代码。如果,开发者对分布式状态管理有一定了解,想要采用更高级的线程处理方式或并发形式,DAPR也是允许的。
由于K8s的流行性,很多情况下需要将应用程序运行在边缘K8s的Class上,这是因为K8s提供高可用、浓缩转移、水平缩放,这在云上和边缘上都是需要的。DAPR虽不依赖K8s运行,但能够完美支持K8s,使得应用能够在云计算和边缘计算两种不同的平台中运行。
对于一些低能力的设备,无法运行K8s或Container。由于DAPR本身支持松散进程的运行方式,即DAPR能够单独做一个进程,不需要依赖K8s或Docker,使得DAPR能在更低能力的设备商,运行同样的编程能力。
值得注意的是,很多边缘计算的方案都有边缘和云的部分,如何将边缘和云协同起来非常关键。而DAPR提供了从边缘到云比较统一的编程模式,即使未来需要在边缘和云之间部署方式和位置进行调整,也能灵活的在边缘与云之间自由切换。
未来的一些思考
OAM和DAPR这两个开源项目,目前还处于早期的快速发展阶段,虽然已经在部分企业中得到运用,但未来还有很长的路要走,在这里,白海石也提出了一些思考。
OAM从Alpha 1到Alpha 2过程中将进行一次重构。因为在Alpha 1中,其资源的调度与管理是合在一起的,在Alpha 2版本中将会分开,通过一个比较抽象的资源调度,连接不同的平台,对平台资源进行管理。
例如,可以将同一套OAM应用程序,既能连接阿里云也能连接Azure。对OAM而言,这是两个不同平台的选择,但对OAM本身工作调动逻辑或工作描述的方式是不变的,使得OAM支持多云平台。
此外,OAM团队也在考虑,如何实施一个专门为边缘计算开发的平台,即一个应用程序可以发布在云上,也可以发布在边缘计算上。
DAPR也有几个方向:首先,希望它更轻量化,目前DAPR本身很轻量,只有50多M,运行时仅需4M内存,在当下的计算环境中非常轻量。但DAPR团队希望做的更轻量,以便能在更小的设备中运行。
另外一点,希望开放DAPR的自定制功能。实际上,DAPR是将分布式系统常用的功能封装成边车的方式暴露给开发者,但这些常用功能都是DAPR团队想到自定义的,如状态管理、消息收发等。未来,这部分是不是可以开放出来,特别是机器学习的模式,例如开发者训练了一个机器学习的模型,他可以通过DAPR将它封装成一个功能型边车,发布给其他开发者,这个应用场景将来会很多,非常值得期待。
One more thing
至此,此次的采访已经接近尾声。但近年来微软有了一个非常明显的变化,即拥抱开源。在此,白海石也解读了微软为什么要拥抱开源。
白海石认为,主要有三个方面:第一,从云计算发展的现实角度看,无论云中运行的是微软还是第三方的产品,最终消耗的还是云平台的计算资源。因此,拥抱开源,就是拥抱各种工作方式、各种工作流、各种系统,都能迁移上云,这对Azure的发展大有裨益。
第二,从Satya Nadella领导层文化的转变,自上任伊始,便喊出Microsoft爱Linux,进而带动微软在开源领域不断开拓创新,在开源领域不断贡献力量。
第三,在软件行业,所有企业、机构、组织都在拥抱开源,可以说这是一种发展趋势,这也将融入微软年轻一代的文化之中。
作为一位有着33年编程经验的资深程序员,对于开发者们普遍面临的焦虑问题,白海石有着自己的体会。他表示,作为一名程序员,最重要的还是喜欢这个行业,这份工作很多情况下是枯燥和寂寞的,但如果喜欢的话,一旦从中钻研出对世界有帮助的东西,这是非常鼓舞人心的。只有对事业本身的热爱,才能吃的下苦,做出有意思的事。
值得所有人学习的是,白海石常年坚持技术内容输出,至今已经出版了8本云计算方面的书籍。另外还有两本已经进入写作进程,一本是关于DAPR的,另外一本是讲边缘计算的。白海石认为,分享知识是一个很自然的事情,这或许和他的家庭环境有关,他出生在一个教师世家,从小便耳濡目染,希望不断学习,并将学习成果分享给更多人。同时,白海石在美国的偏远地区支教,如今已是第四年。他也呼吁,所有人都应该尽量学习,尽量分享。
对于云计算的未来发展,白海石认为,当前的竞争核心在PaaS层面,IaaS层面更多的是如何提升增值服务,如安全性、工具整合、合规等等。在PaaS阶段,K8s处于较为明显的胜出状态,因此主要以K8s为核心,即如何在云平台上把K8s的架构运行的更好更高效,为用户带来更好的管理体验。下一个竞争热点将是SaaS,看哪家的增值服务更具吸引力。
想了解更多有关OAM和DAPR的相关内容,就抓紧报名微软在线技术峰会吧,在“现场”聆听白海石老师的技术分享。除此之外,更有微软老大Satya Nadella等一众科技大佬亲临,有关微软一切的一切,都能在此次大会中得到答案。
演讲日期:4月17日
时间:11:40-12:30
演讲标题:OAM与DAPR:关于云原生的一些朴素想法
码上报名,与科技大佬零距离接触 |
|