微软Radius平台重构现代应用程序部署

微软Azure孵化团队日前推出一个叫Radius的新应用平台。

微软Radius平台重构现代应用程序部署

Radius (图:Pixabay)

微软的 Azure 孵化团队日前推出一个叫 Radius 的新应用平台。Radius 平台可用于在 Kubernetes、公共云和边缘环境中运行各种现代应用程序。

Radius 是一个开源项目,最初支持的应用程序运行时包括Kubernetes、Azure和AWS,以后还会支持诸如谷歌云平台等云环境。

Mark Russinovich 是微软云平台 Azure 的首席技术官,也是 Radius 的架构师。Russinovich 与微软执行副总裁Scott Guthrie一起重构了原先的 Windows Azure,使其成为一个引人注目的公共云平台,可以叫板亚马逊网络服务(Amazon Web Services)。

Windows Azure当时的愿景是为微软.NET开发人员打造一个平台即服务(platform-as-a-service)产品。但开源的兴起和亚马逊 EC2 的迅猛发展迫使微软从头开始重构 Windows Azure,以支持基础设施和平台服务。Russinovich和他的团队将 Azure 构建为一个可扩展的框架,可以支持未来可能添加到云服务组合中的各种服务。

Azure 的可扩展性体现在一个多功能的控制平面上。Azure控制平面现在负责运行虚拟机及部署在微软公共云上的机器学习模型等等的所有功能。Azure控制平面还使微软能够将可扩展性能力扩展到由 Azure Stack 支持的私有云和边缘环境。

Azure 控制平面对 Radius有很大的 影响。两者都具有高度的可扩展性和可伸缩性。两者的主要区别在于,Radius 是一个开源项目,主要是以一组容器或进程的形式运行,可选择部署在 Kubernetes 中。Radius与 Azure 控制平面类似,也是为了和负责管理资源生命周期的独立资源提供商的接轨,例如Azure 或 AWS 等。

Radius 配备了一组资源提供商,用于管理以容器形式打包的应用程序。Radius 的初始版本中内置了 Azure 和 AWS资源提供商。添加其他云提供商(如 GCP)则只需简单地在 Radius 中创建和注册一个新的资源提供商即可。

Radius 平台的可扩展层名为 UCP 或通用控制平面,名字起得恰如其分。UCP 与 Azure 一样负责接受 API 请求,然后将其委托给 Kubernetes、Azure 或 AWS 等适当的资源提供商。

这里的重点是 Radius 大量借鉴了 Azure 的可扩展且可靠的资源管理方法。

将基础架构即代码扩展到应用程序

Radius使得无论应用程序部署在何处开发人员都可以对其进行定义。Radius 支持利用 Azure Bicep 和 Terraform 这两种流行的特定域语言(DSL)声明应用程序及其依赖关系。

使用 Azure Bicep 和 Terraform 声明应用程序是 Radius 的最佳设计决策之一。应用程序及其依赖关系的定义没有引入新的格式,因此消除了涉及学习新标记语言的学习曲线。

 微软Radius平台重构现代应用程序部署

Radius 平台(图:微软)

微软社区已经非常熟悉 Azure Bicep了。Azure Bicep是一种特定域语言,用于使用声明式语法部署 Azure 资源。用户可以在 Bicep 文件中定义要部署到 Azure 的基础架构,然后在整个开发生命周期中使用该文件重复部署基础架构。

Terraform 是一种流行的基础架构即代码工具。Terraform 已成为声明式管理云服务生命周期的事实标准。几乎每个云提供商和基础设施资源提供商都有 Terraform 模块。

Radius 团队没有做重新发明轮子的事,而是采用了 Bicep 和 Terraform 作为定义应用程序的 DSL。虽然对 Terraform 提供商的支持尚未实现,但已在 Radius 的路线图上了。

 Radius将开发者和运营者的角色分开

Radius的核心功能之一是创建配方,可以将创建配方视为由企业中央IT团队定义和管理的服务目录。Radius配方隐藏了底层服务的实现,例如数据库、消息队列、存储服务和缓存服务。

运营团队则需要定义和发布抽象实现细节的配方。当开发人员想要使用 SQL 数据库时,他不需要知道服务实际部署在哪里。他可以引用现有服务,并在 Bicep 或 Terraform 定义中以声明方式将其绑定到自己的应用程序。这类似于开发人员在代码中导入一个库,而无须了解第三方模块的细节。

微软Radius平台重构现代应用程序部署

Radius 配方(图:微软)

开发人员利用配方的理念可以在不改变应用程序的情况下轻松地交换和移除依赖项。例如,在开发和测试环境中,他们可以使用打包在容器中的数据库,而在生产环境中则可以切换到高度可扩展、基于 SLA 的 DB 即服务。

从一开始就具有全面性和可扩展性

微软在Radius上进行投资,使其从发布之初就具有全面性。UCP 支持在 Kubernetes、Azure 和 AWS 云服务上运行的容器化应用程序。开发人员可以直接使用大量 Azure 或 AWS 云服务。添加 GCP 和阿里巴巴等其他云平台只是时间问题。

Radius 可以与 Dapr 无缝整合,Dapr 是微软的另一个开源项目,Dapr可轻松实现多云开发。开发人员可以将 Dapr 与他们的应用程序整合,运营人员可以在 Radius 模板中定义 Dapr 功能。

运营人员可以利用工作空间的概念使用本地配置文件管理多个 Radius 平台和环境,这是 Radius 另一个很棒的功能。开发人员可以轻松地定义和切换工作空间,在多个环境中部署和管理应用程序。这一功能与配方相结合使 Radius 成了开发人员和运营人员都能使用的超强平台。

要点

Kubernetes 的复杂性在不断增加,云原生应用与云服务之间的差距不断扩大,这些都迫使新平台不断发展。微软的 Radius 就是为应对这两个挑战而作出的尝试。

Radius 对 Kubernetes 的基础架构进行了抽象,使开发人员能够专注于自己的应用程序。由于Radius,在 Kubernetes 集群中运行应用程序与在公共云环境下运行托管云服务之间的界限变得模糊了。开发人员可以将容器化应用的功能与基于云的托管服务进行混合和匹配,而无需处理不同的 API、SDK 和资源管理工具。

Radius 有潜力成为一个强大的平台,充分利用强大的Kubernetes 和托管云服务部署现代应用程序。如 Radius 被提交到云原生计算基金会(CNCF)并被接受则必将成为 CNCF 生态系统中广泛采用的开源项目。

来源:至顶网软件与服务频道

0赞

好文章,需要你的鼓励

2023

10/25

10:13

分享

点赞

邮件订阅