专栏名称: 分布式实验室
最专业的Docker文章,最权威的Docker新闻。关注容器生态圈的发展。
目录
相关文章推荐
51好读  ›  专栏  ›  分布式实验室

运维自动化闭环,从腾讯走出来的实践

分布式实验室  · 公众号  · 后端  · 2017-07-30 08:07

正文

请到「今天看啥」查看全文



这东西虽然有用,但运维来说非常的烦人,它会设定没多的门槛和流程,其实这里面很多是不科学的。


比如,我们以前要求做故障单管理,故障修复完一定要关闭故障单,我故障早都已经恢复完了,但系统总是记录我忘记结单,处理超时。为了关闭事件单,我就需要浪费额外 的时间去登陆系统,去手工关闭流程。


这种时间上的浪费,当你维护的系统变大的时候,效率的损失就边得很可怕了。所以ITIL的管理理念现在已经不流行了。


现在大家都讲DevOps,提研发、测试和运维的协同。以前ITIL讲分工,发布就是运维的责任,现在DevOps强调协同,发布就都让研发去做了。


这样很合理,因为程序发布这事你让运维去负责,其实大部分情况下出了问题运维根本识别不出来,你说别人写的代码到底有没有问题我怎么知道,真出了问题,耽误了时间,最后事情还是得交由开发来定位和处理。


而DevOps重视的就是高效,整个团队协同去处理这个事情,什么样的模式或什么样的人去做这个事情会变得更高效,谁就是第一责任人,我们就让他去负责,这样团队的流转就更高效和科学了。这是理念上的一些变革。


对应这些变革,运维人员的能力要求也有所变化。以前我们搬搬服务器,写个脚本什么的就可以了。但是随着技术和管理理念的变化,现在不一样了,运维也要开始写代码了,Java、Python、C++什么的。


运维在公司的角色定位也不太一样了,以前就只是任务实施,现在慢慢朝平台建设,甚至朝运营分析方向转变。我们不但要有能力写代码还得有能力和研发一起讨论架构,和产品进行运营沟通。


真要想把运维做好,你要学的东西太多了。对于各种新技术的学习、应用和融合,如果说每个公司或每个运维都要去重头开始琢磨,那成本会非常大,对人的要求也会非常高。


2、平台建设理念


刚才提了很多挑战和趋势,总的来说,如果我们要去做一个运维平台,去解决运维遇到的这些问题和挑战,我们要怎么做,怎么样才能够把运维的能力通过平台去不断地提升?


我这里给了一些自己的想法,这些也是我们在腾讯这么些年积累下来的经验。


首先想讲的是平台建设的理念 。很多时候做事情时,事情背后的理念往往会比做事情的方法会更重要,不知道大家认不认同这一点。


技术人员特别容易陷进一个误区,我要做一个事情,只要关注最新潮的方法和手段,背后的一些背景和因果全部都不管。


就比方说有些技术人员,他们喜欢用Markdown来写文档,但他们就从来不考虑写出来的东西商务人员该怎么使用,结果我们公司的所有商务也得学用Markdown。在公司内部也许这种妥协是容易的,但放到市场环境下这种妥协就不现实了。


所以我觉得在建设运维平台之前,有必要先沟通一些成功的经验和方法轮。


任何公司想要建设它自己的运维平台都会是一个庞大并复杂的系统工程。这里面牵涉到方方面面。很多人往往在设计的时候会希望一步到位。


比如,希望要一步到位,希望直接就设计一个能力非常全面的平台,这个平台要包含所有需要的功能,要把权限管理好,要把安全控制住,要把稳定性做高、要把用户体验做精。


这种情况下,平台的建设就会很难,建设的周期也会非常的长,很多情况下项目可能还没有建设完成,需求就已经变了,项目也就烂尾了。


其实,我们应该考虑先从0到1,然后再从1做到N。先考虑把核心最迫切的功能功能先快速实现,只有用起来才是好平台。简单的功能可以先实现,再不断地慢慢再完善,不断地丰富它的功能,这样过程中的平台收益才会最大化。


第二,标准先行 。做过运维的人都知道,我要管理的事情非常多,环境会非常复杂。当我们推行标准化的时候,它带来的最大好处是降低平台设计和实现的难度。


标准化能力和系统建设能力是一个翘翘板。我们在业务架构标准化方面做得好一点,那么系统建设的复杂度就低一点。


比如说,如果我们的运维标准化做得较差,我们有10种不同的硬件,每种配置都不一样,上面操作系统也不一样,这种情况下我们的平台就需要做不同系统和环境做兼容性,系统实施成本就非常的高了。


标准化先行,这样系统的建设复杂度和难度都会相应降低。



第三,快速尝试 。复杂系统的设计和建设都是非常难的,而且对于没做过的东西,其实很多方面在一开始的时候跟本想不清楚,也想不明白,这种情况下,应该先简单一点快速实现DEMO原型,而不是停留在反复的讨论和设计。


只要系统在应用环境中跑一阵子,很快你就会发现问题和找到相应对策的。


第四,接受不完美 。腾讯现在自动化运维平台对外有两个品牌,织云和蓝鲸,而我刚好在两个团队都待过,也都经历了两个平台的建设和成长。


比如织云平台的建设,最早是从打包规范的推广开始。早期的平台只是一个简单的脚本工具平台,之后才逐渐补充了一此管理功能,如Web管理,组件管理,包发布、配置发布等,最后才逐渐建成面向全业务管理和调度的织云平台。


这里一定是个逐步完善、逐步演进的过程。腾讯也有很多一开始就规划得很大的项目,现在看起来,基本上这些大项目都死光了。所以,这里在设计和建设中,大家都要能够接受或是忍受不完美。


对技术人员来说,这点也许会有点困难吧。记得上次参加GOPS全球运维大会的时候大众点评的一个讲师提到一点很有道理:







请到「今天看啥」查看全文