阿里雷卷:3个软件开发最新趋势解析
极客时间编辑部
讲述:丁婵大小:8.77M时长:06:23
你好,欢迎收听极客视点。
最近,阿里云原生团队资深技术专家雷卷(陈立兵) 在一次直播中,谈到软件开发的几个趋势,公众号“阿里巴巴中间件(ID:Aliware_2018)”对直播内容做了整理。本文精选了雷卷对 Service Mesh、FaaS 和代码智能这三个技术趋势的解析,帮助你更好地了解软件开发趋势和技术实现。
Service Mesh
Service Mesh 在目前的技术趋势中占据很高的地位。典型的 Service Mesh 架构还是基于 Istio+Envoy 的 Sidecar 经典架构。后来出现了 Dapr,它与 Isito+Envoy 架构的区别在于 Envoy 的 Sidecar 可以理解为代理,其目的在于将服务连接起来。
Dapr 也会有一个 Sidecar ,这个 Sidecar 不只是做代理那么简单,而是可以帮助开发者做非常多的事情。比如使用新的开发语言实现应用,但是 Kafka 或者 NoSQL 数据库并没有提供对应语言的 SDK ,或者即便提供了对应语言的 SDK ,这些 SDK 也并不稳定,此时选择一些新的技术就会受到一些约束。
举个例子,如果大家做一些大数据相关的工作,比如 HBase、Hadoop 等都是 Java 相关的 SDK 最稳定。而 Dapr 的 Runtime 可以很好地与外部系统交互,比如应用 gRPC 与 Dapr 的 Sidecar 通信,也可以和 Kafka 通信,将从 Kafka 中获取的数据传递给 gRPC ,并且 Dapr 的 Runtime 使得开发者不需要了解通信协议背后的细节。
这样的设计比 Isito+Envoy 架构要更好,因为如果只做代理,那么在客户端还需要做大量的数据处理工作,而如果放到 Proxy 上来实现,就会更加复杂,此时就会变成 Dapr 的 Runtime。
此外,阿里巴巴最近在做一些尝试就是 RSocket Broker ,其基于 Reactive Mesh 实现。但它与 Sidecar 结构不同,因为大多数基于消息或者事件驱动的都只需要发送消息即可,而 RSocket Broker 提供了应用之间的一揽子通信协议,不需要再选择其他通信协议了。
对于以上三种技术方案应该如何选择,你可以根据自身的实际情况进行判断,因为技术选型没有绝对的正确,但是目前来说, Isito+Envoy 架构受到了大多数人的欢迎,因为这与 Kurbernates 整合比较方便,并且目前已经提供了比较完善的基础设施。
FaaS
对于企业而言,可能核心系统只有几个,但是总会有一些长尾的应用。如果之前没有很好的 FaaS 方案,那么可能会做一个大而全的系统将这些小功能融合在一起。此时造成的问题就是修改代码困难,也不利于技术革新。FaaS 的好处在于可以将函数部署到边缘,比如 CDN 边缘或者 Edge 端。
在通信部分,FaaS 主要是 Message+EventDriven 的,而目前很多的通信协议会用到 gRPC ,因为 FaaS 本身要求响应速度比较快,因此对于通信协议具有一定的要求。gRPC 的接口相对比较底层一些,在此之上还做成了 Reactive gRPC 能够更方便大家通过 Reactive 来操纵 gRPC ,但是在写代码的时候可能并不知道是底层是基于 gRPC 的。
在技术趋势中还有一个叫做 AsyncAPI ,其实在工作中,很多框架都支持从代码直接生成 OpenAPI ,比如 SpringDoc 等。
目前还有一个技术趋势是 FaaSWebAssembly ,这也是和 FaaS 结合的。众所周知,如果 FaaS 不是高频使用的话,会出现容器拉起时出现一定等待时间的问题,但是在某些场景下,对于等待时间存在比较严格的限制。此时如果使用传统容器的解决方案往往难以实现,而 WebAssembly 这种技术解决方案就能够充当函数的钩子,能够满足上述需求。
同时,由于 WebAssembly 也是 W3C 新推出的规范,和之前的 HTML、CSS、JS 网页三剑客结合成为了网页四剑客。此外,在 FaaS 部分,还有最近推出的 Deno 可以很好地支持 WebAssembly 机制。因为很多开发人员会关心 Rust 这一编程语言,Deno 对于 Rust 具有良好的支持,因此很多人会选择使用 Deno 作为 FaaS 的 Runtime 来支持 FaaS 的运行。
代码智能
技术架构能够满足企业的架构选型,而真正的架构实现还需要代码来完成。对于代码而言,主要有两点,一是代码生成,二是手写代码。代码生成主要是脚手架,能够快速将代码的框架生成,而不需要自己写配置项等,目前这项技术已经非常成熟了。
这部分的工具主要有 IntelliCode 、Codota、Kite 以及各种 Cloud IDE 等。在写代码的时候会遇到的问题就是技术往往变化很快,每间隔 4、5 个月就会推出新的框架或者技术,而因为开发者关注的是开发效率,所以即使有 Code AI 能力,但是在某种程度上还是会依赖 Cloud IDE 特性。因为 Cloud IDE 在跟进某些技术上面的速度比较快,它往往能够很快知道客户新的需求是什么。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论