运维咖啡吧

享受技术带来的乐趣,体验生活给予的感动

这一年我们上线的自动化系统

新年之初我就写了篇文章2022,房车使用这一年总结过去一年的日常生活,2022年除了认真的生活之外,在工作上也有了不小的变化,首先是2021年底从工作了近10年的公司离职,在2022年的第一个工作日就入职了新公司,算是无缝衔接,在新公司的这一年主要负责运维自动化的规划、开发及推动落地,挑战很大,尤其是在推动落地这个环节,听过并见过很多自动化系统无法落地的案例,曾也担心过一个全新的环境一套不同的方案如何才能让大家接受并认可,好在领导认可同事配合,大家都很给力,给予了我最大的支持,到目前为止推进顺利整体都符合预期

这一年从零开始,1月完成了基础框架的搭建,3月上线了任务系统,6月上线了多云系统,9月上线了监控系统,11月系统整体移动端兼容上线,最后在12月上线了作业系统,至此一个相对完善的自动化运维系统逐渐行成

临近春节,真心的希望过去这一年在自动化运维方面的发展能真真切切的给大家带来便利,尤其是当下完全兼容移动的自动化系统,通过手机就能搞定大部分的日常运维工作,这算是实打实的好处吧,不用在假期期间背着电脑到处跑,突发状况,拿出手机,气定神闲,轻松搞定

多云系统

多云系统主要是用来统一多云资源实现集中管理,同时基于关联关系来构建资源拓扑,为上层业务提供清晰准确的基础数据。到目前为止已接入国内外十多个主要云厂商下数十种云资源,构建了完整的本地资源数据库

多云系统作为基础资源数据库,最为重要的是要保证数据的准确性,为了达成此目的,我们采用了强依赖模式,上层业务所需要的基础数据全都来自于多云,例如发布系统所需的主机数据从多云获取,构建监控大盘的服务树也来自于多云,日常作业所选择的目标主机属于同样取自于多云,甚至于项目成本计算、资源缩减等等也都依赖于多云的基础数据,一系列的强依赖从侧面保证大家在项目基础资源发生变更时会及时的去更新多云数据

到目前为止多云系统已经集中管理了线上几乎所有的基础数据,各个项目也根据各自的需求构建了自己的服务树,项目资源变动后的更新还依赖项目运维owner来处理,虽然我们有做一些例如过期资源提醒之类的功能,但更新仍不是特别及时,这个后续考虑把资源全生命周期的管理都纳入到多云系统来管理,就能保证项目资源变更后及时同步更新多云数据了

任务系统

任务系统可以将多个命令/脚本/审批/通知等单个子任务整合进一个任务流来执行,支持并发执行,支持用户审批,支持定时和周期任务,开发任务系统的主要目的也是为了将所有项目的发布部署、日常运维等工作都集中到了统一的系统进行管理

任务流的方式非常适合发布/部署流水线,尤其是加入了人工审批以及自动通知功能,可以将发布部署的各个环节都纳入到统一的任务流去管理,这些是其他自动化系统所不具备的,同时这也是在日常运维中符合场景需求的

到目前为止任务上线大半年,已经接入了公司大多数项目,稳定运行了几千个任务,还是非常可靠的,取代了之前的一众CI/CD工具,例如Rundeck/Jenings等,算是站稳了脚跟。原本是希望任务系统能接管日常运维中的绝大部分工作,但是在实际使用中发现一些临时性工作大家还是喜欢登录系统控制台去处理,所以后边又开发了作业系统来优化这一问题

监控系统

监控系统主要用来实现基础资源的监控,同时整合多云资源、云上事件、云上告警等信息,以业务为维度构建可视化的监控大盘和告警大盘,提供资源和业务的可观测性,形成平台化的运维监控能力

监控系统看似只简单的收集整合了云上的监控数据,但实际上意义重大,我单独写过一篇文章来介绍多云监控告警系统的优势,主要包括统一平台,简化操作,优化展示,权限隔离和多云融合,从使用体验上来说完全碾压各个厂商的云监控

监控系统除了监控数据的展示之外,还做了一些扩展功能,例如导出报表,能够直观的看到项目下各服务角色的配置、数量以及一段时间内的监控汇总数据,更为重要的是会同时结合费用账单以月为维度输出资源费用情况,为资源缩减成本控制提供支持。目前来看监控系统已经成了整个自动化运维平台上大家使用最多的工具,甚至看到有些小伙伴上班第一时间就打开监控系统查看过去一天项目资源使用情况,监控大盘已经成了浏览器的常驻页面

作业系统

作业系统作为任务系统的扩展与补充,主要用来实现系统命令或脚本的便捷执行,以轻量和易用为目标,直接触达终端主机并实时获取结果反馈。作业系统深度集成了大家使用最为广泛的自动化工具Ansible,可以方便的批量执行Module或Playbook

作业系统同时与我们的多云系统相融合,选择业务节点即可批量选择主机,通过网关代理打通网域内网,解决网络互通问题,作业操作直达目标主机,实时获取结果反馈,并能随时主动中断作业执行。为了尽量保证作业执行的安全,还引入了危险命令过滤机制,自动过滤危险命令,提升作业安全性,配合完善的审计日志,能够做到操作有记录,过程可追踪

作业系统上线不久,并没有太多的数据可以参考,究竟落地情况如何,还需要后续再看了,希望能又不错的表现吧

手机兼容

这一年除了上边的四个系统外,还将整个自动化运维平台都做了移动端的兼容,这个兼容并不仅仅是页面上展示的兼容,还包括操作使用上的兼容

对于移动端的兼容也是广受好评的

基础框架

所有的上层应用都构建在基础框架之下,虽然基础框架仅仅只花了一个月的时间来选型和搭建,但整体上都基于我之前的Sadmin来设计,同时随着业务的复杂和深入加入了更多实用的功能,例如基于项目的资源隔离以及更多好用的公共类和方法等等,正是得益于此,才是项目代码整体更为规范,项目开发效率也更高,稳定性更好

写在最后

技术上的总结就到这里,上线仅是开始,落地才算成果,希望在未来这一年能慢一点,继续推动落地,真的为大家带来便利,让大家觉得好用

这是2022年农历新年的最后一个工作日了,我想很多人可能跟我一样已经提前休假回家,准备欢度春节,在此我提前送上新年祝福,祝大家在新的一年里工作顺利,阖家欢乐