写点什么

微软为 Kubernetes 等平台发布 Open Application Model

  • 2019-11-08
  • 本文字数:1982 字

    阅读完需:约 7 分钟

微软为Kubernetes等平台发布Open Application Model

微软最近发布了Open Application Model(OAM),一个用于描述应用程序与其实现解耦(这样就可以清楚地分离关注点)的规范。OAM 的目标是 Kubernetes 和其他平台。


在实施 DevOps 时通常需要维护开发(dev)和部署(ops)之间的描述,帮助协调交付工作流,而 OAM 规范的目标就是要促进这一过程。OAM 的既定目标是“让简单的应用程序变简单,让复杂的应用程序易于管理”。Kubernetes 平台的最初实现叫作Rudr,它满足了上述的大部分目标。


下图(https://github.com/oam-dev/spec/#introduction)说明了不同的角色及其各自的职责,以及 OAM 规范的不同组成部分。



微软还发布了Dapr,一个开源的“可移植、基于事件驱动的运行时,开发人员可以很容易地构建可在云端运行的无状态和有状态微服务弹性应用程序”。Dapr 的目标受众是微服务开发人员,而 Rudr 的目标受众是运维人员。


InfoQ 采访了微软项目经理、规范负责人 Vaclav Turecek。


Turecek 谈到了基于 Kubernetes 的平台的快速增长,以及 OAM 如何区分开发人员和运维人员的职责,从而简化整个软件开发生命周期。他谈到了其他一些平台与 OAM 之间的重叠,以及 OAM 的独特性。最后,他介绍了 OAM 社区及其路发展线图。


InfoQ:OAM 解决了哪些问题?


Vaclav Turecek:当谈到应用程序的开发和部署时,我们认为区分开发人员和运维人员的职责是很重要的一点。如果这些角色混淆不清,就会导致沟通问题,出现 bug,甚至是服务中断。OAM 试图根据应用程序构建和基础设施运维的角色对应用程序进行建模,以此来解决这个问题。

具体地说,对于 Kubernetes,我们已经发布了一个叫作 Rudr 的参考实现。我们认为,OAM 有助于简化应用程序的组合和运维。Kubernetes 专注于容器基础设施,它的核心资源(如服务和部署)代表了应用程序的不同部分。它们不代表应用程序本身,而且实际上也并没有可用于表示整个应用程序及其运维的构造。OAM 为应用程序提供了某种构造,将应用程序及其运维特征(如自动伸缩、流量路由、摄入,等等)建模成一个整体。


InfoQ:OAM 在 Kubernetes 生态系统中有何独特之处?


Turecek:现如今,Kubernetes 拥有一个巨大的工具和库生态系统。在应用程序建模领域,我们还没有看到太多与 OAM 类似的东西。我们可以拿 Helm 和 CNAB 与 OAM 作一下对比,但这并不仅仅是因为 Helm 和 CNAB 的作者也是 OAM 的作者之一,还因为它们都涉及部署应用程序的某个方面。

Helm 和 CNAB 实际上是互补的,它们符合 Unix“把单个事情做到极致”的哲学,因为它们在这个领域解决了不同的问题,并且能够很好地协作。例如,你可以描述应用程序的组件以及如何使用 OAM 操作它,并将其直接部署到 Kubernetes 上。需要引入其他依赖项?将 OAM 定义和依赖项放入 Helm 的 chart 中,然后一起安装就可以了。需要在没有访问容器镜像权限的 Kubernetes 集群上运行?将 Helm chart 和容器镜像一起放入 CNAB 包中,然后一起安装就可以了。

OAM 还允许基础设施运维人员配置底层系统,底层操作系统可能提供了 OAM 应用程序可以访问的运维特性。这意味着你可以挂载各种现有的工具和库。例如,你可以挂载任何与 SMI 兼容的服务网格(如 Istio 或 Linkerd),获得负载均衡和流量路由功能。这样可以满足基础设施运维人员在不同环境下的独特需求,例如合规性或安全性,并为开发人员和应用程序运维人员提供一个良好的应用程序环境。


InfoQ:OAM 的目标包括多云吗?换句话说,它是否试图跨多个 K8s 云平台“标准化 YAML”?


Turecek:OAM 的主要思想是标准化应用程序的组合和运维模型,不管最终的运行环境是怎样的。因此,当你从一个平台转移到另一个平台,你将拥有一致的体验、一个可转移的过程和潜在的可移植性。也就是说,我们预想实现平台的功能会有所不同,模型就是围绕这个假设而设计的。这是 Kubernetes 之上的一个层,Kubernetes 只是一个支持平台。


InfoQ:OAM 规范是如何定义应用程序的,它与 Helm 有什么不同?


Turecek:经过研究我们发现,人们无法在微服务“应用程序”的定义上达成一致。目前,OAM 的设计并没有打算为微服务定义一个严格的“应用程序”结构。我们有应用程序范围的概念,可以将它看成是应用程序服务分组的边界。例如,将服务分在“健康”分组中,当升级其中一个服务时,我们会评估分组中每个服务的健康状况。这与 Helm 的 chart 不同,后者没有提供操作一组资源的功能。


InfoQ:是谁创建了 OAM?谁在维护?它的发展路线图是怎样的?


Turecek:OAM 是由 Helm、OpenKruise 和 Service Fabric 的作者开发的,目前微软和阿里巴巴的工程师在维护,他们遵循的是 Open Web Foundation 协议。我们的最终目标是将规范捐赠给基金会。


Kubernetes 平台的最初实现叫作 Rudr,可以在GitHub上找到。OAM规范提供了更详细的信息,包括不同的角色、各自的职责,等等。


原文链接


Microsoft Announces Open Application Model for Kubernetes and Other Platforms


2019-11-08 08:002442

评论 1 条评论

发布
用户头像
OAM 的目标包括多云吗?这个问题被采访者没有直接回答,不过他说 OAM 是 Kubernetes 之上的一个层,又与平台无关,那答案就是肯定的了。
2020-02-03 22:41
回复
没有更多了
发现更多内容

DApp开发与DeFi、NFT交易平台及链游开发

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

奇瑞汽车:降阶模型在新能源汽车热管理仿真上的应用

Altair RapidMiner

AI 汽车 仿真 altair AI 人工智能

Mac 电脑屏幕录制软件Replay Video Capture for mac

Mac相关知识分享

专业的数据库工具DbVisualizer Pro for mac

Mac相关知识分享

Mac Maya 2025 破解补丁 附玛雅2025中文版安装包

理理

SnailSVN Pro—— 专业 SVN 工具,开启协作之旅!

理理

是否应在 Kubernetes上运行Redis?快手这样做!

快手技术

#k8s

MATLAB R2023b,打造顶级科学计算平台!

理理

Java方法设计原则与实践:从Effective Java到团队案例

京东科技开发者

多线程在打包工具中的运用

不在线第一只蜗牛

UI 多线程

C4D 动画设计工具Maxon Cinema 4D Studio S22 for mac

Mac相关知识分享

Native Instruments Traktor Pro for mac数字DJ混音器软件

Mac相关知识分享

软件测试学习笔记丨Flask操作数据库-数据库和表的管理

测试人

软件测试

Photoshop 2025 for mac(ps 2025图像编辑处理软件)v26.0中文激活版

理理

DbVisualizer Pro for mac(专业的数据库客户端)v24.2.3激活版

理理

AI大模型高效开发神器来了 ,解读ModelArts 8大能力

华为云开发者联盟

modelarts 大模型 华为云Stack AI 人工智能

华为云企业主机安全检测升级,再添容器安全新翼

华为云开发者联盟

企业主机安全 容器安全 云图说 防御安全

Premiere Pro 2024 for Mac(PR 2024视频编辑软件)v24.6.1中文版

理理

Ultimate Vocal Remover(UVR5终极人声去除器) mac软件下载

理理

Oracle与GreatSQL差异:更改唯一索引列

GreatSQL

Coolmuster Android Assistant for Mac(Android管理工具)

Mac相关知识分享

YMatrix 6.0 正式发布: 下一代实时分析数仓

YMatrix 超融合数据库

数据库 数据仓库 流计算 YMatrix 实时分析

Beyond Compare 4 mac激活码 Beyond Compare 4下载

理理

MetaDAO 即将进入第三阶段

科技热闻

NFTScan Site:以蓝标认证与高级项目管理功能赋能 NFT 项目

NFT Research

NFT\ NFTScan

MySQL 死锁日志分析方法

京东科技开发者

多租户系统的应用架构

EquatorCoco

架构 多租户

【原理】Redis热点Key自动发现机制和客户端缓存方案

京东科技开发者

astah professional(UML建模工具) v8.5.0激活版

理理

MEME币私募官方平台网站开发

区块链软件开发推广运营

交易所开发 链游开发 NFT开发 钱包开发 代币开发

简单几步,快速让你的 Java 项目拥有 AI 能力

豆包MarsCode

Python 程序员 AI

微软为Kubernetes等平台发布Open Application Model_容器_Rags Srinivas_InfoQ精选文章