云原生应用管理之kubevela

前置概念

云原生应用

云原生应用是指专门为云计算环境设计和构建的应用程序,旨在充分利用云平台的特性,如弹性、可扩展性和分布式架构。

云原生应用 VS 传统应用

特性 云原生应用 传统应用
架构模式 微服务架构,独立服务,高扩展性和灵活性 单体架构,所有功能集成在一个应用中,扩展性有限
部署方式 使用容器和编排工具(如Kubernetes),自动化程度高 部署在物理服务器或虚拟机上,需手动配置和管理资源
开发流程 敏捷开发和DevOps实践,频繁的小规模更新 瀑布式开发,开发周期长,更新和迭代较慢
资源利用 动态调整资源分配,高资源利用率 固定资源分配,资源利用率较低
弹性和可扩展性 根据需求自动扩展或缩减资源,优化成本 扩展性有限,通常需要手动调整和配置
自动化运维 依赖CI/CD工具,实现自动化运维和频繁部署 运维流程通常手动进行,效率较低
故障容忍 高度容错和自愈能力,部分服务故障不影响整体 单点故障可能导致整个应用不可用,恢复时间长

OAM

OAM(Open Application Model)是一个用于定义和管理云原生应用程序的开源标准和规范。它由微软和阿里巴巴联合提出,旨在解决云原生应用程序开发、部署和运维中的复杂性问题。OAM通过将应用程序的开发、运维和架构设计角色分离,提供了一种标准化的方式来定义和管理云原生应用程序的生命周期。

OAM的核心概念

概念 描述
应用程序 OAM的核心概念,代表用户希望部署和管理的应用,定义应用的结构和行为。
组件 应用程序的基本构建块,代表独立部分(如微服务、数据库),可以独立开发、部署和管理。
特征 附加到组件上的功能或行为(如服务发现、负载均衡、弹性伸缩),用于扩展组件能力,而不改变其核心逻辑。
作用域 定义组件或特征的运行范围(如网络、安全),使不同组件和特征在共享的上下文中协同工作。
应用配置 将组件、特征和作用域组合在一起的声明,定义应用程序的运行时行为(如部署策略、资源分配)。

OAM的优势

优势 描述
角色分离 通过清晰定义开发者、运维人员和架构师的角色,简化云原生应用的开发和运维流程。开发者专注于组件,运维人员管理应用配置,架构师定义总体架构。
标准化 提供统一的方式描述应用程序,不依赖特定云平台或编排工具,提升应用的可移植性。
可扩展性 设计高度可扩展,允许添加新的特征、组件和作用域,适应不断变化的需求。
声明式管理 使用声明式方式定义应用的状态,实现应用的自动化管理和状态维护。

Pic 1. OAM is proposed to bridge the gap between app developers and the use of underlying infrastructures

kubevela是什么

简介

KubeVela 是一个基于 Open Application Model (OAM) 构建的现代应用交付平台,是基于 Kubernetes 的 OAM 实现之一,它为 Kubernetes 提供了应用交付的统一框架和工具集。KubeVela 通过简化应用程序的定义、部署和管理,帮助开发人员和运维团队更容易地在 Kubernetes 上构建和运维云原生应用。

img

kubevela实现原理

KubeVela 的实现原理基于 Kubernetes 的扩展能力,主要通过自定义资源定义(CRD)和控制器(通常称为 Operator)来管理和操作云原生应用程序。这些控制器负责监听和管理 OAM 资源的生命周期,实现应用的自动化部署、管理和运维。

image-20240823152957537

alt

kubevala操作使用

相关使用可参考官方用户手册:https://kubevela.io/zh/docs/tutorials/webservice/

参考资料

posted @ 2024-08-23 20:33  fireyun  阅读(26)  评论(0编辑  收藏  举报