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

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 本文我们探讨了在云原生时代,云上开发和运维应用时(超过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)的配置飘移问题,以及探讨了如何通过引入集中管理配置的配置中心帮助消解配置飘移的问题,最后,想跟说的是 “用什么工具解决问题不重要,重要的是知道有这么个问题”。

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
消息中间件 安全 Unix
SSH配置多台服务器之间的免密登陆以及登陆别名
SSH配置多台服务器之间的免密登陆以及登陆别名
13 1
|
18天前
|
弹性计算
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
2024年阿里云服务器的优惠价格新鲜出炉,有特惠云服务器也有普通优惠价格,本文为大家整理汇总了2024年阿里云服务器的优惠价格,包含特惠云服务器和其他配置云服务器的优惠价格。以便大家了解自己想购买的云服务器选择不同实例规格和带宽情况下的价格,仅供参考。
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
|
1天前
|
存储 弹性计算 安全
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
2核2G、2核4G配置是很多个人和企业建站以及部署中小型的web应用等场景时首选的云服务器配置,这些配置的租用价格也是用户非常关心的问题,本文为大家整理汇总了2024年阿里云服务器2核2G、2核4G配置不同实例规格及地域之间的收费标准,同时整理了这些配置最新活动价格,以供大家参考和选择。
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
|
3天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
6天前
|
数据采集
robots.txt配置 减小服务器压力
robots.txt配置 减小服务器压力
10 0
|
17天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
19天前
|
弹性计算 网络安全 虚拟化
ECS数据问题之升级配置预防数据丢失如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
19天前
|
弹性计算 Kubernetes 安全
ECS选型推荐配置
在构建Kubernetes集群时,应避免使用过多小规格ECS,因它们可能带来网络限制、容量不足和资源碎片化问题。采用大规格ECS能提升网络性能,优化镜像拉取效率。选择Master节点时,要考虑集群规模,生产环境建议选择较高规格。Worker节点推荐使用CPU≥4核、内存≥8GiB的ECS,根据集群总核数和容错率来决定节点数量。当规模达1000核,可选用裸金属神龙服务器,它提供超强网络、零计算抖动和安全性能,适合大促等需快速扩展的场景。
23 1
|
24天前
|
弹性计算 固态存储 调度
2024年阿里云服务器配置选择指南,新手整理
阿里云服务器配置选择指南:个人用户推荐轻量应用服务器或ECS通用算力型u1,适合小型网站和轻量应用。企业用户应选择企业级独享型如ECS计算型c7、通用型g7,保证高性能计算需求。配置选择要考虑CPU内存比例、公网带宽和系统盘。轻量服务器提供2核2G3M和2核4G4M选项,ECS实例则有多种规格以适应不同业务场景。公网带宽建议至少5M,系统盘可选高效云盘、SSD或ESSD。详细信息见[阿里云服务器产品页](https://www.aliyun.com/product/ecs)。
58 3
|
24天前
|
安全 网络安全 数据安全/隐私保护
如何配置常用邮箱服务器_云·企业官网 | 常用邮箱配置邮件服务器
本文介绍了邮件服务器的作用,如接收用户留言和表单通知,并提供阿里云企业邮箱、QQ邮箱、腾讯企业邮箱、163邮箱和谷歌邮箱的配置步骤。建议根据服务器所在地选择相应邮箱服务。配置涉及开启SMTP/POP3服务、获取授权码或应用密码,并在网站后台填写邮件服务器地址、SSL设置、账号和端口等信息。
42 0

热门文章

最新文章