refine cloud native app

pull/406/head
Jimmy song 2020-06-24 14:44:14 +08:00
parent b0a4d66068
commit 41568d034b
4 changed files with 28 additions and 11 deletions

View File

@ -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)。

BIN
images/oam-spec.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View File

@ -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 的特性
@ -133,3 +133,4 @@ 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)
- [Crossplane CNCF Sandbox - docs.google.com](https://docs.google.com/presentation/d/1HEQtVMwQxrpkQg2UWUNi0RPdjmJ6TaZLr50Cr_anNeQ/edit#slide=id.g8801599ecb_0_72)

View File

@ -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