文档章节

为什么很多公司都自主开发监控系统?

OneAPM蓝海讯通
 OneAPM蓝海讯通
发布于 2015/12/08 13:47
字数 2104
阅读 136
收藏 6

在互联网业务蒸蒸日上的今时今日,系统架构日渐复杂,开源的监控产品层出不穷。然而仍然有很多公司选择自主研发监控系统,那么,现有的较为知名的开源监控系统 cacti、Nagios、zabbix 等其他商业系统,有什么方面不满足公司的需求吗?网上有人说,监控粒度和深度是不满足个性化需求的点,但这种说法很难理解。

知乎上有一条回答挺有意思,下面来看看 OneAPM 产品经理程默是怎么回答这个问题的吧。

##一个产品经理的回答

其实这个问题可以延伸到,为什么很多公司都自主开发订餐系统,很多公司都自主开发客户管理系统,为什么很多公司都打算自主开发运营监控系统?

除开生产力过胜,和可恶的 KPI 之外,我觉得还有一些其他重要原因吧。

很多答案里提到了当业务变得慢慢复杂起来,开源的、第三方的监控解决方案,不能满足需求,我觉得说不通。拿一张图来说话吧:

为什么很多公司都自主开发监控系统?

上图来自一家分享和发现各 IT 公司使用什么工具的网站:StackShare——Discover and discuss the best dev tools and cloud infrastructure services

可以看到 Facebook 用了 Datadog 来做运维监控,Netflix 用了 Boundary 来做运维监控。

那么,那么多业务量巨大的公司,在监控这块依旧使用 Datadog Boundary 这样的第三方监控解决方案。

说明业务量大、逻辑复杂,根本不是要转向自己来研发这些系统的原因。

那为什么还要反复地造轮子、造轮子、造轮子呢?以我这几年的工作经历说说吧。

###领导是傻 X

我现在所从事的刚好是给企业提供第三方监控解决方案的工作。在跟很多企业提供解决方案的时候,项目实施到一半,可能在监控本身需要加入:

  • 你们能不能顺便把 IT 资产管理也给做了?
  • 你们能不能帮我们做下整个园区的 3D 建模?
  • 你们能不能按照我们的行政划分,把每项监控事宜都落到个人头上?

这就是楼上很多人提到的所谓业务复杂,本身业务不复杂,只是领导们的要求很复杂。管理本身存在很多问题,不能够将一件大事情细分到每一项具体的事情上。而领导们觉得自己只需要考虑全局,中层干部们也没有理顺领导的要求并拆分领导的要求。

工具能够帮助我们将每项具体的事情变得更高效,但是解决不了实际情况中某个大的命题。

我一直坚信:工具是让聪明人变得更高效,而不是让傻 X 变得牛 X。

当上层领导只能按照行政、业绩来划分具体实施人员的工作时,运维的监控这件事情就可以扩大到一个漫无边际的地步,并且和自己的行政划分、规章制度高度耦合。

###有情怀的程序员太少

就拿系统监控工具这件事情来说吧,国外有 Host Graphite、Boundary、Datadog 等等。国内除了小米的 Open-Falcon互联网企业级监控系统 和 OneAPM 的 Cloud Insight, 鲜少有一些真正易用的、开源的、产品化的工具,来帮助我们解决某项具体事情。

但是大公司内部,却有很多人在帮助所在的公司做这些事情。但是没有想过自己做一款产品是什么样的,也没有思考过从头开始经营一款自己的产品是啥样的。

活在大公司里,盼望着过 KPI、期待着公司上市后期权可以兑现。

中国的开源和 SaaS 服务落后于国外,很大一部分原因是因为企业文化的差异和制度本身的问题吧。

总的来说,就是程序员们都在造轮子,而且轮子越造越大,可能只适合所在的企业。没有想过自己的轮子,可以形成通用化的产品。

###没耐心

将一个产品吃透,按照这个产品的设计思路来指导自己的工作。我觉得比自己本身去研发一个产品效率要高很多啊。

打个不恰当的比方,设计师觉得 Photoshop 不好用,因为用钢笔要练习,而且 Photoshop 本身也不能给自己拓宽视野和给风格带来影响。所以决定要自己研发一个取代 Photoshop 并且更适合自己的产品。

也许还不适合自己公司在交接工作中的流程,行政部门打不开 PSD 文件,具体实施的人没有要求换成 CMYK 就印刷了。

幸好大部分设计师不具备研发的能力,只好耐着性子去学习了。

