重新定义软件架构的三个新兴技术

技术是一个不断发展的领域,虽然底层技术不会发生太大变化,但简单的组合创新就可能会重新定义软件系统架构和公司产品。

eBPF:重新定义网络、安全和可观察性工具

eBPF 是一项起源于 Linux 内核的革命性技术,它可以在特权上下文(例如操作系统内核)中运行沙盒程序(来源:ebpf.io)

eBPF(扩展伯克利包过滤器)是在 Linux 内核级别提供可编程性的抽象层,无需重新构建内核或加载任何模块。这不仅为应用程序开发人员,而且为安全、可观察性和网络产品的产品开发人员提供了大量机会。可观察性解决方案现在可以在节点级别进行检测,而不是在 Docker 容器级别进行检测,从而提高性能和洞察力。安全产品可以通过 L3-L7 级别的可操作性来实现具有更大控制力和更低资源开销的细粒度安全性。Cilium 的新Tetragon组件支持强大的实时、基于 eBPF 的运行时安全。

像服务网格这样的网络和基础设施解决方案已经开始应用基于 eBPF 的解决方案(例如Cilium)来避免 sidecar 的开销。

Istio 社区发布了一份白皮书,开始使用 eBPF 加速服务网格。Linkerd 和 eBPF 也可以按照本白皮书中的建议共存,其中基于 Cilium 的策略在 L3-L4 网络级别运行,Linkerd 在 L7 网络级别运行。BumbleBee是开始进行 eBPF 开发的绝佳工具。

28ac98044bdfecd6d22576b1b04eae64.png

虽然 eBPF 提供了速度和性能、沙盒安全性、统一跟踪、内核级别的可编程性等方面的巨大优势,但它更适合底层软件产品开发人员。

WebAssembly:重新定义 Web 应用程序开发

它由 Mozilla 于 2017 年发布,已被 W3C 接受为标准,现在得到 Mozilla、Microsoft、Google、Apple、Fastly、Intel 和 Red Hat 的支持。

WebAssembly(缩写为Wasm)是基于堆栈的虚拟机的二进制指令格式。Wasm 被设计为编程语言的可移植编译目标,支持在 Web 上部署客户端和服务器应用程序。(由webassembly.org定义)

所有主流浏览器都支持WebAssembly(缩写为 Wasm),支持 40 多种编程语言作为编译目标。通过浏览器中的小型 VM 支持,您可以使用 JavaScript 运行 Wasm 二进制代码(以支持的语言编写)。这为编写近乎原生、高性能、高效的 Web 应用程序开辟了广泛的可能性。请注意,Wasm 不是 JavaScript 的替代品。

虽然 C、C++、Rust 和 Golang 是生产级 WebAssembly 的最佳支持,但其他语言也已经开始成熟。

Emscripten是一个完整的 WebAssembly 编译器工具链,使用 LLVM,特别关注速度、大小和 Web 平台。不用担心,因为您可以使用特定于语言的抽象/工具来处理生成。

对于 Python,PyScript已在PyCon 2022中宣布支持 WebAssembly。

对于 Java,GraalVM、Wasmer、JWebAssembly和TeaVM已经开始为 WebAssembly 提供支持。

以下是构建 WebAssembly 程序的参考开发步骤集:

17d88caefe0d354ba66f6853a12b2fa4.png

Rust:重新定义系统编程

Rust 基金会成立于 2020 年,得到了 AWS、谷歌、华为、微软和 Mozilla 等公司的支持。作为 Stack Overflow 开发人员调查的一部分,Rust 连续第六年成为开发人员最喜爱的语言。

Rust 正在成为系统编程的首选语言,主要是因为低级内存管理、更高的性能、安全和并发优势。

AWS 已将其声明为系统编程的首选语言,并被用于Amazon Simple Storage Service (Amazon S3)、Amazon Elastic Compute Cloud (Amazon EC2)、Amazon CloudFront等。

Rust for WebAssembly ( wasm-pack ) 支持可用于利用 Rust 构建快节奏的 Web 应用程序,尽管它是一个相对较新的领域。

虽然 Rust 的 Web 开发仍在成熟,但有多个Web 框架可用,例如Rocket、Actix、Gotham等(参见下图或单击此处阅读有关 Rust 中 Web 框架的更多信息)。

a6f0687cad054309e9237f5148a55d2a.png

虽然在系统编程和工具开发(例如 AWS CLI、网络工具等)方面,Rust 是最具竞争力的编程语言之一,但它对 Web 开发(例如 REST API)的适用性仍在不断发展,其他语言(Java、 Python、Go 等)更适合它。

总而言之,虽然不同领域有各种新兴技术——这三种技术在软件架构会议、技术博客、设计讨论等中都位居榜首。它们将重塑应用程序架构的未来发展路线,并将帮助为不同的业务领域构建更快、安全、可扩展、灵活、高度可用和创新的产品。

8d430ff37dad7543eaf42b7159ee1ce7.png

推荐

中间件的过去、现在和未来

添加 K8S CPU limit 会降低服务性能?

随手关注或者”在看“,诚挚感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值