自动化运维软件设计实战-所感

今天利用了大概一小时的时间翻看完了《自动化运维软件设计实战》

这本书在思路上面给我提供了很大的帮助和借鉴,最近打算搭建一套运维平台。这本书开篇前三章介绍了Ansible,Puppt以及SaltStack,这三个运维工具都是可以单点主机操作多点客户端,就是操作多个机器像操作单台主机一样。Ansible的思想即使无入侵式的,同时SSH协议,来操作目标主机,而且是主动通知各个目标主机做事情;Puppet则是需要部署agent,而且下发操作的思想是我把声明写好后公开,各个agent定时过来取;Puppet在管理海量节点的时候会有性能问题;第三个就是SaltStack,集合了Ansible和Puppet的长处:既可以SSH,也可以agent,另外SaltStack相比较于Ansible和Puppet是重量级集中式运维工具:因为他引入了ZeroMQ,master和minion之间通信是ZeroMQ,实现前后台解耦,同时还保证了任何一点挂掉,都不影响消息被后续执行。

貌似有着各种强大的集中运维工具,但是笔者最终还是决定了自研一套运维系统,因为项目需求比较坑:Window+Linux混搭,装Ansible被Over了,部分机器没有安装GCC,没有安装python和Ruby,这样Puppet和Saltstack被Over了(Puppet采用Ruby编写,Saltstack采用Ruby编写,SaltStack采用都需要GCC进行编译安装组件);安装也不太现实,因为机器数量太大,而且有的机器还连不了外网。于是笔者实现了一套类似于SaltStack的工具;采用OSGi技术开发,容器选用的是Karaf(我之前使用的是Fliex),采用的理由是热部署可以完全自动进行(Felix需要通过命令行来搞),但是代价就是这个Krafa的组件竟然达到了30M,要知道Flex才10M。消息中间件选用的是ActiveMQ(为什么不是RabbitMQ呢?)

最后一章,作者祭出Zabbix。运维其实是分三个层次,了解,决策以及执行;其中了解就是获知信息,决策就是根据获知的信息决定下一步做什么(条件分支),执行就是来执行决策;Zabbix就是做了解层和决策层的,集中式运维工具就是做执行层的内容。和Zabbix交互的方式就是在Zabbix中做配置,当触发了某个调用OSGi条件,将会通过脚本向ActiveMQ中发送一条消息,这个时候OSGi作为消费者来监听ActiveMQ的主题,发现有告警,则会触发相应的操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张叫兽的技术研究院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值