撰稿:溪洋

审核校对:天元、海珠

修改&排版:雯燕

云原生正在成为企业事务立异和处理规模化应战的加速器。

云原生带来的革新绝不限于基础设施和运用架构等技能层面,更是对于研制理念、交给流程和 IT 安排方法的革新,也在推动企业 IT 安排、流程和文明的革新。在云原生架构渐为遍及的背后, DevOps 文明及其支撑其落地实践的自动化东西与渠道才能,发挥了关键的价值。

云原生带来的研制与运维协作界面

相较于云原生,DevOps 并不是什么新鲜的工作,其实践早已深入企业现代运用程序架构。DevOps 强调团队间的交流和快速反应,通过构建自动化的继续交给(Continuous Delivery)及流水线的运用发布方法,到达快速响应事务需求、交给产品和进步交给质量的目的。跟着容器技能在企业的规模化运用,云计算可编程基础设施和 Kubernetes 声明式的 API 等才能加速了开发和运维角色的融合。

云原生的大势所趋使上云成为企业标配,环绕云原生去界说下一代研制渠道成为必然,也倒逼着 IT 安排方法进一步发生变化——新的渠道工程团队开端浮现。在这样的背景下,如安在云原生的环境下更高效地实践 DevOps 成为一个新的课题和诉求。

1.png

下一代 DevOps 渠道演进趋势

伴跟着 Kubernetes 生态从底层到运用层才能的逐步完善,渠道工程团队能够更方便地根据事务场景和终端用户实践需求来构建不同的运用渠道,却也为上层运用开发者带来了应战和困扰。

Kubernetes 生态自身的才能池固然丰富,但是社区里却并没有一个可扩展的、方便快捷的方法,为云原生架构下混合、分布式的布置环境引进共同的上层笼统来为运用交给进行建模。运用交给进程上层笼统才能的缺失,使 Kubernetes 的杂乱性无法做到向运用开发人员屏蔽。

下图展现了一个云原生下的 DevOps 流水线的典型流程。首先是代码的开发,代码托管到 Github,再接入单元测试的东西 Jenkins,此刻基本研制已完成。再接着到镜像的构建,涉及到装备、编列等。云原生中能够用 HELM 打包运用。打包好的运用布置到各个环境中。但整个进程中会面对许多应战。

2.png

首先,在不同的环境需求不同的运维才能。其次,装备的进程中要创立云上数据库,需求别的打开一个操控台来创立数据库。还需求装备负载均衡。在运用启动以后还需求装备额定的功能,包含日志、战略、安全防护等等。能够发现,云资源和 DevOps 渠道体会是割裂的,里边充满着凭借外部渠道创立的进程。这对新手来说是十分苦楚的。

在容器呈现之前的传统的 DevOps 模式需求不同的流程和工作流。容器技能是以 DevOps 的视角构建的。笼统的容器所供给的功能会影响我们怎么看待 DevOps,因为跟着微服务的呈现,传统的架构开发将发生变化。这意味着要遵从在 Kubernetes 上运转容器的最佳实践,并将 DevOps 的理念向 GitOps、DevSecOps 扩展,使云原生下的 DevOps 愈加高效、安全、安稳、牢靠。

OAM(Open Application Model) 试图供给一种云原生运用的建模语言,以完成研制和运维的视角分离,使 Kubernetes 的杂乱性无需透传至研制,运维通过供给模块化、可移植、可扩展的特性组件,支撑各种杂乱的运用交给场景,从而完成云原生运用交给的敏捷性和渠道无关性。其在 Kubernetes 上的完整完成 KubeVela,现已被业界认为是构建下一代继续交给方法及 DevOps 实践的中心东西。

3.png

最近,阿里云在 2021 云栖大会上发布了云效运用交给渠道 AppStack ,旨在进一步加速企业云原生 DevOps 规模化落地。据云效运用交给渠道 AppStack 研制团队介绍,其在设计之初就全面支撑原生 Kubernetes 和 OAM/KubeVela ,以完成对运用布置架构无绑定、无侵入,使企业不用担心搬迁以及技能改造本钱。这也标志着 KubeVela 正在成为云原生年代运用交给范畴的重要柱石。

根据 KubeVela,构建以运用为中心的交给系统

4.png

在云原生理念迅速遍及的今日,混合环境布置(混合云/多云/分布式云/边际)现已成为了大多数企业运用、SaaS 服务、运用继续交给渠道的必然选择,而云原生技能的发展趋势也正在朝着“共同的、跨云、跨环境的的运用交给”不断跨进。

5.png

