DevOps都玩不好还想玩AIOps?
2018-02-05 23:19
267 查看
devops出来没几年,很多媒体又开始宣传aiops,实际上,据笔者了解,devops落地得好的公司并不多。为了实践devops,很多公司为此做了很多工作,比如:
1、把部门名字变了,比如以前叫运维中心,现在叫devops中心,以前叫运维部,现在和测试部合并成了devops部,让开发,测试和运维坐在一起办公。
2、引入了很多devops工具链或者流水线,最出名的比如jenkins pipeline,或者其它一些商业CI/CD工具
3、引入了配置管理工具,比如disconf,或者基于某开源软件比如consul自研配置中心
4、引入了全链路跟踪工具,可以监控到rpc级别的问题
OK,即便做了这么多,有时候还是感觉devops的效果不是那么理想,比如:
1、发布不够流畅,经常出问题
2、遇到线上业务问题,往往研发,架构,运维三方出马也难以快速定位。
自动化运维不等于devops,但是自动化运维做不好,devops一定做不好。而要做自动化,一定要做标准化,标准化包括方方面面的内容,比如配置标准化,以一个3节点mq集群的配置为例:
第一种配置方法:
jms1.url=tcp://10.0.50.100:61616
jms1.username=xxx
jms1.password=xxx
jms1.maxconnections=10
jms2.url=tcp://10.0.50.101:61616
jms2.username=xxx
jms2.password=xxx
jms2.maxconnections=10
jms3.url=tcp://10.0.50.102:61616
jms3.username=xxx
jms3.password=xxx
jms3.maxconnections=10
第二种配置方法:
jms.url=tcp://10.0.50.100:61616,tcp://10.0.50.101:61616,tcp://10.0.50.102:61616
每一种配置类型,都需要被标准化,当架构决定用某个mq的时候,模块如何配置连接mq就需要被标准化,而不是等模块上线了再去做规范,这也是很多公司实施devops效果不好的关键之一,没有一个强有力的组织在事前进行规范定义,或者说有规范,但推行力度远不够。
另外,如果研发和运维还是按照原来的分工模式,比如研发专注写代码和修bug,运维专注基础环境维护,比如网络,dba,服务器管理等,这样子devops多半也做不好,任何工具或者流程的执行者都是人,不能绕开人的作用,因此,笔者建议:
1、研发往后退一步,要熟悉自己开发的模块的运行环境,比如网络,dns,cdn,nginx,es,kafka等
2、运维往前进一步,要熟悉各业务场景以及对应的数据流,如此不仅能强化线上问题分析能力,还能更好地支持业务运营,毕竟,dev和ops的紧密互动才是devops的核心理念。
1、把部门名字变了,比如以前叫运维中心,现在叫devops中心,以前叫运维部,现在和测试部合并成了devops部,让开发,测试和运维坐在一起办公。
2、引入了很多devops工具链或者流水线,最出名的比如jenkins pipeline,或者其它一些商业CI/CD工具
3、引入了配置管理工具,比如disconf,或者基于某开源软件比如consul自研配置中心
4、引入了全链路跟踪工具,可以监控到rpc级别的问题
OK,即便做了这么多,有时候还是感觉devops的效果不是那么理想,比如:
1、发布不够流畅,经常出问题
2、遇到线上业务问题,往往研发,架构,运维三方出马也难以快速定位。
自动化运维不等于devops,但是自动化运维做不好,devops一定做不好。而要做自动化,一定要做标准化,标准化包括方方面面的内容,比如配置标准化,以一个3节点mq集群的配置为例:
第一种配置方法:
jms1.url=tcp://10.0.50.100:61616
jms1.username=xxx
jms1.password=xxx
jms1.maxconnections=10
jms2.url=tcp://10.0.50.101:61616
jms2.username=xxx
jms2.password=xxx
jms2.maxconnections=10
jms3.url=tcp://10.0.50.102:61616
jms3.username=xxx
jms3.password=xxx
jms3.maxconnections=10
第二种配置方法:
jms.url=tcp://10.0.50.100:61616,tcp://10.0.50.101:61616,tcp://10.0.50.102:61616
每一种配置类型,都需要被标准化,当架构决定用某个mq的时候,模块如何配置连接mq就需要被标准化,而不是等模块上线了再去做规范,这也是很多公司实施devops效果不好的关键之一,没有一个强有力的组织在事前进行规范定义,或者说有规范,但推行力度远不够。
另外,如果研发和运维还是按照原来的分工模式,比如研发专注写代码和修bug,运维专注基础环境维护,比如网络,dba,服务器管理等,这样子devops多半也做不好,任何工具或者流程的执行者都是人,不能绕开人的作用,因此,笔者建议:
1、研发往后退一步,要熟悉自己开发的模块的运行环境,比如网络,dns,cdn,nginx,es,kafka等
2、运维往前进一步,要熟悉各业务场景以及对应的数据流,如此不仅能强化线上问题分析能力,还能更好地支持业务运营,毕竟,dev和ops的紧密互动才是devops的核心理念。
相关文章推荐
- AIOps与DevOps落地、数据库选型与SQL优化策略都在这了! - 最新活动
- 从DevOps到AIOps,阿里如何实现智能化运维?
- vs2008代码提示不好用的原因
- 微软产品总监谈下一代Visual Studio vNext及DevOps
- 《Python基础教程》学习笔记之[D4]当索引不好用时—字典
- 汇编写的驱动,能生成符号文件吗?不好调试啊
- (转载)软件架构师 — 做不好士兵的将军不是好将军
- 什么是DevOps
- 【转载】UUID做主键,好还是不好?这是个问题。
- 废除“嫖宿幼女罪”的可能性多大不好说
- 一个父亲的智慧:孩子教不好,别总怨社会
- 三星i9100通话质量不好声音很小怎么办?
- 该死的 微软 输入法。。。 不好用,还不能卸载 ,终于卸载了
- 你存在我的脑海里,没你的日子,我一点都不好
- prototype/ call/ apply/ slice.call/ this/ 研究研究,太灵活了,不好掌握
- 为什么说LD_LIBRARY_PATH不好
- 解决安装Microsoft Loopback Adapter找不好到指定文件
- 现在心情很不好
- asp.net 中为什么在showModalDialog弹出的窗体 用html 控件 刷新不了页面。而用服务器端控件 写C#代码可以刷新页面。但是用服务器端刷新页面不好。