CTO指南 -- 为什么说超过2台ECS就要考虑如何避免“配置飘移”问题

简介: 本文我们探讨了在云原生时代,云上开发和运维应用时(超过2台ECS)的配置飘移问题,以及探讨了如何通过引入集中管理配置的配置中心帮助消解配置飘移的问题。

CTO指南 -- 为什么说超过2台ECS就要考虑如何避免“配置飘移”问题

摘要 本文探讨了业务系统多台ECS多实例运行时,基于配置文件管理配置会遇到的著名的“配置漂移”问题,以及如何基于类似阿里云ACM的配置中心集中化管理方案来帮助解决这个问题

各位CTO/CIO,你为系统准备时光机了么?

“配置飘移”这个问题其实不是什么新鲜玩意,国外早在业界提了很多年了,业界每年因配置飘移而产生的故障和系统失效问题带来的经济损失那是相当的可观,但是国内业界关注和重视甚至“意识”到这个问题存在的人都相当的少。配置飘移,简单来说就是各位CTO逼自己回答下面2个问题

config_drift_1

“设置” - 恢复出厂设置

config_drift_2

上图操作大家应该不陌生,生产系统配置就好比我们手机上的“设置”,要知道我们的手机“专人”维护配置,VIP待遇,尚且随着随着时间的推移,安装的APP越来越多,某天可能不得不需要恢复出厂设置,更何况我们的生产系统?如果上一次做“配置”的那个哥们离职了,他曾经对系统做的那些“神”操作还如何恢复往日荣光?

创业艰难百战多,十万旌旗斩阎罗

所谓千里之行,始于足下,一个伟大的激动人心的创业项目可能是下面这个最典型的基本高可用(无单点)的技术架构开始的

config_drift_3

我们后文就以这个典型的场景为例来阐释一下什么是配置飘移问题,其给生产可能带来的伤害。

配置飘移(Configuration Drift)

配置漂移指的是随时间做出的引起计算机或服务偏离所希望的配置的改变。

差不多一半的不定期系统停机时间可归因于配置问题。配置指的是标识和设置硬件和软件的属性的值的过程,使得系统按特定的行为匹配运行环境。当开发和运维一天一天的对发生的需求和问题做出响应时,服务器和系统可逐渐地变得以偏离于策略或标准的方式配置,该过程被称为配置漂移。

如果计算机和应用部署不是类似地被配置,则管理多个机器和应用运行实例可快速地变得复杂。即使对于最初被完全相同地配置的计算机和应用副本,配置改变也可能随时间发生。配置漂移越大,就变得越难以调试问题,使得对系统的有效管理和维护更困难。

上面的概念好枯燥,还可以更枯燥么?答案是可以, 参见 有效管理配置漂移!

理论是枯燥无味的,我们以上文中的典型架构场景具体看一下一些可能会导致配置飘移的案例帮助你更好的理解问题所在。

Web 服务器配置

随着业务的发展,应用服务器压力越来越大,在某个时间点,你可能发现其中一台机器的Heap被打爆了,修复很简单--临时增加最大堆大小。假设堆大小是运维人员登录到服务器时一次性更改,增加堆大小并重新启动Web服务器。然后在有些地方指出了Web服务器所在的机器正在进行维护。但不幸的是增加堆大小这个临时配置并没有被反馈到Web服务器配置基线里面,这样在未来新的Web服务器扩容进来并投产进来时,可能会面对因较低的堆设置,导致用尽内存从而带来的意外的故障。

计划的数据库密码变更

作为定期维护的一部分,生产数据库的密码可能需要被定期更新。这将导致应用服务器的数据源配置需要关联的更新。这可能可以通过手工或者自动化脚本以在生产上应用这些变更。

这个过程中脚本中的编程错误可能导致不正确的数据源配置从而导致某台应用服务器无法连上数据库,从而带来意外的系统宕机时间。或者,如果脚本需要手动运行每个服务器,管理员忘记将更改应用于其中一个服务器。