其实很多工具在经过反复的迭代和设计时,都透漏着设计者本身的一些方法论和思想在里面。有些成熟工具不好用,或者很麻烦,其实可能是使用者本身的工作方式有问题。

###题外话

最后做个广告吧。之前提到我也是做系统监控工具服务的,我们有一款系统监控工具 Cloud Insight:安装简单、UI 美丽、未来会有再开发能力。爱用不用,不用拉到。啊哈哈,上几张图。

为什么很多公司都自主开发监控系统? 为什么很多公司都自主开发监控系统? 为什么很多公司都自主开发监控系统?

说一下 Cloud Insight 的产品规划吧。我们正在做事件处理,有参考国外的 Bigpanda,主要方向是报警风暴的处理、事件的聚合,以及动态门限类与算法有关的报警策略。

然后我们也用到了 OpenTSDB,架在了 HBase 上,负载还不错。虽然在公测,但是每天处理的数据量还是挺大的。

至于行政和规章制度需要架在产品里,我指的不是报警需要分发到不同的人、并且选择不同的渠道来分发。这些一般的第三方工具,和开源工具集成一些渠道,都可以做到。

我指的是,之前面对的企业客户。可能老板根本不需要看指标,老板需要看机房里每天机器是不是 DOWN 掉了,还需要很酷炫的 3D 建模。

而真正的实际操作人员,又需要到很具体很具体的指标,甚至每个单位都需要落实到产品里。

一个工具不可能自上而下地解决管理上的问题,我们的目标是通过一个像 JIRA 的工具来达到通用的、科学的管理,而不是把这个工具做到跟公司一些很腐化的制度绑定在一起。

就像有些公司项目管理做得很烂,JIRA 用不起来,所以去找国内一些软件公司来做一个和自己制度高度耦合的项目管理软件,并天真地以为可以解决问题。

##总结一下

按照程默同学的观点,业务量大,逻辑复杂并不是根本原因,毕竟 Facebook、Netflix 这样的大公司都选择了第三方监控产品。而领导们复杂的要求,程序员们遵循任务重复造轮子,和使用第三方监控产品所需要的学习成本,才是很多公司自主开发监控系统的原因。

然而究竟自主研发和使用第三方监控工具哪一种更好,还是要综合公司的资源等实际情况来考虑,对于没有足够精力和实力自主研发和维护监控产品的中小心公司来说,开源的、免费的监控产品无疑是福音,对于需求清晰,不愿重复造轮子的大公司来说,一款好的第三方监控产品想必也是进步征途中的利器。(备注:本文中引用部分经过程默同学同意。

© 著作权归作者所有

OneAPM蓝海讯通
粉丝 94
博文 631
码字总数 1266889
作品 0
海淀
私信 提问
中国自主研发浏览器内核很难吗?

最近闹得沸沸扬扬的浏览器内核事件引起了大家的广泛关注,但是发现国内的浏览器都是没有自主研发的浏览器内核,这让很多网友引发疑问:中国互联网公司这么多,自主研发浏览器很难吗? 首先要...

少年进化论
2018/08/18
0
0
从红芯事件看开源软件的生存现状

红芯浏览器有没有创新,答应是肯定的;红芯浏览器是如何创新的呢?是基于谷歌的开源框架,并非红芯浏览器官方宣传的自主可控!那么中国为什么就没有类似安卓系统、Linux、Unix、谷歌浏览器内...

米拓企业建站系统
2018/08/23
7
0
系统架构随笔 - 设计好每一款应用

今天清晨,酷寒过去后,阴雨天,突然有种想写有关系统架构方面的博文,上周本就应开始, 不过还是今天感觉比较强烈,此处只是粗列了一些比较痛的领悟 一、目标系统特征:快速、稳定、可扩展性...

啊莫
2016/01/27
117
0
乂学教育松鼠AI联合创始人周伟:网络教育发展的六次浪潮,第七次将导向何处? | 全球AI+智适应教育峰会

雷锋网消息,11月15日-16日,“全球AI+智适应教育峰会”在北京嘉里中心大酒店盛大开幕,峰会由雷锋网联合乂学教育松鼠AI,以及IEEE(美国电气电子工程师学会)教育工程和自适应教育标准工作组...

张帅
2018/11/16
0
0
专访蚂蚁金服冯柯:自研技术再难也要坚持做

  【IT168 评论】“中兴事件”的持续爆发,让中国造基础软件的声音渐渐高涨,在这众多的声音中,笔者发现了一种与以往不同的声音,而且点赞支持的人还很多――“基础软件的国产化,如果是互...

it168网站
2018/05/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
5
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
40
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0
php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部