极客视点
极客时间编辑部
极客时间编辑部
113244 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/06:23
登录|注册

阿里雷卷: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 在跟进某些技术上面的速度比较快,它往往能够很快知道客户新的需求是什么。
以上就是今天的内容,你也可以点击原文链接了解雷卷对领域驱动设计、Reactive 和 RSocket 的技术趋势解析。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
Service Mesh
FaaS
代码智能
显示
设置
留言
收藏
29
沉浸
阅读
分享
手机端
快捷键
回顶部