不可变环境:打造稳定、可预期、低成本的运行环境 | 学习笔记

简介: 快速学习不可变环境:打造稳定、可预期、低成本的运行环境

开发者学堂课程【ALPD 云架构师系列:云原生 DevOps 36计-阿里云云效出品不可变环境:打造稳定、可预期、低成本的运行环境】学习笔记,与课程紧密连接,让用户快速学习知识。

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


不可变环境:打造稳定、可预期、低成本的运行环境


内容介绍:

一. 不可变构建(回顾)

二. 运行环境的目标:稳定、可预期、低成本

三. 环境管理的常见问题


一. 不可变构建(回顾)

1. 不可变构建:相同的源码+相同的环境+相同的构建脚本=>一致的软件制品

2. 通过 Dockerfile 描述构建环境、构建脚本及运行环境

3. 容器的基本概念:One process per container

4. 按逻辑单库的结构组织代码库和代码组

这样才能以更好的组织形态去协作大家更好的维护。

5. 软件交付过程,其本质是开发者围绕代码库的协作过程,按照 SLA(Small、Linear、Atomic)的原则提交代码

6. 将环境相关的配置与镜像分离

问题:运行环境相关的配置属于哪一层?

image.png

答案:Pod和系统

解析:配置越靠里,成本越高。


二. 运行环境的目标:稳定、可预期、低成本

终态:提供稳定、可预期的系统

可预期的系统,需要确保运行环境和软件制品(例:容器镜像)一致性

运行环境,要做到环境的可预期和稳定,环境需要稳定。另外,因为相对来说环境资源成本比较高,所以要强调低成本这一点。

整个运行环境分为三部分,有制品(如容器镜像),运行上下文(数据、配置),编排规则。image.png

制品要保证一致性,首先保证代码极其依赖的一致性,并且构建环境的一致性,构建脚本的一次性。 从环境的角度来讲应用或者服务的制品,比如运行容器镜像的数据配置相关的,编排规则怎么在上面跑,部署在哪些容器里头,在哪些机器上,哪些节点,以及要几次的备份,这些东西通过部署的动作到了环境。这是部署完了之后才会形成一个可以运行的环境。


三. 环境管理的常见问题

现实当中,在环境一块里会有很多的问题的。环境问题往往是痛点。

1. 常见的问题有哪些?

⑴配置文件中有好多监控之类的配置,我不知道该怎么设置

⑵测试依赖的环境经常发生问题, 耗费大量的等待和排查时间

⑶搭建一套新的环境很痛苦,经常需要耗费整天的时间

⑷开发的应用在本地跑不起来

⑸每次配置环境都需要小心翼翼,生怕漏修改了某个配置

2. 问题的根源:环境没有清晰的定义

环境不清晰,就会带来很多很多的问题,不管是拍照,还是去创建新环境,都会带来很多问题。

清晰的定义指的是说环境里头应该包含什么,他是怎么部署起来的,这些东西都需要有明确的定义。

3. 环境管理的终态:软件定义的不可变环境

通过相同的制品,相同的运行上下文,相同的编排规则去部署一致的环境。

这个定义是明确的、一致的。当制品相同的时候,有相同的运行上下文,资源、数据都一样,基于相同的编排规则,那么环境就应该是一致的,它的环境在任何地方都是一样的,不会有偏差。

环境管理的终态,其实可以通过代码库版本管理的方式定义出来,那么第一环境它基本上就是明确的,第二是有明确版本,这样就可以保证不同的版本的环境的一致性。

相关文章
|
Rust JavaScript Unix
Nodejs 常见版本管理工具(nvm、n、fnm、nvs、nodenv)
Nodejs 常见版本管理工具(nvm、n、fnm、nvs、nodenv)
11438 0
|
Go
VSCode资源管理器文件树缩进配置
VSCode文件树缩进太小,看上去一点都不清晰
1614 0
VSCode资源管理器文件树缩进配置
|
10月前
|
安全 jenkins 网络安全
在配置 Gitee 时需要注意什么?
通过注意以上这些方面,可以更好地配置Gitee,保障项目的代码管理安全、高效、有序,为团队的协作开发和代码上线流程提供有力的支持。
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch 中的动态图与静态图:理解它们的区别及其应用场景
【8月更文第29天】深度学习框架中的计算图是构建和训练神经网络的基础。PyTorch 支持两种类型的计算图:动态图和静态图。本文旨在阐述这两种计算图的区别、各自的优缺点以及它们在不同场景下的应用。
2760 0
EMQ
|
传感器 人工智能 安全
EMQX 与 MQTT: AI 大模型时代的分布式数据中枢
在以数据为核心的 AI 时代,基于 MQTT 协议的消息服务器 EMQX 能帮助企业更好的利用人工智能和机器学习模型,是智能化系统中核心的数据基础软件。
EMQ
473 110
|
SQL 监控 数据库
MSSQL性能调优秘籍:索引深度优化、SQL重构技巧与高效锁策略
在Microsoft SQL Server(MSSQL)环境中,性能调优是确保数据库高效运行、满足业务快速增长需求的关键
|
移动开发 JavaScript 小程序
uView Divider 分割线
uView Divider 分割线
193 0
|
存储 缓存 运维
Nacos 配置管理最佳实践
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos 配置管理最佳实践
解决 Error: ENOENT: no such file or directory, scandir ‘..\node_modules\node-sass\vendor‘
解决 Error: ENOENT: no such file or directory, scandir ‘..\node_modules\node-sass\vendor‘
655 0
|
SQL 存储 关系型数据库
10个索引失效的坑,你踩中几个
10个索引失效的坑,你踩中几个
712 1
10个索引失效的坑,你踩中几个