refine cloud native app
parent
b0a4d66068
commit
41568d034b
|
@ -12,11 +12,11 @@
|
|||
|
||||
OAM 的规范中定义了以下对象,它们既是 OAM 规范中的基本术语也是云原生应用的基本组成。
|
||||
|
||||
- **[Workload](../spec/workload)(工作负载)**:应用程序的工作负载类型,由平台提供。
|
||||
- **[Component](../spec/component)(组件)**:定义了一个 `Workload` 的实例,并以基础设施中立的术语声明其运维特性。
|
||||
- **[Trait](../spec/trait)(特征)**:用于将运维特性分配给组件实例。
|
||||
- **[ApplicationScope](../spec/application-scope)(应用作用域)**:用于将组件分组成具有共同特性的松散耦合的应用。
|
||||
- **[ApplicationConfiguration](../spec/application-configuration)(应用配置)**:描述 `Component` 的部署、`Trait` 和 `ApplicationScope`。
|
||||
- **[Workload](./workload.md)(工作负载)**:应用程序的工作负载类型,由平台提供。
|
||||
- **[Component](./component.md)(组件)**:定义了一个 `Workload` 的实例,并以基础设施中立的术语声明其运维特性。
|
||||
- **[Trait](./trait.md)(特征)**:用于将运维特性分配给组件实例。
|
||||
- **[ApplicationScope](./application-scope.md)(应用作用域)**:用于将组件分组成具有共同特性的松散耦合的应用。
|
||||
- **[ApplicationConfiguration](./application-configuration.md)(应用配置)**:描述 `Component` 的部署、`Trait` 和 `ApplicationScope`。
|
||||
|
||||
OAM 规范中提供了一个使用以上对象定义云原生应用的[工作流示例](https://github.com/oam-dev/spec/blob/master/examples/workflow.md)。
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 135 KiB |
|
@ -6,7 +6,7 @@
|
|||
|
||||
[Crossplane](https://crossplane.io/) 是一个开源的 Kubernetes 插件,可以使用 kubectl 配置和管理基础设施、服务和应用。它的意义在使用 Kubernetes 风格的 API 统一了云基础设施和应用程序的管理。
|
||||
|
||||
该项目是由 [Upbound](https://upbound.io/) 公司于 2018 年发起,开源社区主要参与者有微软、阿里巴巴、Gitlab、红帽等。
|
||||
该项目是由 [Upbound](https://upbound.io/) 公司和 [Rook](https://rook.io) 项目的创始人于 2018 年 12 月发起,开源社区主要参与者来自微软、阿里巴巴、Gitlab、红帽等。
|
||||
|
||||
## Crossplane 的特性
|
||||
|
||||
|
@ -132,4 +132,5 @@ example-appconfig-workload NodePort 10.99.30.250 <none> 80:31557/TC
|
|||
## 参考
|
||||
|
||||
- [crossplane/addon-oam-kubernetes-local - github.com](https://github.com/crossplane/addon-oam-kubernetes-local)
|
||||
- [Traits and workloads interaction mechanism in OAM - github.com](https://github.com/crossplane/oam-kubernetes-runtime/blob/master/design/one-pager-trait-workload-interaction-mechanism.md)
|
||||
- [Traits and workloads interaction mechanism in OAM - github.com](https://github.com/crossplane/oam-kubernetes-runtime/blob/master/design/one-pager-trait-workload-interaction-mechanism.md)
|
||||
- [Crossplane CNCF Sandbox - docs.google.com](https://docs.google.com/presentation/d/1HEQtVMwQxrpkQg2UWUNi0RPdjmJ6TaZLr50Cr_anNeQ/edit#slide=id.g8801599ecb_0_72)
|
|
@ -29,6 +29,22 @@ OAM 全称是 Open Application Model,从名称上来看它所定义的就是
|
|||
- 是从管理大量 CRD 中汲取的经验。
|
||||
- 业务和研发的沟通成本,比如 YAML 配置中很多字段是开发人员不关心的。
|
||||
|
||||
## 设计原则
|
||||
|
||||
OAM 规范的设计遵循了以下[原则](https://github.com/oam-dev/spec/blob/master/9.design_principles.md):
|
||||
|
||||
- 关注点分离:根据功能和行为来定义模型,以此划分不同角色的职责,
|
||||
- 平台中立:OAM 的实现不绑定到特定平台;
|
||||
- 优雅:尽量减少设计复杂性;
|
||||
- 复用性:可移植性好,同一个应用程序可以在不同的平台上不加改动地执行;
|
||||
- 不作为编程模型:OAM 提供的是应用程序模型,描述了应用程序的组成和组件的拓扑结构,而不关注应用程序的具体实现。
|
||||
|
||||
下图是 OAM 规范示意图。
|
||||
|
||||
![OAM 规范示意图](../images/oam-spec.png)
|
||||
|
||||
图片来自 [oam/spec issue #346](https://github.com/oam-dev/spec/issues/346)。
|
||||
|
||||
### OAM 基本对象
|
||||
|
||||
OAM 模型中包含以下基本对象,以本文发稿时的最新 API 版本 `core.oam.dev/v1alpha2` 为准:
|
||||
|
@ -65,11 +81,11 @@ OAM 模型中包含以下基本对象,以本文发稿时的最新 API 版本 `
|
|||
|
||||
## Rudr
|
||||
|
||||
Rudr 是对 [OAM v1alpha1](https://github.com/oam-dev/spec/releases/tag/v1.0.0-alpha.1) 在 Kubernetes 环境下的实现,OAM 正在与 [Crossplane](https://github.com/crossplane/) 合作,Rudr 不建议再使用。
|
||||
> 注意:Rudr 是对 [OAM v1alpha1](https://github.com/oam-dev/spec/releases/tag/v1.0.0-alpha.1) 在 Kubernetes 环境下的实现,OAM 正在与 [Crossplane](https://github.com/crossplane/) 合作,不建议再使用 Rudr。
|
||||
|
||||
> **Crossplane**
|
||||
>
|
||||
> 使用 Kubernetes 社区开创的以 API 为中心的声明式配置和自动化方法,使基础设施和应用管理标准化。官方网站:<https://crossplane.io/>。
|
||||
**Crossplane**
|
||||
|
||||
[Crossplane](./crossplane.md) 使用 Kubernetes 社区开创的以 API 为中心的声明式配置和自动化方法,使基础设施和应用管理标准化。官方网站:<https://crossplane.io/>。
|
||||
|
||||
### 安装 Rudr
|
||||
|
||||
|
|
Loading…
Reference in New Issue