如何设计一个大规模远程命令执行系统
【今日推荐】:为什么一到面试就懵逼!>>> 本文作者:AIOps智能运维 干货概览 书接前文,在上一篇文章中我们介绍了大规模命令执行的意义以及所面对的问题和困难,简单介绍了百度集群控制系统(Cluster Control System,以下简称CCS系统)通过构建两级数据模型、四级调度模型、三级代理执行的方式解决了这些问题,在本篇文章中,我们将续接前文,继续对CCS系统的设计实现进行详细剖析。 两级数据模型 设计考量 回顾前文,在面临的需求中我们提到,需要在大规模的服务器上执行命令并且能够灵活控制。为了满足这样的需求,建立数据模型时,只有执行信息是不够的,还要有控制信息,如路由、并发度、暂停点等,两者组合在一起,构成了CCS系统中的数据模型。 控制信息 控制信息包括命令传递所需的“路由”信息和调度过程的控制信息,如下: 目标机器:命令执行的目标服务器列表,可以是IP,也可以是Hostname。 并发程度:分组并发执行时每组的机器数量,用于控制分组执行,避免系统升级时所有服务器同时升级造成业务中断。 暂停节点:指定执行到第几台服务器时暂停执行,方便先操作几台服务器并确认没问题后再继续执行,若有问题也可将问题控制在小范围内。 执行信息 执行信息是指命令到达目标机器后开始执行时所必需的信息,如下: 认证信息:标示执行者是谁的信息,用来确认执行者的合法性,如不合法则拒绝执行。 鉴权信息