数据库URL变更

让我们考虑另外一个可能导致数据源变更的例子,随着业务的拓展,一个新的数据库投产,这样应用服务器上的数据源配置需要变更JDBC URL以便指向新的数据库。
为了让事情更有趣,让我们假设旧的数据库服务器保持运行,也许它会用于备份。假设再次的,组织通过手工或者自动化脚本以在生产上应用这些变更,这个过程中产生的错误带来的问题可能比上一个更难以发现,因为可能运行了一段时间后才发现,有些应用服务器居然连的还是老的数据库。

版本管理带来配置管理的焦油坑

一个好汉三个帮,现代软件开发,我们会在应用中引入各种组件依赖,而这些组件各有版本,在各条业务系统上,会根据自己的需求和问题,以不同的节奏升级自己的包,随着时间的流逝,俯瞰自己的所有系统,即使同一个组件也使用了各种不同的版本,这些不同的版本开放了不同的配置参数,这种版本配置焦油坑往往将我们拉入噩梦。一个好好的配置参数,在一个业务系统上表现良好,在另一个业务系统那里却是导致诡异问题的恶魔。

环境配置的复杂性

配置在环境间也有极大的可能产生飘移,在软件生产流水线上,一般标配是开发、测试、预发、生产四个环境,这些环境之间的配置并不完全相同,一些有助于调试类的配置只能在开发、测试环境打开。基于本地的开发和生产放在云上也常常会导致一些在本地调整的配置忘记了应用到云上的生产环境从而导致意外的生产服务停机。

铁打的团队流水的人

作为一个CTO,相信你经常需要面对这种时刻,关键时刻,痛失了一员大将,或者需要挥泪斩马谡,但是1个月的交接时间做个代码的“后事托付”都还不够呢,更何况是线上运行需要的额外的一些重要的配置变更?

你新招来的哥们投入迭代,开发新需求,然后在新的环境和机器上做部署,但不幸的事,系统跑不起来啦或者跑起来总是时不时出一些诡异的问题,因为曾经趟过的那些坑,曾经做的一些“黑配置”和紧急的fix已经随着那个兄弟一起带走啦。

配置快照

配置快照是指将系统中关键配置,例如SLB配置,nginx配置httpd.conf, 应用服务器配置,如tomcat.xml, 数据源配置,数据库配置RDS,缓存配置,应用配置如application.yml等定时(例如每天或者每小时)做一个快照存储到配置中心。

如下图所示:

config_drift_4

让你的系统有恢复“出厂设置”的可能性

有了定期的配置快照之后,很容易通过在如下通用2个配置管理的流程中,在适当的点上使用配置中心提供的配置管理工具做到我们系统的一键恢复“出厂设置”或者一键恢复到上一个有效配置状态,

config_drift_5

config_drift_6

一般来说,配置中心提供的工具集应该包含但不限于以下能力:

  • 统一分发配置到多台机器的能力
  • 配置版本管理
  • 从配置中心拉取配置并放到本地(可以使用类似confd这种工具)
  • 配置分发/拉取状态追踪(例如推送轨迹)
  • 配置变更审计能力

常用的配置中心产品介绍

  • 阿里云 ACM: 阿里云应用配置管理,前身为Diamond,算是国内最早的配置中心产品。目前在Git上有不同开源版本,在阿里云上有商业版供使用。
  • Spring Cloud Config: Spring Cloud官方用于做配置中心的工具,主要是在Java Spring领域使用。
  • ZooKeeper: ZK其本身虽具备一部分配置中心能力,但是由于本身定位于分布式协调信息管理,因此仅比较适合在应用规模不大的情况下做配置中心。

总结