KubeVela 作为一个开箱即用、面向现代微服务架构的运用交给与办理渠道,现已正式发布 1.1 版别。在此版别中,KubeVela 愈加聚焦面向混合环境的运用交给流程,带来了多集群交给、交给流程界说、灰度发布、公有云资源接入等多个开箱即用的才能和愈加友好的用户体会,协助开发者从“静态装备、模板、胶水代码”的初级阶段,直接升级至“自动化、声明式、一致模型、天然面向多环境”的下一代以工作流为中心的交给体会当中。

根据 KubeVela,用户能够十分轻松地处理以下场景:

多环境、多集群运用交给

面向 Kubernetes 的多环境、多集群交给已是一个规范性需求。从 1.1 版别开端,KubeVela 不仅完成了多集群的运用交给,而且既能够独立工作直接收管多个集群,也能够集成 OCM、Karmada 等各类多集群办理东西来进行更杂乱的交给动作。在多集群交给战略的基础上,用户还能够通过界说 Workflow 来操控交给到不同集群的顺序、条件等工作流步骤。

界说交给工作流(Workflow)

Workflow 的详细运用场景则许多,比方在多环境运用交给场景中,用户能够界说不同的环境交给的顺序和前置条件等 。KubeVela 的工作流是面向 CD 进程的,同时也是声明式的,所以它既能够作为 CD 系统直接同 CI 系统(比方 Jenkins 等)对接,也能够嵌入到现有 CI/CD 系统中作为增强和弥补,落地方法十分灵活。

在模型上,Workflow 是由一系列 Step 组成的,而在完成上,每一个 Step 则是一个独立的才能模块,由其详细的类型和参数来决定其详细步骤的才能。在 1.1 版别中,KubeVela 内置的 Step 现已比较丰富,也十分简单扩展,协助用户轻松对接已有的渠道才能,做到无缝搬迁。

以运用为中心的云资源交给

KubeVela 的设计是从“以运用为中心”的视角动身,因此能够协助开发者以彻底 Serverless 的方法更好、更方便的办理云资源,而不是疲于敷衍各种不同的云产品和操控台。在完成上,KubeVela 内置集成了 Terraform 来作为云资源的编列东西,而且能够以一致的运用模型支撑各个云厂商上百种不同类型云服务的布置、绑定和办理。

在运用上,现在 KubeVela 将云资源分为以下三类:

  • 作为组件:比方数据库、中间件、SaaS 服务等。比方 KubeVela 中的 Alibaba-RDS 服务就属于这种
  • 作为运维特征:比方日志剖析、监控可视化、监控报警等服务
  • 作为运用运转基础设施:比方 Kubernetes 托管集群、SLB 负载均衡、NAS文件存储服务等

更简单落地的 GitOps 继续交给实践

KubeVela 作为一个声明式的运用交给操控平面,天然就能够以 GitOps 的方法进行运用(可独自运用,也可配合 ArgoCD 等东西),而且能够为 GitOps 场景供给更多端到端的才能和增强、协助 GitOps 理念以愈加亲民和处理实践问题的方法在企业中落地。这些才能包含:

  • 界说运用交给工作流(CD 流水线)
  • 处理布置进程中的各种依赖联系和拓扑结构
  • 在现有各种 GitOps 东西的语义之上供给一致的上层笼统,简化运用交给与办理进程
  • 一致进行云服务的声明、布置和服务绑定
  • 供给开箱即用的交给战略(金丝雀、蓝绿发布等)
  • 供给开箱即用的混合环境/多集群布置战略(放置规矩、集群过滤规矩、跨环境Promotion 等)
  • 在多环境交给中供给 Kustomize 风格的 Patch 来描述布置差异,而用户无需学习任何 Kustomize 自身的细节
  • ……

KubeVela 1.2 版别行将重磅发布

继续打造天然面向混合环境的企业运用操作系统、让开发者享受交给运用的进程,这是 Kubevela 项目的目标和愿景。在接下来的 1.2 版别,KubeVela 将带来以运用为中心的操控面板 UI,完成快捷的企业运用拼装、分发、交给流程,供给给开发者更简单的运用交给体会,同时掩盖边际运用交给等更多的运用场景。

6.png

KubeVela 1.2 版别将在 2021 年 12 月举办的 KubeCon China 上重磅发布,敬请继续重视 KubVela 社区以及阿里巴巴云原生动态!

您能够通过如下方法了解更多关于 KubeVela 以及 OAM 项目的细节:

1)项目代码库:
github.com/oam-dev/kubevela
欢迎 Star/Watch/Fork!

2)项目官方主页与文档:
kubevela.io/
从 1.1 版别开端,已供给中文、英文文档,更多语言文档欢迎开发者进行翻译。

3)项目钉钉群:23310022;Slack:CNCF #kubevela Channel

4)加入微信群:请先扫码增加以下 maintainer 微信号,表明进入 KubeVela 用户群:
7.png