为何不少公司都自主开发监控系统?

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

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

一个产品经理的回答

其实这个问题能够延伸到,为何不少公司都自主开发订餐系统,不少公司都自主开发客户管理系统,为何不少公司都打算自主开发运营监控系统?程序员

除开生产力过胜,和可恶的 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 这样的大公司都选择了第三方监控产品。而领导们复杂的要求,程序员们遵循任务重复造轮子,和使用第三方监控产品所须要的学习成本,才是不少公司自主开发监控系统的缘由。

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

相关文章
相关标签/搜索