最近因爲項目的緣故,常常會和同窗們聊到一個話題,那就是企業如何在應用性能管理(Application Performance Monitoring, 簡稱APM) 領域的開源和商業化產品中選擇合適本身的產品,下面就以該領域爲例和你們作一個分享。數據庫
先說結論:沒有統一答案,企業用戶應當從自身需求,技術掌握深度,建設成本這三個方面來衡量。架構
企業性質和最終方案併發 |
技術掌握程度框架 |
自身需求運維 |
建設成本分佈式 |
---|---|---|---|
世界500強的IT部門, 最終選擇商業產品,部署方式爲專用雲 | 已經被各大APM廠商進行過POC,接口人對APM領域有必定理解;已經在內部進行過多輪DevOps概念推廣和相關環境建設。 | 1.配合壓測調優性能;2.能快速推廣和應用到全集團;3.集團大屏幕輸出;4.平常運維中的問題報警,排查,診斷。 | 1.產品費用+諮詢費用;2.每一年的產品升級和維護費用;3.2名甲方接口人員;4.內部機器成本。最大併發監控規模:萬臺。平均每臺活躍實例/年監控成本在4000元左右。 |
數千人的中型互聯網公司,最終選擇基於 pinpoint 自建 | 負責人爲多年從事APM領域的資深專家,並有從原來APM廠商轉來的Pinpoint Commiter,正在進行DevOps建設。 | 平常運維中的問題報警,排查,診斷爲主。 | 1.4名開發人員至少一年的開發維護時間。2.2名運維人員的平常維護和推廣。3.內部機器成本。最大併發監控規模:千臺。平均每臺活躍實例/年監控成本在2000元左右。 |
數十人的創業團隊,最終選擇公有云商業產品 | 對APM領域,僅僅是聽過幾場meet up,以業務開發爲重心。 | 平常運維中的問題報警,排查,診斷爲主。 | 公有云產品費用,根據業務量,靈活擴縮容。最大併發監控規模:數十臺。平均每臺活躍實例/年監控成本在1000元左右。 |
上面是三個不一樣企業規模中APM使用的一個大體狀況以及他們的選型和成本狀況。當把需求落到具體使用場景上時,商業化產品和開源產品在完成度上,其實也有不少區別:工具
使用場景性能 |
商業化產品-以阿里雲ARMS爲例學習 |
開源產品--以Pinpoint和Skywalking爲例測試 |
---|---|---|
報警和報表:做爲平常運維工具,報警功能必不可少。在平常巡檢中,須要把關鍵信息放在一個頁面中造成報表,而且對報表定時進行推送。 | 支持豐富維度的數據報警設置,以及豐富的推送渠道,包括釘釘,短信,郵件等。支持用戶自定義設置各類業務報表。 | 支持簡單的報警功能,大部分狀況下須要用戶額外進行開發和集成。 |
用戶反饋問題跟蹤:能根據某一個業務關鍵ID 查詢出對應的分佈式調用鏈路和相關的log。 | 支持全系排查和100%鏈路採集。 | 不支持。 |
代碼瓶頸診斷:發現問題之後,須要快速定位到代碼性能瓶頸。 | 無需額外的埋點,自動適配大部分主流框架,支持自定義埋點。單線程快照技術,能監控到沒有埋點的業務代碼的運行狀況。 | 無需額外埋點,支持自定義埋點。 |
穩定性&可拓展性。 | 通過多年那雙十一挑戰,產品性能穩定。SaaS產品動態擴縮絨,無需用戶關心。 | 開源項目未通過大規模生產環境檢驗,須要用戶本身進行穩定性的測試,以及根據數據量進行擴縮容量。 |
使用諮詢。 | 5*8阿里雲專家諮詢服務:可針對性輸出阿里雲多年性能調優經驗和使用場景,幫助用戶快速落地APM產品。 | Github issue爲主無商業化公司支持,出現問題大部分本身解決。 |
定製化能力。 | 支持經過API定製本身的展現頁面。 | 開源產品,能夠進行任意改動。 |
以阿里雲 ARMS 爲例,假設監控50個實例,估算下成本:
在當今互聯網雲時代,企業在選擇建設本身監控系統的時候,必定要結合自身狀況進行產品和架構選型,具體建議以下:
公司形態 | 用戶畫像 | 建議選型 |
---|---|---|
小型初創公司 | 以公司生存,業務發展爲主,須要快速見效而且性價比高的產品。 | 以公有云Saas爲主,不建議投入過多精力在監控領域的開源自建,而須要專一於核心業務發展。 |
中型成長企業 | 有較穩健業務收入和增加,但願對於技術有所發展和挑戰。 | 商業產品+開源產品,能夠經過商業產品快速學習某一領域知識,再結合自身狀況經過開源產品定製部分監控,如採用grafana定製監控大盤。 |
大型上市公司 | 有自建機房,業務求穩,並且在國內外有較強監管和合規需求。 | 考慮採用專有云和混合雲的商業化服務爲主,能夠配合廠商嘗試開源產品,部分科技型公司可選型開源產品。 |