SREWorks云原生数智运维工程实践-Kubernetes 资源编排篇-Kubernetes 资源编排之五:OAM 篇(下)

本文涉及的产品
资源编排,不限时长
简介: SREWorks云原生数智运维工程实践-

二、 SREWorks的OAM落地实践

 

SREWorks作为阿里大数据运维平台,在设计之初,云原生应用管理在满足内部业务需求时候,遇到了这样一些问题和挑战:

 

需要应用异地多活,避免单Region故障。

需要环境分离,区分开发测试与生产环境。

需要一定的集群扩展性,突破单一集群容量上限。

需要多云部署,避免受限于单一云底座,或降低成本。

开发者花费了太多的时间在基础设施的细节中。机器从哪来,网络环境怎么样,中间件资源/DNS/负载均衡怎么生成,服务怎么适配到各种底座等等。或者更进一步,每个开发者都是YAML工程师,哪怕都是K8S,但每个底座让你提交的YAML都不一样。

可扩展性低。有越来越多的平台or底座在尝试去支撑各种类型需求的业务,但一般来说,应用本身对于平台的诉求会很快超越平台的能力。

云服务供应商绑定。当选择了一个固定的底座后,应用交付的方方面面将会打上这个底座的烙印,当想尝试转到另一个底座的时候难于登天。

 

当SREWorks-Appmanager基于OAM实现了底层引擎,驱动各个服务的开发与交付流程之后,这些问题基本都有了答案,让我们来看看这些问题是如何被解决的。

 

1. 应用模块插拔

 

image.png

 

如上图的YAML所示:

 

通过运维能力trait注入进行运维能力的增强,使部署者不用关注太多底座基础设施的细节。

通过各种组件compent的插拔和参数变量parameterValues的定制来满足应用的功能需求。

通过工作workflow和策略policy来定制部署策略,满足灰度发布、金丝雀发布等多样的发布策略。

 

2. 应用插件机制

 

上面提到了各种组件compent和运维能力trait,那么这些能力是从哪里来的呢?这些也是用插件机制增强出来的,可以看下图:

 

image.png

 

在Appmanager中预先定好了各种能力的接口interface,一个插件只要实现这些接口interface就能够将能力增强到Appmanager中。用户可以基于这个机制来满足各种能力需求,比如将一个Flink服务制作成一个组件compent,用户只要寥寥几行在YAML中加上这个组件,就能在自己应用中瞬间就有了流计算以及其管理能力。

 

3. 应用组件Addon体系

 

在将一个应用做组件化拆解的时候,我们会遇到一个问题,像MySQL、Redis这种要如何拆。拆成一个普通的组件compent的话,有些资源少的场景,每个应用分配一个独享MySQL实例会导致资源不够分;拆成一个运维特征trait的话,每次申请一个实例的逻辑太重,不太符合一个特征的轻量级行为。所以我们将这类组件定义为addon。

 

image.png

 

4. 应用组件构建

 

在OAM模型定义中没有包含构建,在Appmanager中,我们对此进行了增强,将应用的生命周期延展到构建环节,用户可以基于源代码直接构建出组件,进而组成一个完整应用模型。下面是构建过程的拓扑:

 

image.png

 

总结一下,SREWorks中基于OAM的Appmanager基本满足了如下的核心诉求:

 

构建:易于获取且一致的开发、测试环境;易于发现和使用的API

交付:安全、可灰度的发布环境;可回滚的版本管理能力

运行:异常行为可观测;运行稳定且能够自愈

 

后续文章我们会分享更多的Kubernetes科普文章,请大家持续关注~

 

文章参考

《OAM深入解读:OAM为云原生应用带来哪些价值?》

https://developer.aliyun.com/article/741494

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
0
0
0
367
分享
相关文章
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
ACK One注册集群已正式支持ACS(容器计算服务)算力,为企业的容器化工作负载提供更多选择和更强大的计算能力。
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
18 10
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
198 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
云原生入门:Kubernetes的简易指南
【10月更文挑战第41天】本文将带你进入云原生的世界,特别是Kubernetes——一个强大的容器编排平台。我们将一起探索它的基本概念和操作,让你能够轻松管理和部署应用。无论你是新手还是有经验的开发者,这篇文章都能让你对Kubernetes有更深入的理解。
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
云原生入门:Kubernetes 和容器化基础
在这篇文章中,我们将一起揭开云原生技术的神秘面纱。通过简单易懂的语言,我们将探索如何利用Kubernetes和容器化技术简化应用的部署和管理。无论你是初学者还是有一定经验的开发者,本文都将为你提供一条清晰的道路,帮助你理解和运用这些强大的工具。让我们从基础开始,逐步深入了解,最终能够自信地使用这些技术来优化我们的工作流程。
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
87 3

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等