在互聯網業務蒸蒸日上的今時今日,系統架構日漸複雜,開源的監控產品層出不窮。然而仍然有不少公司選擇自主研發監控系統,那麼,現有的較爲知名的開源監控系統 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 變得牛 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 這樣的大公司都選擇了第三方監控產品。而領導們複雜的要求,程序員們遵循任務重複造輪子,和使用第三方監控產品所須要的學習成本,纔是不少公司自主開發監控系統的緣由。
然而究竟自主研發和使用第三方監控工具哪種更好,仍是要綜合公司的資源等實際狀況來考慮,對於沒有足夠精力和實力自主研發和維護監控產品的中當心公司來講,開源的、免費的監控產品無疑是福音,對於需求清晰,不肯重複造輪子的大公司來講,一款好的第三方監控產品想必也是進步征途中的利器。(備註:本文中引用部分通過程默同窗贊成。)