写点什么

自动化运维体系必不可少的系统

  • 2022 年 8 月 26 日
    北京
  • 本文字数:1303 字

    阅读完需:约 4 分钟

自动化运维体系必不可少的系统

无论大家如何设计自己的自动化运维平台或体系,以下三个系统在自动化运维体系中是不可缺少的:CMDB 管理系统、持续集成系统、运维调度管理系统。

1、CMDB 管理系统

无论自动化运维的建议走到哪一层、哪一步,都要有一个中心,来保证所有平台的一致性,即大家熟悉的 CMDB(Configuration Mananement Database),因为业务的不同,每个公司的 CMDB 记录机器资产的情况是不一样的,但大致上这几个方面是相同的,即机器主机名、IP 名、业务角色、隶属平台、机器类型、归属线路。


另外,考虑到后期的架构扩展及机器的频繁上下架等综合因素,我们的 CMDB 必须具备一定的开放性,比如机器的上下架非常频繁,可以设计了 API,以程序的形式自动更新机器的详细设备信息并开放给资产部的同事,方便他们每天或每周定时巡检,而且开放了相应的写权限,方便在必要的时候可以手动更新;此外,现在很多业务都需要是有弹性的,所以类似 AWS 或阿里云主机都会使用(当然,用于临时分布式计算的 Spot Instance 不在考虑之列),这些都属于公司的固态资产,如果再加上公司业务需要的物理机器,其实就是混合了云的概念在里面了。CMDB 设计好以后,就可以调用自动化配置管理工具的 API,例如 Ansible 或 Saltstack,来设计自动化运维流程,这样,即使不是运维人员,也能调用图形化界面来完成自动化运维的工作。

2、持续集成系统

持续集成系统以开源的 Jenkins 为例,采用的是 Jenkins 的 Master/Slave 分布式架构,而且 Slave 节点全部是由 Docker 来实现,即将 Jenkins 置于 Docker 容器内运行。由于 Docker 技术的引入,现在持续部署的工作也很容易实现,以目前开发的某款 APP 为例说明其流程。

详细流程说明如下:

1)Developer 以 tag 的方式向内部的 GitLab 网站提交代码。

2)Jenkins 系统通过 Web Hook 插件(此插件可选,不选的话需要手动构建)检测到了代码有变化,执行自动化构建过程,通过 Dockerfile 文件打包镜像。

3)Jenkins 系统在自动化构建脚本中调用 docker 命令将构建好的镜像 push 到腾讯云或阿里云私有仓库。4)可以及时将构建成功与否的结果推送给相关人员(推荐安装钉钉通知器插件,并使钉钉通知器里带有 Jenkins 的部署项目和版本号),比如测试人员,以安排测试。

5)像腾迅云或阿里云等的私有仓库中,都有类似镜像触发器的规则,此时触发规则,会自动将新镜像部署到 DevOps 环境的 Kubernetes 集群机器上。

6)等应用成功更新镜像版本以后,研发人员可以通过程序获取应用的 API(或者代码层面提供版本健康检查路由),或通过直接访问应用方式来查看变化。


事实上,在测试环境和开发环境中已经引入了 Kubernetes,利用它来实现新的镜像,进而实现部署自动化。k8s 的滚动升级可以使得服务近乎无缝地平滑升级,即在不停止对外服务的前提下完成应用的更新。

3、运维调度管理系统

运维调度管理系统,有的也称之为“运营系统”,该系统是对复杂运维事务的封装,个人觉得运维调度管理系统是上述所有子平台中最有技术含量的,在运维过程中会接触到很多复杂的运维场景,比如容灾切换、服务迁移、熔断机制、扩容或缩容等,这些都不是简单地通过单一运维动作就能够完成的,需要综合考虑很多因素(最直接有效的监控指标就是业务参数和大数据日志分析),这也是需要花精力思考和总结的地方。

发布于: 刚刚阅读数: 5
用户头像

InfoQ签约作者 2018.11.30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
自动化运维体系必不可少的系统_自动化运维_穿过生命散发芬芳_InfoQ写作社区