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

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

开发者学堂课程【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. 环境管理的终态:软件定义的不可变环境

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

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

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

相关文章
|
4月前
|
运维 监控 应用服务中间件
自动化运维:打造高效、稳定的系统环境
【8月更文挑战第30天】本文将探讨如何通过自动化运维技术,提升系统的稳定性和效率。我们将从基础概念出发,逐步深入到实践应用,分享一些实用的工具和技术,以及如何将这些工具和技术融入到日常的运维工作中。无论你是运维新手,还是有一定经验的老手,都能在这篇文章中找到有价值的信息。让我们一起探索自动化运维的世界,提升我们的工作效率,让系统运行得更加平稳。
|
4月前
|
运维 Kubernetes 索引
揭秘ChaosBlade的Helm安装双架构:一步到位,让系统故障测试变得前所未有的简单和高效!
【8月更文挑战第7天】在多变的IT环境中,确保应用的稳定与可用至关重要。混沌工程通过故意引入故障来增强系统韧性。ChaosBlade是一款开源混沌实验工具,支持多样化的故障注入。结合Kubernetes的包管理器Helm,可简化ChaosBlade在集群中的部署。本文介绍如何使用Helm安装ChaosBlade双架构版本,包括添加仓库、选择版本、安装配置及验证等步骤,助力高效实施混沌工程,提升系统稳定性和可靠性。
69 0
|
7月前
|
运维 监控 安全
构建高效稳定的Linux服务器:系统优化与安全策略
【5月更文挑战第29天】 在现代IT基础设施中,Linux服务器因其开源性、稳定性和高度可定制的特点而广泛被采用。然而,随着业务需求的不断增长,如何保证Linux服务器的高效稳定运行成为了运维人员必须面对的挑战。本文将深入探讨针对Linux服务器进行系统优化的策略,以及实施有效的安全措施,旨在帮助运维专业人员提升服务器性能,同时确保系统的安全稳定。
|
7月前
|
运维 Kubernetes 监控
构建高效稳定的容器化运维环境
在现代IT基础设施中,容器技术以其轻量级、快速部署和易于管理的特性成为企业数字化转型的重要支撑。本文将深入探讨如何构建一个高效且稳定的容器化运维环境,涵盖从容器选择、集群管理到持续集成与持续部署(CI/CD)的最佳实践。文章旨在为运维工程师提供一套系统的解决方案,以应对日益复杂的业务需求和技术挑战。
|
7月前
|
存储 人工智能 安全
构建安全可靠的软件定制开发环境:关键步骤与最佳实践
随着信息技术的飞速发展,软件开发已经成为各行各业不可或缺的一部分。然而,随着软件应用的普及,安全问题也日益凸显。从个人隐私泄露到企业数据泄露,从网络攻击到恶意软件感染,这些安全问题不仅给用户带来损失,也给企业带来巨大的风险。因此,构建安全可靠的开发软件成为了保障用户数据安全
|
缓存 负载均衡 监控
聊聊深入挖掘业务需求,可0-1设计高可用、高并发、高伸缩的分布式项目架构,环境搭建、自动化部署、服务器环境线上排查、性能评估
聊聊深入挖掘业务需求,可0-1设计高可用、高并发、高伸缩的分布式项目架构,环境搭建、自动化部署、服务器环境线上排查、性能评估
113 0
|
监控 Cloud Native 架构师
不可变环境:打造:稳定、可预期低成本的运行环境|学习笔记
快速学习不可变环境:打造:稳定、可预期低成本的运行环境
119 0
不可变环境:打造:稳定、可预期低成本的运行环境|学习笔记
|
监控
部署平台环境可用性使用指南
部署平台环境可用性使用指南
264 0
部署平台环境可用性使用指南
|
弹性计算 监控 数据可视化
构建完整的性能压测体系及工具选型
本文作者: 殷成涛(花名:风起),阿里云PTS开发工程师,专注于性能压测与高可用架构领域 本文致力于给出性能压测的概念与背景介绍,同时针对市场上的一些性能压测工具,给出相应的对比,从而帮助大家更好地针对自身需求实现性能压测。
378 0