概要
在业务系统及容灾建设不断演进中,运维团队面临着不断增长的挑战,尤其是在多机房环境下的发版、启停和扩容操作。为了帮助团队更高效地管理这些任务,我们通过一套全新的发版变更与双机房调度策略。
以下是我们的策略详解,希望能为运维同行们带来工作上的启发。
1 发版/回退:精准控制,灵活应对
在多机房环境中,发版和回退操作的复杂性不言而喻。我们的解决方案通过CMDB(配置管理数据库)作为数据源,结合应用名和Tag的变量,实现了对单台或多台服务器的精准控制。无论是发布新版本还是回滚至旧版本,我们都能轻松应对。
「操作动作」:发布、回滚
「目标」:单台、多台
「联动系统」:网关、MQ、监控、Apollo
版本发布是运维工作中非常重要的一部分,当应用达到几百个时,这就真成了体力活!但是版本发布不只是更新版本和重启这两个动作,更重要的是平滑发布,做到对业务无损。
因此我们要结合当前的技术架构以及业务特性:
业务架构中的注册式服务,如:API网关、MQ消息队列、JOB分布式任务;
应用配置文件更新,如:Apollo、静态配置文件;
监控,如:监控项的屏蔽、恢复;
另外还有比较重要的一点就是面向全员的git/devops管理流程,让开发、测试、运维按照流程让版本流动起来。
2 启停:一键操作,高效管理
启停操作是运维日常工作中的重要组成部分。我们的系统允许用户通过应用名这一简单变量,实现对单台或多台服务器的启动、停止和重启操作。这一功能不仅提高了操作的便捷性,也大大提升了运维效率。
「操作动作」:启动、停止、重启
「目标」:单台、多台
「联动系统」:网关、MQ、监控、Apollo
启停操作的实现方式有很多种,但是如何优雅、可视化、按需批量/单台/指定以及联动相关系统,这就有点难度了。尤其还要面向自有、外包等不同人员,相信将其功能化更加高效!
3 扩容:逐台部署,稳定可靠
在扩容方面,我们采取了更为谨慎的逐台部署策略。通过应用名和Tag的变量,确保每次扩容都能稳定可靠地进行。这一策略特别适用于对稳定性要求极高的场景。
「目标」:逐台
「联动系统」:监控
对于扩容操作,需要注意的是尽量从当前集群中的服务器同步版本包、JVM标准文件或相关配置文件,而不是死守标准化这条线,因为历史操作中我们可能有微操作从而导致差异,因此建议还是要格外注意!
双机房调度:全面覆盖,无缝协作
我们的双机房调度策略,确保了在不同场景下,各个系统之间的无缝协作。无论是发版/回退、启停还是扩容,应用、CMDB、Apollo、网关、MQ和监控系统都能得到全面覆盖,实现高效的资源调度。
场景
应用
CMDB
Apollo
网关
MQ
监控
发版/回退
✓
✓
✓
✓
✓
✓
启停
✓
✓
✓
✓
✓
✓
扩容
✓
✓
✗
✗
✗
✓
其实在双机房调度中,最为核心的就是CMDB,其为不同的运维场景提供可靠、准确的数据支撑,才让我们的自动化有了灵魂。
“我们容易在短期上高估CMDB的作用,却更容易在长期上低估CMDB的作用。”此刻不知你对这这话有了更深刻的了解!
总结
通过这套策略,我们不仅提升了运维的自动化水平,还确保了操作的准确性和系统的稳定性。希望这些分享能为您的运维工作带来价值,让我们一起迈向更高效、更智能的运维时代。
「关注我们」,获取更多运维技巧,让我们一起成长,共同进步!
添加好友,邀你入群,运维人的圈子,每日精彩分享,更有小伙伴们的热议!
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/424234.html