首页 > 新闻 > 内容
智能运维 | 几十万台服务器,保证一条命令执行到位有多难
- 2018-08-07 -

   由南京风城云码软件技术有限公司的智能运维团队打造的大规模远程命令执行系统)通过构建两级数据模型、四级调度模型、三级代理执行的方式解决了这些问题。在本篇文章中,我们将续接前文,继续对CCS系统的设计实现,包括两级数据模型、四级调度模型、三级代理执行,以及常见的异常处理方式进行详细剖析,且听一一分解。

  执行信息是指命令到达目标机器后开始执行时所必需的信息,如下:认证信息:标示执行者是谁的信息,用来确认执行者的合法性,如不合法则拒绝执行。鉴权信息:标示执行者所持有的权限,如果权限不够也要拒绝执行。命令信息:真正要在目标机执行的命令,也是数据模型这个包装盒中最有价值的信息。

  除去控制信息和执行信息这两个关键信息外,还有一些辅助信息如任务类型、任务创建/结束时间、任务超时时间等也是数据模型实际应用中的必要信息,但并非关键,不再详述。

  在调度模型设计上,考虑到百度云服务器的地域分布特点、任务调度与业务的强相关性、单机环境的复杂性以及传输过程的稳定性要求,我们将传输模型分为四层,自顶向下分别是统一接入层、分级调度层、机房汇聚层、代理执行层,分别负责全局业务接入、按业务等级的分级调度、机房内服务器的任务管理、单机层面的任务执行。同时为保障可用性,每一层均要保证足够的冗余度(通过无状态集群/多机热备实现)与数据容灾性(通过在每层设置缓存与持久层实现)。

  通过构建CCS系统,我们解决了命令在海量服务器上规模化执行的问题,目前已在百度内部和百度云上广泛使用,并承担了百度各产品和百度云的大多数变更落地执行操作。如果你对本系统感兴趣,想应用在自己公司的生产环境中,可以给我们留言,百度云智能运维团队竭诚为您服务。