本文我们探讨了在云原生时代,云上开发和运维应用时(超过2台ECS)的配置飘移问题,以及探讨了如何通过引入集中管理配置的配置中心帮助消解配置飘移的问题,最后,想跟说的是 “用什么工具解决问题不重要,重要的是知道有这么个问题”。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
存储 弹性计算 人工智能
2025年阿里云企业云服务器ECS选购与配置全攻略
本文介绍了阿里云服务器的核心配置选择方法论,涵盖算力需求分析、网络与存储设计、地域部署策略三大维度。针对不同业务场景,如初创企业官网和AI模型训练平台,提供了具体配置方案。同时,详细讲解了购买操作指南及长期运维优化建议,帮助用户快速实现业务上云并确保高效运行。访问阿里云官方资源聚合平台可获取更多最新产品动态和技术支持。
|
4天前
|
存储 人工智能 缓存
怎么根据自己的业务选择阿里云服务器配置大小?
本文指导如何根据业务需求精准选择阿里云服务器配置,涵盖个人轻量级至企业级、计算密集型等场景,推荐不同实例类型、存储与带宽方案,并提供成本优化策略,如包年包月节省成本、按需升级配置及选用性价比高的自研ARM架构实例。帮助用户在数字化转型中实现性能与成本的平衡。 注:以上配置与价格基于阿里云2025年官方数据,实际信息可能有所调整,请以官网实时页面为准。
|
4天前
|
人工智能 运维 监控
2025年阿里云服务器配置选择全攻略:CPU、内存、带宽与系统盘详解
在2025年,阿里云服务器以高性能、灵活扩展和稳定服务助力数字化转型,提供轻量应用服务器、通用型g8i实例等多样化配置,满足个人博客至企业级业务需求。针对不同场景(如计算密集型、内存密集型),推荐相应实例类型与带宽规划,强调成本优化策略,包括包年包月节省成本、ESSD云盘选择及地域部署建议。文中还提及安全设置、监控备份的重要性,并指出未来可关注第九代实例g9i支持的新技术。整体而言,阿里云致力于帮助用户实现性能与成本的最优平衡。 以上简介共计238个字符。
|
4天前
|
存储 人工智能 监控
新手小白购买阿里云服务器省钱策略、配置选型与注意事项
针对初次使用阿里云服务器的用户,本文提供系统化的指导方案以优化成本并满足业务需求。首先介绍配置选型,包括实例类型(通用型、计算型、内存型)与基础配置建议;其次阐述省钱策略,如企业认证、合理选择计费模式及批量购买;最后提醒注意事项,涵盖带宽存储规划、地域网络优化及安全管理。新手可通过明确需求、选择配置、优化购买和持续监控四步快速上手,实现高效稳定的云端部署。 注:推荐配置基于2025年阿里云产品体系,具体信息请参考官网。
|
6天前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
3月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
225 61
|
2月前
|
存储 弹性计算 安全
阿里云服务器配置选择策略参考及后期使用注意事项
对于初次购买阿里云服务器的一些新手用户来说,在云服务器配置选择和后期使用过程中有一些不清楚的地方,小编分享几点阿里云服务器配置选择策略,以及后期使用注意事项,购买过程中注意好下面这些事项,能让我们选对选好阿里云服务器,购买之后,在使用过程中,注意下面这些事项,能够让我们更好、更安全的使用阿里云服务器。下面是小编分享的一份详尽的阿里云服务器配置与使用指南,以供参考和借鉴。
|
3月前
|
安全 Linux 应用服务中间件
从零开始启动、配置、保护你的云服务器并搭建一个简单的网站
本文详细介绍了如何准备原料、搭建基础环境、进行安全防护、建设网站、管理证书以及开启BBR优化网络性能。主要内容包括获取健康云服务器、配置SSH登录、创建非root用户、启用密钥认证、安装Nginx、申请TLS证书、配置HTTPS自动跳转及优化网络性能等步骤。通过本文,读者可以掌握从零开始搭建个人网站的全过程。
74 2
从零开始启动、配置、保护你的云服务器并搭建一个简单的网站
|
2月前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
3月前
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
112 6

热门文章

最新文章