声明式环境管理最佳实践 | 学习笔记

简介: 快速学习声明式环境管理最佳实践

开发者学堂课程【ALPD 云架构师系列:云原生 DevOps 36计-阿里云云效出品声明式环境管理最佳实践】学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/772/detail/13503


声明式环境管理最佳实践


内容介绍:

一. 通过 sidecar 分离关注点

二. 新的挑战

三. OAM


一. 通过 sidecar 分离关注点

问题:环境相关的配置太多了,我该怎么管理比较好?

答案:通过 laC 来定义环境

在云原生时代,我们讲 laC 的时候,它的技术使整个环境通过基础设施来描述出来整个环境包括它的中间件资源都属于技术设施么这个层面就比原来单纯的上架要广得多

从配置的角度来说有应用配置应用运维配置和基础设施 运维配置甚至我们整个软件生产的过程也是用配置合并 怎么发布,去构建。这里我们也要去做一些定义,定义作为一个软件需要符合什么样的质量才可以在系统里以什么样的方式去运行。我们所有东西都是以代码的方式来去保管配置的, 他们的本质是代码

image.png

这里我们举一个简单的代码库的例子。

里我们把应用代码和 lac 代码放在两个库里有的人也会放到一个库里面,这两种方式各有利弊

我们看到 laC Repo 里面放了一些东西比如动态配置,就是运行时的配置

BaaS 配置,就是技术设施资源以及数据库中间件一些资源比如存储消息中间线资源监控配置,配置监控的力度以及监控的采样频率发布配置,比如发布方式每次每个批次发布间隔多少时间,还有一些策略滚动方式,这些东西都会在里面定义好


二. 新的挑战

1. 灵活的代价

开启这个插件还要在 ConfigMap 里定义一个变量

Ingress 和 Rollout 原来要一起用才行

HPA 和 CronHPA 原来是冲突的

这些 yaml 文件仿佛原始人的火种,即使小心伺候也有熄灭的可能

2. 知识的成本

网络配置怎么有这么多种实现

部署 MySQL 集群的正确姿势是什么

怎么能让 Pod 用本地 SSD 磁盘

image.png 

灵活的代价我们会尝试用一些范式来去定义出来,这样管理起来相对来说会更半功倍

3. 主要矛盾在哪里

运行一个系统需要的技能是多方面的但我们都把它想成配置文件这种,但是不是每个人都能用到那么多能力。而且本身的关注点分离成好多个但是我们用配置文件直接堆在那里,就没有把它分离出来

现在工业里一般遇到这样的问题会有怎么样的一些手段去处理他呢?


三. OAM 模型

image.png

首先,Open Application Model 微软阿里云联合推出的框架 也叫 OAM 框架 OAM 模型。其基本理论就是凯撒的归凯撒上帝的归上帝。

这是什么意思呢?我们先看右边在模型里面任务管理整个环境配置有三种角色

一种叫 Developer开发应用关注的是应用开发

第二Application Operator,是做运营上应用上的一些运维配置

第三种叫 Infrastructure Operator,是做基础设施的运维,负责基础设施组建些能力的维护和开发。比如我们要做滚动发布策略,然后有的一些资源的限制策略,这些就是在 Infrastructure Operator 里去处理的

显然三种人的工作背景技能是完全不一样的那么他们之间就必然会产生协作如果他们之间的协作不好就会产生我们前面遇到的问题,这些东西都混在一起

所有在这个架构上,它抽象成了左边这个模型

首先我们有 Application 这个应用它是包含很多个Component 的,就是左下角内容每个 Component 里面有很多容器 Component 里,就描述我的协议是什么,我的容器是什么,我的端口是什么,包括一些参数在里面

同时右边有一个 Configuration,它会描述一些应用怎么运行起来,和应用的一些相关的配置,以及应用的用到的运维上的一些能力

这样就把就开发者关心的东西跟应用运维关心的这些东西分成了 ComponentConfigurationTriat 个部分。这样他们就可以去关心自己的那块就行了

同时在框架里面或者模型里面,会对中间或遇出现的冲突一些东西预先的检测,这就保证些东西不会在我发到一半的时候才出现问题

而是可以预先把问题发现出来就可以直接告诉你失败 不会影响线上的服务

是说在最早把应用给声明出来的时候就会把相应的 OAM 模型相应的配置给定义清楚,并且有一些配置之间需要包含东西哪怕加了新的配置,这些东西我们可以提前做出一些相应预警另外很重要一点就是分离一点

相关文章
|
5月前
|
C++
C++ 编程必备:对象生命周期管理的最佳实践
在C++中,对象的生命周期是指对象存在的时间段,从对象创建到对象销毁的整个过程。正确地管理对象的生命周期是编写高效、可靠C++代码的关键之一
65 1
|
3天前
项目管理工具计划模板解析:项目管理工具的双重功能与创建方法
本文介绍了项目计划模板的含义和重要性。项目计划模板是用于规划项目结构的可编辑文档,帮助团队明确任务、分配责任和管理时间。模板有助于跟踪项目进度、避免任务冲突,并简化会议安排。创建模板通常涉及选择合适的项目管理工具,如Zoho Projects或Microsoft Excel,然后分解任务、定义日期并持续调整。在Zoho Projects中,用户可以按步骤创建模板,包括命名、添加任务和设置相关细节。
13 0
|
7月前
|
Go
别再随意使用if else了 你需要这些最佳实践!
别再随意使用if else了 你需要这些最佳实践!
30 0
|
12月前
|
测试技术 数据安全/隐私保护 索引
DAO社区治理系统模式开发规则详情 | DAO社区治理系统开发源码示例(Python语言版)
DAO(Data Access Object)社区治理模式是一种去中心化的社区治理模式,它将权力下放到社区中,让社区成员自主决策、自我管理,从而实现社区的自主治理。在DAO社区治理模式中,权力下放到社区中,社区成员可以自由地发表自己的意见和建议,并且能够直接参与到社区的决策过程中。
|
关系型数据库 数据库
OushuDB 产品介绍基本用法概述
OushuDB 产品介绍基本用法概述
69 0
|
存储 JSON 前端开发
博客项目(5、全局统一处理)
博客项目(5、全局统一处理)
66 0
|
数据采集 存储 监控
谈谈企业中参考数据的管理
对于业务和技术人员不来说,参考数据会影响日常业务的运营。为了优化数据的使用和可用性,我们需要知道什么是参考数据,什么不是(即主数据),为什么它很重要,以及如何用技术手段有效地管理它。
谈谈企业中参考数据的管理
|
运维 监控 Cloud Native
声明式环境管理最佳实践|学习笔记
快速学习声明式环境管理最佳实践
107 0
声明式环境管理最佳实践|学习笔记
|
存储 运维 Kubernetes
环境管理3阶段:从说明书到命令到声明式 | 学习笔记
快速学习环境管理3阶段:从说明书到命令到声明式
100 0
环境管理3阶段:从说明书到命令到声明式 | 学习笔记
|
监控 大数据 流计算
环境篇之项目概述|学习笔记
快速学习环境篇之项目概述
64 0