查看原文
其他

高级运维架构师分享Linux 集群和自动化运维 | 高手问答精粹

2016-09-21 开源中国 开源中国


#点击上图,立即参与OSC源创会年终盛典#


这些年来,很多人都在谈自动化运维。但回过头来反思一下,做了几年的自动化运维,是否还是不能确定有哪些工作没做,怎样更优雅的实施运维自动化。又或者你是刚刚踏入自动化运维扇大门。因此OSC 第 126 期高手问答带来了Linux 集群和自动化运维这个主题,并请来了@抚琴煮酒(余洪春)为大家解答关于Linux集群和自动化运维的问题。 这篇文章挑选了部分精彩的问答内容,干活多多,分享给有需要的Oscer交流、学习。

Q:想向运维方向发展,平时在测试时写一些自动化布脚本,基本上是用Shell写的,也想过用jenkins那些自动发布工具,但感觉速度有点慢,还有,好多东西还是需要手动去建,比如我看现在公司的运维团队操作跟我差不多,大部分还是要靠手动,现在公司的项目越来越多,产品线越来越多,运维只是加人力,招的人经验也比较丰富(有好几个人有网易等公司的运维经验),并没有做到真正的自动化,您这本书中有好的建设方案么?
A:平时的运维业务可以朝自动化的方向努力,机器少的场景可以靠人力抗,但机器的数量规模真正到了一定级别则必须要推行运维自动化了。不过要想真正的跟公司的业务结合起来,很多好的开源工具或方案,则需要进行二次开发。

Q:作为研发的同学,平常也要做些网络架构、运维评估等工作,是否有必要系统学习下linux 方方面面的知识?
A:恩,这个还是有必要的,熟悉Linux系统方向对工作还是很有帮助的,以后可以往架构师的方向转。

Q:集群化的云计算运维相比传统运维,所需要掌握的新技术点在哪
A:关注点不一样,比如拿AWS云平台来说,像传统运维,面临着安装系统、系统上架,分配机房等问题,但这些基础运维的活云平台都自动做了;如果想往云计算运维方向发展,要努力不断学习新的技术,比如Docker、salt、Ansible等,开发语言也要掌握一门,平时多关注Devops方向

Q:未来运维的发展方向是什么样的呢?,感觉传统的基础运维,开始淘汰了,除了大型的IDC或互联网公司,现在也看到很多运维都开始学习一些开发的知识。个人感觉运维可能会靠向devops这块发展……
A:恩,确实是这样,建议学习Python,未来的云计算运维是会向DevOps方向转的。

Q:那些情况需要做自动化运维?有什么条件吗?超过20台服务器?如何给领导建议做这块呢?
A:1、机器数量比较多的情况下,比如我们的平台超过了500台,而且还存在增长趋势; 2、业务和项目越来越多的情况下,比如经常需要统一开发环境、线上测试环境和线上环境。 给领导提方案的前提是自己要非常熟悉自己提出的自动化方案的优点和缺点,有些坑要提前提出来,记住:自己不要给自己挖坑,要不很难找人填 。 

Q:请问自动化大致包括那几个方面?我想知道书里是否有讲,这两部分:1.如何监控故障?2.监控到故障如何自动化或者半自动化处理?其实我觉得现在运维是很大一块,现在各种云平台,各种机器设备,开源方案倒是很多,更多的是上线之后的运维!谢谢!
A:我们的监控比如细致:1,系统和服务监控;2,流量监控;3,业务监控。目前监控到问题以后还是会手动处理,因为平台非常复杂,如果做成半自动或全自动的意义不大。但像很多业务都做成了自动化的,比如自动起spark/reduce机器,还有爬虫程序,这些能做成自动化处理的全部自动化了。

Q:很多人都不接受“自动化”运维。他们始终认为人来做这些事情时更可靠。当然,这与他们现在维护的机器数有关的。我的问题是:1. 自动化运维的好处和坏处分别是?2. 如果好处多于坏处,如何说服这些人使用“自动化”运维
A:自动化运维的好处是可以减轻运维的工作量,统一规划和配置系统头资源;当然了,线上的资源也有可能去现误操作的情况。这个时候就需要一个强大的report系统。其实如果机器到了一定规模,自动化运维就是一个水到渠成的过程,特别是在真正的互联网公司。

Q:请问下mysql的高可用那种方案比较好?如果主从断开,如何不影响业务的情况下,重新做主从?
A:我们线上用的比较多的方案是DRBD双机,然后再是主从复制。mysql主从复制断开也分好多情况,一般情况下是不需要重做主从的,除非到了万不得已的时候。另外,阿里有不少开源方案,建议可参考。

Q:我们现在产品开发完成后,还会出现后续新需求开发,现在我们是用的Jenkins做的自动化,从每次代码提交到自动打包到部署环境上跑测试用例,但是打包过程十分漫长,而且不定时会出错,所以想问一下,与Jenkins自动化运维相比,这种新的运维方式有哪些优势呢?
A:Jenkins是持续集成,跟自动化运维是属于两个不同的方向吧。

Q:1.分布式网站系统,如何 用集群自动更新代码和同步代码(实现那种秒更新的方案?)2.更新或者升级网站 代码的 时候, 如何确保 代码执行不会因为(更新代码的时候肯定有不一致的服务器代码落后更新)落后更新而造成执行出问题呢? 
A:我们是引入自动化运维,比如用fabric工具同时进行git命令操作,同时是几十台机器一起操作。

Q:目前自动化运维,尤其是将系统资源(CPU\MEM\IO\NETWORK)和中间件(nginx\redis\tomcat)等多方面监控的资源开发该关注哪些点?业务层面的往往是运维方面不好解决的,您怎么看?
A:恩,好多业务需求需要开发了,而且开发人员并不能真正的设计与开发出来,这个时候就需要运维人员自行开发了,这也是现在有运维开发的原因,同时也是Python大热的原因之一。 

Q:你好,我发现这本书,名称是 Linux集群和自动化运维。我想询问下,你们在生产环境中,采用的是什么自动化工具,是saltstack,puppet,还是ansible,你们,在这些自动化工具中进行了二次开发吗?
A:之前是Puppet,现在主要是Fabric | Ansible,目前很多自动化任务都是二次开发,像ansible也在进一些简单的二次开发以适应业务需要。

Q:我们一直用puppet,跟chef,ansible用起来确实比puppet方便很多吗,我也上网查了一些资料说ansible方便很多?楼主,请问技术转型到ansible你认为难度大吗?我觉得里面应该还是有很多坑的,呵呵。请赐教经验!谢谢!
A:其实还好,Ansible可以先在测试下部署,等测试得差不多的时候再慢慢的移过来,目前社区和资料挺多的。


欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。转载时请注明:文章转载自开源中国公众号 (ID:oschina2013)


了解更多详情请点击“阅读原文”



开源中国|ID:oschina2013


每天为你送上精选资讯早点

还有每天的 OSChina 乱弹哦

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存