可觀測性平臺,企業(yè)選擇自建還是購買?3000字幫你捋清思路
我在接觸企業(yè)做咨詢的時候,問的頻率最高的是關(guān)于搭建可觀測性平臺的困惑,在數(shù)字化程度高的業(yè)務(wù)系統(tǒng)里面,可觀測性平臺確實能夠極高的提高運維效率,那么企業(yè)最感興趣的是:建立可觀測性,是應(yīng)該自己搭建還是直接購買商業(yè)產(chǎn)品?
一、成本?v.s.?收益
當(dāng)考慮自建還是采購可觀測平臺時,普遍會認為自建更劃算——因為開源軟件是免費的,而商業(yè)軟件通常需要付費。這是一個片面的說法,實際上,我們應(yīng)該考慮的是總體擁有成本(Total Cost of Ownership,TCO)。
Total Cost of Ownership(TCO)是指一個產(chǎn)品或服務(wù)的全部擁有成本,包括購買價、使用成本、維護費用、升級成本、以及最終處理費用等。通俗來說,TCO 是指購買一個東西的總成本,而不僅僅是購買它時的價格。這個概念常常用于企業(yè)采購決策,因為企業(yè)在采購產(chǎn)品或服務(wù)時,需要考慮到產(chǎn)品或服務(wù)的全部擁有成本,而不僅僅是它的購買價,這樣才能更好地做出決策。
舉個例子,假設(shè)你正在考慮購買一輛汽車。如果只考慮購買時的價格,可能會選擇價格較低的車型。但是,如果你考慮到汽車的使用成本、維護費用、油耗、保險費等,那么價格可能就不是唯一的考慮因素了。因此,TCO 能夠幫助你更全面地了解一個產(chǎn)品或服務(wù)的全部成本,才能做出更明智的決策。
那轉(zhuǎn)化成現(xiàn)在討論的自建還是采購這個問題上,企業(yè)不僅包括考慮購買商品或服務(wù)的費用,還要考慮以下這些成本的付出:
- 資源成本:無論是自建還是購買商業(yè)產(chǎn)品,都需要考慮安裝和部署所需的計算、存儲等資源成本。如果使用SaaS產(chǎn)品,還需要考慮將遙測數(shù)據(jù)傳輸?shù)絊aaS端所需的流量成本。
- 人力成本:自己搭建和購買商業(yè)產(chǎn)品的主要區(qū)別在于人力成本。自己搭建需要花時間來安裝、設(shè)置和根據(jù)需要進行二次開發(fā),而購買商業(yè)產(chǎn)品需要進行相應(yīng)的培訓(xùn)。這些時間都會轉(zhuǎn)化為員工的工資,也是企業(yè)的重要開支之一。
- 拆除或最終處置成本:在某些情況下,無論是自建還是購買,如果不再使用相關(guān)工具或產(chǎn)品,都不能簡單地扔掉。我們需要考慮如何替換它,是否需要進行遷移工作,這也會帶來一些成本。
成本總是伴隨著預(yù)期收益的,建立可觀測性主要是為了提升系統(tǒng)的可靠性??捎^測性可以讓最終用戶獲得更好的體驗和服務(wù),滿足業(yè)務(wù)需求,甚至推動業(yè)務(wù)發(fā)展。
同時,正如我之前提到的,在云原生時代,隨著系統(tǒng)復(fù)雜性的增加,不存在完全沒有問題的系統(tǒng)。因此,在出現(xiàn)問題或故障時,快速找到問題的根本原因,縮短故障平均恢復(fù)時間(MTTR)變得非常重要。這些都是建立可觀測性的價值收益。接下來,我們將看一下自建和購買商業(yè)產(chǎn)品分別涉及哪些成本和收益。
二、自建可觀測性平臺
這里的自建不是指從零開始自己研發(fā)一整套可觀測平臺(這種方式的時間、人力成本非常高),而是基于開源產(chǎn)品進行構(gòu)建和二次開發(fā),這也是更多企業(yè)能夠接受和采用的方式??捎^測性不僅僅是監(jiān)控,自建可觀測平臺還需要考慮監(jiān)控、日志和鏈路追蹤。此外,除了計算和存儲資源,還需要根據(jù)數(shù)據(jù)量的規(guī)??紤]消息中間件、緩存、數(shù)據(jù)庫等多種組件所需的資源。例如,以下是日志分析平臺ELK的典型架構(gòu)(ELK是Elasticsearch、Logstash和Kibana三個開源項目的首字母縮寫):
如果你想通過開源軟件自建可觀測性,可能需要以下組件:
- 監(jiān)控:Prometheus+Grafana。
- 日志:Logstash+Kibana。
- 鏈路追蹤:SkyWalking。
- 數(shù)據(jù)存儲:Elasticsearch集群。
- 消息隊列:Kafka集群。
- 數(shù)據(jù)庫:MySQL集群。
- 內(nèi)存數(shù)據(jù)庫:Redis集群。
這時,需要考慮資源、人力和一些隱性成本。
1. 資源成本
- 要滿足大數(shù)據(jù)量的情況,幾臺1核2G的虛擬機很難解決問題。特別是在生產(chǎn)環(huán)境中,如果數(shù)據(jù)量大,Elasticsearch的計算節(jié)點需要高配置,通常需要兩個16C 64GB的主機節(jié)點和一個控制節(jié)點。
- 日志的原始數(shù)據(jù)到后端存儲,雖然存在一定的壓縮,但實際容量還需要考慮索引、兩份數(shù)據(jù)副本等因素占據(jù)的存儲空間。
- 如果使用公有云,還需要考慮各個計算節(jié)點的存儲成本。此外,自建數(shù)據(jù)中心還涉及服務(wù)器成本、機房費用、后續(xù)擴容成本等。
- 災(zāi)備資源成本,可觀測性平臺被稱為“Lastdance?service”,它需要比其他服務(wù)的可用性更高,所以在災(zāi)備方案上的成本遠高于普通服務(wù)。
2. 人力成本
維護自建工具需要2~3人的團隊進行安裝部署、功能開發(fā)、問題排查和處理、性能調(diào)優(yōu)等工作。此外,二次開發(fā)也需要人力成本。許多企業(yè)沒有二次開發(fā)的能力,即使進行二次開發(fā),也可能由于主導(dǎo)開發(fā)的技術(shù)負責(zé)人或相關(guān)人員離職而導(dǎo)致項目難以繼續(xù)。由于可觀測性需要不斷迭代,如果人手不足,就無法跟上技術(shù)發(fā)展,整個團隊的技術(shù)應(yīng)用也會受到限制。
隨著業(yè)務(wù)增長,維護工具的團隊人數(shù)也會隨之增長,從開始的2~3人,到幾十人甚至上百人。作者曾在AWS Cloudwatch工作過,當(dāng)時核心研發(fā)人數(shù)就已過百人。
另外,隨著業(yè)務(wù)增長,所需的人才門檻也會提高,不僅對大型分布式系統(tǒng)設(shè)計、開發(fā)和運維有極高的要求,同時還需要了解網(wǎng)絡(luò)通信、操作系統(tǒng)、網(wǎng)絡(luò)安全,以及數(shù)據(jù)科學(xué)。為此Google針對這類復(fù)合性人才制定了一個崗位 – SRE(站點可靠性工程師),根據(jù)統(tǒng)計,這類人才的工程師平均薪資大約在100萬人民幣/年。而且這類人才通常集中在頭部的互聯(lián)網(wǎng)大廠,招聘難度遠比招傳統(tǒng)研發(fā)高。
3. 隱性成本
由于這種將開源軟件組合起來的方案只能稱為工具的組合,而不是完整的可觀測平臺(它并沒有完全解決數(shù)據(jù)孤島問題)。當(dāng)遇到業(yè)務(wù)問題時,仍然需要訪問不同的工具進行問題分析,并需要與不同團隊進行溝通,這會花費很多時間,尤其是在線上救火的時候,服務(wù)宕機5分鐘和宕機5小時,帶來的損失,不僅僅是經(jīng)濟上的損失,很有可能就會失去客戶信任,持續(xù)流失客戶。
持續(xù)維護也需要成本。技術(shù)棧中的第三方組件必須及時更新和修補,同時還需要考慮自建組件的安全性。假如維護團隊出現(xiàn)人員流失或者變更,其交接成本比重新搭建一套新的系統(tǒng)還要高,因為開源組件每天都會迭代更新,假如維護團隊沒有開源社區(qū)里的核心成員,基本上1年之后,系統(tǒng)升級會成為整個團隊一整年的KPI。
自建的收益:通常來說,很考驗企業(yè)的技術(shù)能力,企業(yè)的技術(shù)實力過硬可以快速上手、構(gòu)建原型,并通過不斷完善逐漸完善平臺。另外,成熟的開源軟件通常有強大的技術(shù)社區(qū)支持。成百上千的程序員來自世界各地,共同維護一套軟件,保持其活力并使其不斷更新和修復(fù)問題。此外,自建軟件可以建立企業(yè)內(nèi)部的專業(yè)知識。每個企業(yè)都有自己的需求,這些需求需要轉(zhuǎn)化為軟件功能。自建平臺讓企業(yè)內(nèi)部利益相關(guān)者的溝通和協(xié)調(diào)更加順暢,能更好地服務(wù)于業(yè)務(wù)需求。
三、使用商業(yè)產(chǎn)品構(gòu)建可觀測性
購買的成本:企業(yè)在購買第三方產(chǎn)品和服務(wù)時,通常會考慮以下因素:
- 一次性花費這么多錢,這個產(chǎn)品對業(yè)務(wù)有什么價值?
- 前期Proof of Concept(PoC)看起來很好,但實際使用會不會完全不同?
- 供應(yīng)商是否能夠滿足新的業(yè)務(wù)需求,還是必須等待他們更新?如何確保購買的產(chǎn)品能夠持續(xù)滿足不斷變化的需求?
- 是否能夠避免供應(yīng)商鎖定?如果因某種原因需要選擇新產(chǎn)品,需要多少時間和精力進行遷移和切換?
這些都是購買商業(yè)軟件需要考慮的成本因素。購買商業(yè)產(chǎn)品的流程通常比較漫長。經(jīng)過測試、招投標等一系列過程后,如果產(chǎn)品無法滿足客戶的使用需求,或者因各種原因需要重新開始,那么整個過程所消耗的財務(wù)、時間和人力成本將是巨大的。另一方面,許多商業(yè)軟件按許可證收費。如果公司處于快速成長階段,需要考慮公司在發(fā)展壯大后繼續(xù)使用商業(yè)軟件的額外開銷。
購買的收益:如果購買和使用的是SaaS軟件,可以減少自建平臺所需的計算、存儲等資源投資和維護成本。即使購買的平臺需要安裝部署,通常也由供應(yīng)商負責(zé),完成初始配置后,即可開始使用。更重要的是,原本需要進行開源軟件二次開發(fā)的工程師可以將時間和精力投入到業(yè)務(wù)保障上,不再需要全面研究和掌握開源軟件的開發(fā)和維護。另一方面,選擇合適的商業(yè)產(chǎn)品也意味著將專業(yè)事務(wù)交給專業(yè)人士處理。你可能會獲得一個擁有專業(yè)知識的合作伙伴,在可觀測性領(lǐng)域有自己的積累,能夠為你提供專業(yè)服務(wù),解決各種問題。如果自己去研究,可能需要數(shù)年才能達到這個水平。
相比之下,購買商業(yè)產(chǎn)品需要考慮的成本更少,因為這些產(chǎn)品通常都是一站式解決方案,可以滿足企業(yè)所有的可觀測性需求。此外,商業(yè)產(chǎn)品通常會提供更好的技術(shù)支持和服務(wù),保證系統(tǒng)的穩(wěn)定性和可靠性。綜上所述,企業(yè)在選擇自建還是購買可觀測性平臺時,需要綜合考慮各種成本和收益,做出明智的決策。
作者:Nicholas,InsightMon CTO
本文由@Nicholas 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!