Update user cases (#275)

This commit is contained in:
Lei Zhang (Harry) 2021-09-14 17:07:30 -07:00 committed by GitHub
parent 144ea9b34d
commit 1a4f61c3e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 132 additions and 36 deletions

View File

@ -2,9 +2,17 @@
title: Canary Release with Istio
---
This article introduces how KubeVela integrates [Istio](https://istio.io/latest/) to do a canary release.
## Introduction
## Praparation
The application deployment model in KubeVela is designed and implemented with extreme level of extensibility at heart. Hence, KubeVela can be easily integrated with any existing tools to superpower your application delivery with modern technologies such as Service Mesh immediately, without writing dirty glue code/scripts.
This guide will introduce how to use KubeVela and [Istio](https://istio.io/latest/) to do an advanced canary release process. In this process, KubeVela will help you to:
- ship Istio capabilities to end users without asking them to become an Istio expert (i.e. KubeVela will provide you a rollout trait as abstraction);
- design canary release steps and do rollout/rollback in a declarative workflow, instead managing the whole process manually or with ugly scripts.
We will use the well-known [bookinfo](https://istio.io/latest/docs/examples/bookinfo/?ie=utf-8&hl=en&docs-search=Canary) application as the sample.
## Preparation
Install the Istio cluster plugin.
```shell

View File

@ -2,7 +2,27 @@
title: GitOps with Workflow
---
GitOps is a continuous delivery method that allows developers to automatically deploy applications by changing code in a Git repository. KubeVela can support GitOps as an application delivery system. In this section, you will learn how to use KubeVela to do GitOps.
This section will introduce how to use KubeVela in GitOps environment and why.
## Introduction
GitOps is a continuous delivery method that allows developers to automatically deploy applications by changing code in a Git repository. For benefits of GitOps, please check [this article](https://www.weave.works/blog/what-is-gitops-really).
KubeVela as an declarative application delivery control plane can be naturally used in GitOps approach, and this will provide below extra bonus to end users alongside with GitOps benefits:
- application delivery workflow (CD pipeline)
- i.e. KubeVela supports procedural delivery process in GitOps instead of simply declaring final status;
- handling deployment dependencies and designing typologies;
- unified higher level abstraction atop various GitOps tools' primitives;
- declare, provision and consume cloud resources in unified application definition;
- various out-of-box deployment strategies (Canary, Blue-Green ...);
- various out-of-box hybrid/multi-cloud deployment policies (placement rule, cluster selectors etc.);
- Kustomize-style patch for multi-env deployment without the need to learn Kustomize at all;
- ... and much more.
In this section, we will introduce steps of using KubeVela directly in GitOps approach.
> Note: you can also use it with existing tools such as ArgoCD with similar steps, detailed guides will be added in following releases.
## Setup

View File

@ -1,8 +1,21 @@
---
title: Jenkins + KubeVela for CI/CD
title: Jenkins CI/CD
---
This section will introduce how to combine KubeVela with Jenkins to do CI (continuous integration) and CD (continuous delivery). The following example is based on the release process of a simple HTTP server. The code can be found at [here](https://github.com/Somefive/KubeVela-demo-CICD-app).
This section will introduce how to use KubeVela with existing CI/CD tools such as Jenkins and why.
## Introduction
With a simple integration effort, KubeVela as a universal application delivery control plane can then supercharge existing CI/CD tools with modern application deployment capabilities such as:
- hybrid/multi-cloud delivery;
- cross-environments promotion;
- service mesh based application rollout/rollback;
- handling deployment dependencies and topology;
- declare, provision and consume cloud resources alongside with your application;
- enjoy benefits of [GitOps](https://www.weave.works/blog/what-is-gitops-really) delivery without the need to introduce full GitOps transformation to your team;
- ... and much more.
The following guide will use Jenkins as an example to release a sample HTTP server application step by step. The application code can be found in [this GitHub repo](https://github.com/Somefive/KubeVela-demo-CICD-app).
## Preparation

View File

@ -1,5 +1,5 @@
---
title: Patch for Kustomize Component
title: Kustomize Patch
---
## kustomize-patch Specification

View File

@ -23,6 +23,15 @@ KubeVela is a modern application platform that makes it easier and faster to del
**Runtime Agnostic** - KubeVela works as an application delivery control plane that is fully runtime agnostic. It can deploy and manage any application components including containers, cloud functions, databases, or even EC2 instances across hybrid environments, following the workflow you defined.
## Who should use KubeVela?
- Application developers, operators, DevOps engineers
- think about a modern Continuous Delivery (CD) platform.
- Platform builders for PaaS, Serverless, application management/delivery systems
- think about an application delivery engine that you could build your advanced platform with.
- ISV, SaaS owners, and application architects who need to distribute software to anywhere
- think about an App Store but on Kubernetes and clouds.
## Comparisons
### KubeVela vs. Platform-as-a-Service (PaaS)

View File

@ -75,12 +75,12 @@ module.exports = {
to: '/docs/install',
},
{
label: 'Platform Admin Guide',
to: '/docs/platform-engineers/overview',
label: 'User Manuals',
to: '/docs/end-user/application',
},
{
label: 'End User Guide',
to: '/docs/end-user/application',
label: 'Administrator Manuals',
to: '/docs/platform-engineers/overview',
},
],
},

View File

@ -124,11 +124,11 @@
"description": "The label used to tell the user that he's browsing an unmaintained doc version"
},
"theme.docs.versions.latestVersionSuggestionLabel": {
"message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).",
"message": "For latest stable documentation, see the {latestVersionLink} ({versionLabel}).",
"description": "The label userd to tell the user that he's browsing an unmaintained doc version"
},
"theme.docs.versions.latestVersionLinkLabel": {
"message": "最版本",
"message": "最近稳定版本",
"description": "The label used for the latest version suggestion link label"
},
"theme.common.editThisPage": {

View File

@ -111,7 +111,7 @@
"message": "组件系统",
"description": "The label for category Component System in sidebar docs"
},
"sidebar.docs.category.End User Guide": {
"sidebar.docs.category.User Manuals": {
"message": "用户手册",
"description": "The label for category User Guide in sidebar docs"
},
@ -143,9 +143,9 @@
"message": "调试指南",
"description": "The label for category Debugging in sidebar docs"
},
"sidebar.docs.category.Platform Admin Guide": {
"sidebar.docs.category.Administrator Manuals": {
"message": "管理员手册",
"description": "The label for category Platform Admin Guide in sidebar docs"
"description": "The label for category Administrator Manuals in sidebar docs"
},
"sidebar.docs.category.Simple Template": {
"message": "Simple Template",

View File

@ -2,7 +2,17 @@
title: 基于 Istio 的金丝雀发布
---
本文将会介绍 KubeVela 基于 [Istio](https://istio.io/latest/) 实现经典微服务场景 [bookinfo](https://istio.io/latest/docs/examples/bookinfo/?ie=utf-8&hl=en&docs-search=Canary) 的金丝雀发布功能。
## 简介
KubeVela 后的应用交付模型OAM是一个从设计与实现上都高度可扩展的模型。因此KubeVela 不需要任何“脏乱差”的胶水代码或者脚本就可以同任何云原生技术和工具(比如 Service Mesh实现集成让社区生态中各种先进技术立刻为你的应用交付助上“一臂之力”。
本文将会介绍如何使用 KubeVela 结合 [Istio](https://istio.io/latest/) 进行复杂的金丝雀发布流程。在这个过程中KubeVela 会帮助你:
- 将 Istio 的能力进行封装和抽象后再交付给用户使用,使得用户无需成为 Istio 专家就可以直接使用这个金丝雀发布的场景KubeVela 会为你提供一个封装好的 Rollout 运维特征)
- 通过声明式工作流来设计金丝雀发布的步骤,以及执行发布/回滚,而无需通过“脏乱差”的脚本或者人工的方式管理这个过程。
本案例中,我们将使用经典的微服务应用 [bookinfo](https://istio.io/latest/docs/examples/bookinfo/?ie=utf-8&hl=en&docs-search=Canary) 来展示上述金丝雀发布过程。
## 准备工作

View File

@ -2,7 +2,26 @@
title: 基于工作流的 GitOps
---
GitOps 通过实现持续交付,使开发人员可以通过直接更改 Git 仓库中的代码来自动部署应用,在提高部署生产力的同时也通过分支回滚等能力提高了可靠性。 KubeVela 作为一个应用交付系统,同样可以支持 GitOps 能力,本节将介绍如何使用 KubeVela 完成 GitOps 自动部署。
本案例讲介绍如何在 GitOps 场景下使用 KubeVela 并介绍这样做的好处是什么。
## 简介
GitOps 是一种现代化的持续交付手段,它允许开发人员通过直接更改 Git 仓库中的代码和配置来自动部署应用,在提高部署生产力的同时也通过分支回滚等能力提高了可靠性。其具体的好处可以查看[这篇文章](https://www.weave.works/blog/what-is-gitops-really),本文将不再赘述。
KubeVela 作为一个声明式的应用交付控制平面,天然就可以以 GitOps 的方式进行使用,并且这样做会在 GitOps 的基础上为用户提供更多的益处和端到端的体验,包括:
- 应用交付工作流CD 流水线)
- 即KubeVela 支持在 GitOps 模式中描述过程式的应用交付,而不只是简单的声明终态;
- 处理部署过程中的各种依赖关系和拓扑结构;
- 在现有各种 GitOps 工具的语义之上提供统一的上层抽象,简化应用交付与管理过程;
- 统一进行云服务的声明、部署和服务绑定;
- 提供开箱即用的交付策略(金丝雀、蓝绿发布等);
- 提供开箱即用的混合云/多云部署策略(放置规则、集群过滤规则等);
- 在多环境交付中提供 Kustomize 风格的 Patch 来描述部署差异,而无需学习任何 Kustomize 本身的细节;
- …… 以及更多。
在本文中,我们主要讲解直接使用 KubeVela 在 GitOps 模式下进行交付的步骤。
> 提示:你也可以通过类似的步骤使用 ArgoCD 等 GitOps 工具来间接使用 KubeVela细节的操作文档我们会在后续发布中提供。
## 准备代码仓库

View File

@ -1,8 +1,22 @@
---
title: 对接 Jenkins 实现 CI/CD
title: Jenkins CI/CD
---
本文将会以一个 HTTP 服务的开发部署为例,简单介绍如何将 KubeVela 与 Jenkins 对接实现应用的持续集成与持续交付。[参考代码,请点击](https://github.com/Somefive/KubeVela-demo-CICD-app)。
本文将介绍如何使用 KubeVela 同已有的 CI/CD 工具(比如 Jenkins共同协作来进行应用的持续交付并解释这样集成的好处是什么。
## 简介
KubeVela 作为一个普适的应用交付控制平面,只需要一点点集成工作就可以同任何现有的 CI/CD 系统对接起来,并且为它们带来一系列现代云原生应用交付的能力,比如:
- 混合云/多云应用交付;
- 跨环境发布Promotion
- 基于 Service Mesh 的发布与回滚;
- 处理部署过程中的各种依赖关系和拓扑结构;
- 统一进行云服务的声明、部署和服务绑定;
- 无需强迫你的团队采纳完整的 GitOps 协作方式即可享受 GitOps 技术本身的[一系列好处](https://www.weave.works/blog/what-is-gitops-really)
- …… 以及更多。
接下来,本文将会以一个 HTTP 服务的开发部署为例,介绍 KubeVela + Jenkins 方式下应用的持续集成与持续交付步骤。这个应用的具体代码在[这个 GitHub 库中](https://github.com/Somefive/KubeVela-demo-CICD-app)。
## 准备工作

View File

@ -1,5 +1,5 @@
---
title: 修改 Kustomize 配置
title: Kustomize 补丁
---
本小节将介绍如何使用 trait 对 Kustomize 组件做差异化配置。

View File

@ -21,11 +21,14 @@ KubeVela 是一个开箱即用的、现代化的应用交付与管理平台。Ku
- **可编程式交付工作流** - KubeVela 的交付模型是利用 [CUE](https://cuelang.org/) 来实现的。CUE 是一种诞生自 Google Borg 系统的数据配置语言,它可以将应用交付的所有步骤、所需资源、关联的运维动作以可编程的方式粘合成一个 DAG有向无环图来作为最终的声明式交付计划。相比于其他系统的复杂性和不可扩展性KubeVela 基于 CUE 的实现不仅使用简单、扩展性极强,也更符合现代 GitOps 应用交付的趋势与要求。
- **运行时无关** - KubeVela 是一个完全与运行时基础设施无关的应用交付与管理控制平面。所以它可以按照你定义的工作流与策略,面向任何环境交付和管理任何应用组件,比如:容器、云函数、数据库,甚至 AWS EC2 实例等等。
## 什么情况下该学习、使用 KubeVela
## 谁应该使用 KubeVela
- 云原生时代的应用研发人员、DevOps 开发者KubeVela 基于 Kubernetes 提供了大量开箱即用的能力,提供了围绕应用开发者的平台体验,无需学习复杂概念即可满足大多数通用场景的需求。
- 云原生应用平台的构建者、PaaS 服务提供商、基础设施平台管理员KubeVela 基于 Kubernetes 提供了大量编排和扩展能力,能够 100% 满足任意的扩展需求,交付任意形态的应用制品。
- 第三方软件供应商ISV、垂直领域应用开发者KubeVela 可以帮助你构建标准化的软件交付物,交付到任意云厂商和 Kubernetes 数据中心。
- 云原生时代的应用研发、运维人员、DevOps 工程师:
- KubeVela 是一个现代化的持续交付CD平台。
- 云原生应用平台的构建者、PaaS、Serverless 平台工程师、基础设施平台管理员:
- KubeVela 是一个普适的、高可扩展的应用交付引擎与内核。
- 第三方软件供应商ISV、垂直领域软件开发者、架构师
- KubeVela 是一个 Kubernetes 和云平台之上的应用商店App Store
## 产品形态对比

View File

@ -83,9 +83,9 @@
"message": "Appendix",
"description": "The label for category Appendix in sidebar docs"
},
"sidebar.docs.category.End User Guide": {
"sidebar.docs.category.User Manuals": {
"message": "用户手册",
"description": "The label for category End User Guide in sidebar docs"
"description": "The label for category User Manuals in sidebar docs"
},
"sidebar.docs.category.Components": {
"message": "Components",

View File

@ -15,13 +15,13 @@
"message": "快速开始",
"description": "The label of footer link with label=Getting Started linking to /docs/install"
},
"link.item.label.Platform Admin Guide": {
"message": "Platform Admin Guide",
"description": "The label of footer link with label=Platform Admin Guide linking to /docs/platform-engineers/overview"
"link.item.label.Administrator Manuals": {
"message": "管理员手册",
"description": "The label of footer link with label=Administrator Manuals linking to /docs/platform-engineers/overview"
},
"link.item.label.End User Guide": {
"message": "End User Guide",
"description": "The label of footer link with label=End User Guide linking to /docs/end-user/application"
"link.item.label.User Manuals": {
"message": "用户手册",
"description": "The label of footer link with label=User Manuals linking to /docs/end-user/application"
},
"link.item.label.CNCF Slack ( #kubevela channel )": {
"message": "CNCF Slack ( #kubevela channel )",

View File

@ -34,7 +34,7 @@ module.exports = {
},
{
type: 'category',
label: 'End User Guide',
label: 'User Manuals',
collapsed: false,
items: [
{
@ -100,7 +100,7 @@ module.exports = {
},
{
type: 'category',
label: 'Platform Admin Guide',
label: 'Administrator Manuals',
collapsed: false,
items: [
{

View File

@ -33,7 +33,7 @@
{
"collapsed": false,
"type": "category",
"label": "End User Guide",
"label": "User Manuals",
"items": [
{
"type": "doc",
@ -132,7 +132,7 @@
{
"collapsed": false,
"type": "category",
"label": "Platform Admin Guide",
"label": "Administrator Manuals",
"items": [
{
"type": "doc",