Fork me on GitHub

通过 Radius 实现Dapr 云原生应用程序开发协作

Microsoft Azure 孵化团队很高兴地宣布[1]推出一个名为 Radius 的新开放应用程序平台,该平台将应用程序置于每个开发阶段的中心,重新定义应用程序的构建、管理和理解方式。Radius是一个开源项目,支持跨私有云,Microsoft Azure和Amazon Web Services部署应用程序,未来还会有更多云提供商。

Microsoft Azure 孵化团队专注于开源创新,该团队还推出了多个流行的开源项目,包括Dapr[2]KEDA[3]和Copacetic[4],所有这些都是云原生计算基金会(CNCF)项目, 像 Kubernetes 这样的云原生技术使得构建可以在任何地方运行的应用程序变得更加容易。与此同时,许多应用程序变得更加复杂,在云中管理它们变得越来越困难,因为公司构建由互连服务组成的云原生应用程序,并将其部署到多个公共云及其私有云。虽然 Kubernetes 是一个关键的推动者,但我们看到许多客户在 Kubernetes 上构建抽象,通常专注于计算,以解决其局限性:Kubernetes 没有正式的应用程序定义,它混合了基础设施和应用程序概念,而且非常复杂。开发人员也不可避免地意识到他们的应用程序需要的不仅仅是 Kubernetes,包括对应用程序编程接口 (API) 前端、键值存储、缓存和可观测性系统等依赖项的支持。面对开发人员面临的这些挑战,其企业 IT 同行还必须实施不断增长的企业标准、合规性和安全要求矩阵,同时仍能实现快速的应用程序创新。微软发布的分布式应用程序运行时 (Dapr) 开发现代应用程序的新方法来应对微服务开发的复杂性,这是微服务和云原生应用程序的一个平台和语言无关的运行时。

Dapr 的体系结构对于开发人员来说非常迷人,尤其是那些熟悉 20 世纪 90 年代 COM 或 EJB 的开发人员。与 COM/DCOM 和 EJB 为在 Windows 和 Java 上运行的分布式应用程序提供管道的方式类似,Dapr 基于容器化、云原生、微服务的应用程序所需的繁重工作。Dapr 有三大元素:运行时、 服务构建块和SDK

image

Dapr 运行时可以安装在任何可以运行 Docker 的计算机上。核心运行时是容器化的,可以部署在运行 Linux、Windows 或 Mac 操作系统的 x86/ARM 处理器上。它也可以安装在多节点 Kubernetes 群集中,也可以安装在资源受限的边缘设备(如树莓派)上。

Dapr 使得使用在同一主机、内部或外部数据服务以及基于 pub/sub 模式的消息传递服务中运行的其他微服务变得非常简单。由于 Dapr 使用Sidecar 模式,因此可以轻松地集成在 Kubernetes 上运行的微服务,以利用构建基块。Dapr 构建基块充当配置为组件的内部/外部服务提供商和内部使用者之间的中间层。由于每个服务的使用者始终与一个众所周知的终结点通信,Dapr 只需将调用重定向到当前配置的组件。

为了使不同语言使用 Dapr 更自然,它还包括用于 Go、Java、JavaScript、.NET 和 Python 的语言特定 SDK。这些 SDK 通过语言封装的 API 而不是调用标准 http/gRPC API 公开 Dapr 构建基块中的功能,例如保存状态、发布事件或创建Actor。这使开发人员能够用自己选择的语言编写无状态和有状态函数和Actor的组合。

image

基于Dapr 开发的应用程序的构建、管理和运营存在很多挑战。对开发者而言,基础设施的管理复杂性以及缺乏对构成其应用程序资源的可见性已经成为障碍生产力提升的关键因素;对运维团队而言,部署过程中缺乏标准化 / 自动化机制,则很可能导致其失去对基础设施的控制能力、降低对所部署应用程序的信心。最终,开发团队交付的成果在平台和云服务商之间出现使用体验脱节。面对现实问题,陈旧的工件列表往往很难帮助开发者和运维者确切了解自己的应用程序在不同工具集中到底是怎么组合起来的。

10 月 18 日,微软 Azure 孵化团队正式发布开源应用平台 Radius[5],该平台将应用程序置于每个开发阶段的中心,重新定义应用程序的构建、管理与理解方式。目前,Radius 维护团队正在将 Radius 提交至 CNCF,微软、BlackRock、Comcast 和 Millennium BVP 等企业也在共同努力,确保 Radius 能够与更广泛的云原生社区同步发展。

GitHub 地址:https://github.com/radius-project

image

这是 Radius 的架构图。它显示了 Radius 的价值主张,就像应用程序图一样。它展示了与Radius配合使用的技术,例如Docker和Redis。它显示了Radius运行的基础设施,如Micorsoft Azure,Amazon Web Services和Kubernetes ,Radius 使开发人员能够了解他们的应用程序,并且知道您的应用程序不仅仅是 Kubernetes。Radius 可帮助开发人员查看构成其应用程序的所有组件,当他们添加新组件时,Radius 会通过处理权限、连接字符串等自动将这些组件连接到其应用程序。

Radius 还可确保应用程序使用的云基础架构满足成本、运营和安全要求。这些要求在配方中捕获,配方由支持云原生开发人员的 IT 操作员、平台工程师和/或安全工程师定义。Radius 将应用程序绑定到其依赖的基础结构,这使 Radius 能够提供一个应用程序图,以准确显示应用程序和基础结构如何互连。此图使团队成员能够查看并直观地了解应用程序的组成。

许多企业都是多云的,并且希望解决方案不仅在 Azure 上运行良好,而且在其他云以及本地上运行良好。因此,Radius从一开始就是开源和多云的。

借助 Dapr,Microsoft Azure 孵化团队帮助开发人员编写具有最佳做法、抽象、可移植性和与基础结构分离的微服务。现在,我们正在做同样的事情来定义应用程序的体系结构。这两种技术相辅相成:Radius 与 Dapr 配合使用,简化了 Dapr 配置。它们不仅支持可移植代码,还支持可移植应用程序


相关链接:

posted @ 2023-10-19 22:05  张善友  阅读(818)  评论(5编辑  收藏  举报