公司有200余台伺服器集群,现计划采用自动化运维方案,由于没有太多实操经验,对工具选型和技能需要不明确,希望在此请教下各位前辈指点迷津。


谢邀,很久没上知乎了。

首先要理解什么是运维自动化,所谓的运维自动化实际上就是某些运维过程的自动化,比如初始化自动化、测试/部署自动化,加监控自动化,简单报警处理自动化,业务降级/恢复自动化....集腋成裘,慢慢的让系统可以承担更多的重复劳动,减少人力投入和学习成本

通常来说,200台机器其实是一个比较小的规模,在这个量级上,运维自动化的需求主要是部署自动化,如果你掌握著真实的物理机集群,并且有一群听你话的RD,那么研究研究Openstack+Docker应该是个不错的选择,作为一个广受社区吹捧的容器服务框架,关于他的测试/部署自动化的文章简直不要太多。官网blog也有不少,你可以去看看;如果你是在维护一个伟大的或者尾大不掉的系统,那么需要研究现有的部署架构和方法,然后再选择合适的自动化部署系统,这方面jenkins,hudson, go之类的也挺多的,自己写也不复杂,前提是你有人力。

加监控自动化什么的,就取决于你选什么监控系统,是不是自己搭建了,如果自己搭建的话,搭建前务必看看他是怎么加的,是否支持API,然后想想上线系统是不是可以自动化实现,剩下的就是调研验证and写脚本了;如果是买的商业监控系统,问售后要解决方案就是了。

简单报警处理自动化和监控有关联,报警触发的时候回调,然后执行相应处理脚本就好了,当然要是监控系统太挫的话,也只能你自己脚本或程序实现故障发现了。业务降级/恢复自动化就靠和开发一块协作了,他给升级降级的方法,你负责关联故障。

装机/初始化自动化这个,看你公司机器变动频率够不够高了,如果一年没几台增加,没必要花太多精力,如果天天加机器,那还是研究kickstart/WDS之类的东西吧,另外这些系统是资源进入运维管理的第一站,和CMDB的接驳也是要早规划的。

这些事情说起来不难,实际上从零开始的话,牵扯的事情其实挺多的,比如部署的标准化(以简化你的各个自动化系统)、CMDB的建设和维护,业务程序打包和监控介面的配合调整,产品版本控制系统的建设和接驳.... 目前世界上还没有完全意义上的运维自动化,就看你能把多少自动化了,and切记:

1. 不要为了自动化而自动化,而是要找出最消耗你时间的事情然后自动化之,如此往复。

2. 不要贪恋web化,你会发现你会时常面临web化的呼声,每当这时,请保持冷静,考虑风险和收益再做决断


自动化运维方案,要看你们公司投入的程度与时间了。。

首先肯定是 1. 标准化运维环境 2. 技能掌握的话, 一提到自动化运维,肯定是 python 啦...3. Ansible, 自写脚本,都是不错的选择,毕竟你就200台伺服器。

4. 其实现在很多开源 堡垒机 就可以做到你的要求。。这里就不打广告,你自动搜索 开源堡垒机


我个人总结了一些从无到有的建设经验,可以参考下:

一些小团队的自动化运维实践经验?

showme.codes


您好,欢迎试用行云管家自动化运维,联系在线客服可以免费获取试用券。

自动化运维主要是让简单的工作程序化,让重复的工作自动化。是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是实现IT运维的质量,降低成本。可以说自动化一定是IT运维最高层面的重要属性之一,但不是全部。

行云管家自动化运维工具有以下几大功能,但不是全部:

1、丰富的预设脚本库,轻松搞定运维脚本:预设业界知名的SaltStack脚本库,兼容各大平台,功能强大,扩展性高,这些脚本库足以满足您日常运维的需求,您也可以发挥自己的智慧,编写适合自己业务场景的新脚本

2、脚本/命令批量执行,降低海量主机运维复杂度:同时对海量主机批量执行脚本/命令,提高运维工作效率,再多主机也不怕

3、文件批量分发,系统更新升级更简单:在对大量主机进行系统升级,更新补丁等业务场景中,利用行云管家文件分发功能,将所需文件批量发送到所有主机,一键完成更新升级过程

4、文件批量收集,一键提取不同主机的同类文件:文件收集功能可将分散在大量主机上的某类文件收集到指定位置,适合分散式系统日志分析等业务场景

5:任务编排,运维过程彻底自动化:将复杂的作业节点编排成任务,设定触发条件和时间,满足您更为灵活的应用场景。例如定期的巡检任务,只需设置好执行的时间和业务节点,自动执行,无需人工干预

还有更多的自动化运维功能请咨询在线客服


1、监控2、自动化扩容3、环境管理(包及应用自动安装,多环境)4、自动部署应用5、通过系统授权非运维人员申请新应及、打包及部署应用
自动化运维管理平台简化IT运维、价值提升_图文_百度文库 做IT自动化可以参考一下

自动化设计的东西比较多,先把简单的事情做了,与流程是密切相关的,你公司就200台机器,基本没啥流程可言,如果公司有100来个项目,系统几百套,你就知道自动化是要配合流程来做的,

先不说流程吧,就说说技术吧!

先说说需求:

1、研发需要快速验证、刚写好的代码我要达到点一下按钮就可以验证功能;一旦IT公司大了,环境也就多了,DEV(开发环境) -&> SIT(集成测试环境)-&> UAT(验收测试)-&>公共UAT(项目比较大时会有) -&> PRE(预生产,可有可无) -&> PRD(生产环境),这就像一道生产工序一样,产出高质量的产品。

于是自动化的重要性就体现出来了!

2、到了UAT环境,由于人手不够,或者需要重新测试下对应功能,于是测试任务也需要自动化;

3、代码都放在SVN了,svn的管理流程、方法也要规范化、标准化,也需要自动化去完成简单重复的任务,如创建分支、代码冲突检测;

4、代码上线后,需要知道应用的运行状态,需要一套监控系统来自动化监控起来;

如果你只是想谢谢python/shell代码配合jenkins可以完成需求1 ,如果想学习python 无基础可以看下《python学习手册》,有基础可以看《python自动化运维:技术与最佳实践》也可以进加群(304668217)学习 ,刘天斯blog:运维进行时 - 互联网运维技术架构 jenkins学习 网上搜索下就知道了。

第二点是自动化测试、一般是由测试写自动化测试脚本;

第三点是需要对流程比较了解,不同公司代码控制管理不同;

第四点目前比较多的基础监控系统是zabbix,业务监控有: 博睿、基调 等


推荐阅读:
相关文章