谷歌开源 Service Weaver,编写分布式应用程序的框架


谷歌宣布在 Apache 2.0 许可下开源 Service Weaver,一个用于构建和部署分布式应用程序的框架;允许用户将应用程序编写为模块化单体,并将其部署为一组微服务。目前,该项目尚处于早期开发阶段。

Service Weaver 由两个核心部分组成:

  1. 一组编程库,可让用户将应用程序编写为单个模块化二进制文件,仅使用本机数据结构和方法调用;
  2. 一组部署器,协助配置应用程序的运行时拓扑结构,并将其部署为一组微服务,本地或云上都可。

通过将应用程序编写过程与运行时考虑因素(例如应用程序如何拆分为微服务、使用何种数据序列化格式以及如何发现服务)分离,Service Weaver 旨在提高分布式应用程序开发速度和性能。

谷歌方面指出,在编写基于微服务的应用程序时,维护多个不同的微服务二进制文件的开销大幅降低了开发速度;Service Weaver 的出现就是为了解决这一问题,同时促使跨二进制文件的修改变得更加容易。“Service Weaver 是一个两全其美的框架:单体应用的开发速度,以及微服务的可扩展性、安全性和容错性。

Service Weaver 的核心思想是它的模块化单体模型。借助 Service Weaver,用户可以编写仅包含 language-native 数据结构和方法调用的单个二进制文件,然后将二进制文件组织为一组称为 components 的编程语言原生模块。示例,一个使用 Service Weaver 用 Go 语言编写的简单应用程序,由一个 main() 函数和一个 Adder component 组成:

type Adder interface { 
Add(context.Context, int, int) (int, error)
} 
type adder struct{ 
weaver.Implements[Adder]
}
func (adder) Add(_ context.Context, x, y int) (int, error) {
return x + y, nil
}

func main() {
ctx := context.Background()
root := weaver.Init(ctx)
adder, err := weaver.Get[Adder](root)
sum, err := adder.Add(ctx, 1, 2)
}

目前,Service Weaver 的 v0.1 版本为用户带来了用于编写应用程序的核心 Go 库、用于在本地或 GKE 上运行应用程序的多个部署程序,以及一组使用户能够为任何其他平台编写自己的部署程序的 API。值得注意的是,在 v1.0 版本发布之前,开发团队可能还会引入一些 breaking changes。

更多详情可查看官方博客。


相關推薦

2022-07-21

7 月 19 日,谷歌宣布开源量子编程框架 Cirq 的第一个完整版本 :Cirq 1.0 正式发布。 Cirq 是一个 Python 框架,用于编写、操作和优化量子电路。它专为近期的量子计算机设计,这些计算机具有几百个量子比特和几千个量子门,而 C

2023-06-12

便捷性,降低 Minio 应用开发门槛。 MinIO 是一款高性能、分布式的对象存储系统。Minio这款开源的分布式对象存储服务在国外已经相当受欢迎,并且国内也有多中小型互联网公司使用它来作为对象存储服务。虽然 Minio 相关的资料

2022-10-18

OS 提供了一个可验证安全的平台来保护用户的隐私,因为应用程序在逻辑上不可能违反内核的硬件安全保护,并且系统组件是可验证安全的。KataOS 也几乎完全用 Rust 实现,它为软件安全性提供了一个强有力的起点,因为它消除

2022-11-25

p; .NET 功能齐全的开源分布式作业调度系统,可从最小的应用程序到大型企业系统使用。 特性 简化调度作业 支持作业监视器 支持作业执行器 支持自定义作业存储组件(持久化) 支持自定义策略执行 内置周期、C

2023-10-30

中。 Wasmer 凭借其多样化的支持和专注于从通用桌面应用程序到 “便携式 ML/AI 应用程序” 的领域,目前仍然是领先的 WASM 运行时之一。

2022-09-28

计算资源减少了 90%,这反过来又导致谷歌最大的 Angular 应用程序的构建时间减少了大约 50 分钟。 同时,Angular 团队还推出了征求意见稿 (RFC),一个获得反馈的机会,也是一个引入实验性变化的机会。在版本 13 和 14 中,谷歌

2022-04-27

tes 与 Istio 的 Serverless 架构方案,Istio 是 Knative 所依赖的 Service Mesh。 按照规划,Istio 本来就要捐赠给 CNCF;但在 2019 年 KubeCon 期间,谷歌却打破与 IBM 定下的协议表示,不打算在短期内将其流行的 Serverless 平台 Knative 或 Istio

2023-07-14

活跃的 CNCF 项目。 今年,Istio 社区还迎来了微软 Open Service Mesh 项目的维护者。合并后的团队将继续推动 Kubernetes Gateway API 的开发,该 API 与 Istio 的流量管理模型一脉相承。 “我们很高兴欢迎 Microsoft 加入我们的社区,因为他

2023-06-30

uni-app 应用到 Google Play,经审核测试确认已解决。 其实谷歌这次突然调整规则,受影响的不只是 uni-app 开发者,所有包含安装 APK 代码的 App,即使采用原生开发,也会被 Google Play 下架。 程序员发帖称自己用开源框架 uni-app

2024-04-26

服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能。 定位 构建成熟的、完善的、全面的,基于 OAuth2.1 的、前后端分离的微服务架构解决方案。 面向企业级应用和互联网应用设计开发,既

2022-03-14

者一个浏览器可能与 Web 标准不同,从而导致网站或 Web 应用程序用户的体验,Interop 2022 旨在通过 Web 兼容性测量来捕获和解决这些问题。 以上是 10 个新的 Web 兼容性规范,此外还有 5 个从 Compat 2021 继承下来的规范标准: Aspec

2022-10-01

开发,维护。 RPA 机器人流程自动化(RPA)系统是一种应用程序,它通过模仿最终用户在电脑的手动操作方式,提供了另一种方式来使最终用户手动操作流程自动化。 Notification 实现统一的终端消息提醒服务。 关于openKylin社

2022-06-20

用每个平台的 Webview 技术栈为所有主要桌面操作系统构建应用程序,目前支持 Windows/macOS/Linux 等平台。开发者通过 Tauri 几乎可以使用任何编译为 HTML、JS 和 CSS 的前端框架来构建桌面 UI。 Tauri 核心库采用 Rust 编写,使用 Tauri 开

2022-10-21

箱项目提交给 CNCF。ko 是谷歌在 2019 年开源的 Go 应用程序的简单、快速和安全的容器镜像构建器,最近还添加了一些新功能,包括多平台支持和自动 SBOM 生成。 就像谷歌的 original team 一样,现如今许多开源和企业开发