編者按:Snapchat的S-1面世后,該公司需要給Google支付一大筆金額,因?yàn)镾napchat公司的核心基礎(chǔ)設(shè)施需依賴于Google。本文整理自Quora的優(yōu)質(zhì)回答,以Snapchat和MySpace公司為例為讀者介紹基礎(chǔ)設(shè)施對(duì)大公司的影響。以下是正文。
我認(rèn)為這可能是他們公司存在著致命缺陷的標(biāo)志。有兩個(gè)主要的理由:
首先,這會(huì)影響到他們公司的成本結(jié)構(gòu)。從規(guī)模上來講,打造并運(yùn)行你自己的核心基礎(chǔ)設(shè)施,往往所需的成本更少。云服務(wù)已經(jīng)擴(kuò)展出了一個(gè)可以依靠的方法(在早期這是一個(gè)很好的主意,尤其是在你公司的發(fā)展前景和產(chǎn)品市場都不太確定的情況下),但是一旦你達(dá)到了標(biāo)準(zhǔn)的質(zhì)量,并且你知道你需要一定數(shù)量的持續(xù)計(jì)算資源,那么建立并運(yùn)行你自己的服務(wù)器所需的成本則更少。當(dāng)你的公司依賴向大量的用戶做廣告時(shí),這就尤其重要了。因此,你公司的平均成本(平均服務(wù)器成本)需要盡可能地低,以維持公司的發(fā)展。
第二個(gè)原因更微妙:面向用戶的巨型公司常會(huì)受到當(dāng)前技術(shù)的限制。“擴(kuò)展”并不僅僅是關(guān)于橫向增加更多服務(wù)器的問題,它還能發(fā)現(xiàn)你特定的應(yīng)用程序的瓶頸,并通過調(diào)試或擴(kuò)展你的基礎(chǔ)架構(gòu)來處理這個(gè)瓶頸。
這個(gè)問題的本質(zhì)并不明顯,所以我來解釋一下。這個(gè)問題取決于你的應(yīng)用程序是做什么的,一旦每天數(shù)以萬計(jì)的人們開始使用它,它將會(huì)給你的計(jì)算機(jī)基礎(chǔ)設(shè)施施加高度的壓力。一些應(yīng)用程序可能會(huì)占很大的CPU使用率。另一些可能需要大量的網(wǎng)絡(luò)流量。這些都是簡單的事情。更高級(jí)的問題可能是訪問緩存的特定模式和操作系統(tǒng)或底層硬件的默認(rèn)緩存替換算法相斥;或者一個(gè)特定的網(wǎng)絡(luò)流量率和數(shù)據(jù)包大小的網(wǎng)絡(luò)流量以一個(gè)特殊的方式堵塞了路由器;亦或者隨機(jī)搜索然后偶爾專注于某一個(gè)區(qū)域的磁盤訪問模式,從而擾亂了默認(rèn)緩存策略和基于時(shí)間的歸檔策略。這些行為都源于產(chǎn)品的具體使用模式在不同的公司中都會(huì)有所不同這一情況。
所有這些事情只會(huì)在你的應(yīng)用程序規(guī)模很大的情況下出現(xiàn),也就是說,問題只會(huì)出現(xiàn)在那些少數(shù)的公司老板身上,他們擁有數(shù)百萬的用戶或每天數(shù)十億次的用戶交互。
如果你的操作低于那個(gè)閾值,現(xiàn)成的硬件和打包的云服務(wù)會(huì)照顧你:它們?yōu)榱送瓿蛇@些事情而被設(shè)計(jì)。但是一旦你開始使用它們,你需要對(duì)你的軟件包和硬件設(shè)置進(jìn)行非常特殊的調(diào)試,然后根據(jù)你對(duì)自己產(chǎn)品的技術(shù)需求對(duì)它們進(jìn)行修改。這要求工程師對(duì)你的應(yīng)用程序和技術(shù)都非常了解:他們會(huì)為你升級(jí)或創(chuàng)造出新的技術(shù)。
每一個(gè)成功的面向用戶的世界級(jí)公司都做這個(gè),并且在上市之前就已經(jīng)做到了。這就是為什么Google、Microsoft、Facebook、Twitter甚至Yahoo總是在討論這些奇怪的開源基礎(chǔ)設(shè)施包。你會(huì)發(fā)現(xiàn)這些數(shù)據(jù)包總被設(shè)計(jì)用來解決一些奇怪的問題或邊緣情況,它們只會(huì)出現(xiàn)在沒有其他解決方案存在的時(shí)候。
依賴于第三方的解決方案(不管它是否是云計(jì)算——如果你擁有自己的數(shù)據(jù)中心但是卻運(yùn)行著Microsoft的服務(wù)器,你有Microsoft的工程師為你調(diào)試)的問題在于,有一天你達(dá)到了一個(gè)規(guī)模限度,如果你不是第三方提供商的主要業(yè)務(wù)合作伙伴,那么他們就不會(huì)派最好的人員來解決這些問題。即使他們是一流的,他們也會(huì)因不熟悉你的產(chǎn)品而遇到阻礙,且不知道你在基礎(chǔ)設(shè)施方面的特殊要求。他們只會(huì)“加一些服務(wù)器”,因?yàn)檫@就是他們對(duì)其他所有的顧客所做的事情。
因?yàn)榈谌教峁┥掏且恍┓浅4蟮墓荆ㄋ鼈儽仨毷谴蠊荆@樣才能以有競爭力的價(jià)格讓你和他們合作),所以你絕對(duì)沒有機(jī)會(huì)去成為他們的最重要客戶。這意味著他們最好的工程師將不會(huì)為你的基礎(chǔ)設(shè)施服務(wù),你最好的工程師也不能為你的基礎(chǔ)設(shè)施服務(wù),并且你競爭對(duì)手的工程師也不會(huì)為你的基礎(chǔ)設(shè)施服務(wù)。所以理論上最好的情況就是,你有供應(yīng)商的第二好的工程師為你的基礎(chǔ)設(shè)施服務(wù),他們對(duì)于你的應(yīng)用程序的要求并不熟悉。
這些工程師會(huì)沒有什么動(dòng)力,因?yàn)槟銜?huì)要求他們快速完成創(chuàng)業(yè)公司級(jí)別的大量工作,在你的基礎(chǔ)設(shè)施垮掉時(shí)修理它們,但你又不會(huì)支付同等級(jí)的薪水,他們只能得到自己所屬的大公司發(fā)的工資。你最好期盼他們不會(huì)轉(zhuǎn)向壓力低的工作中去。
因此,你只能擁有一個(gè)運(yùn)行價(jià)格很昂貴卻品質(zhì)低劣的核心基礎(chǔ)設(shè)施。從金融的角度來說這是致命的——它可能會(huì)阻礙公司盈利——而且會(huì)創(chuàng)造出一道公司無法快速逾越的高墻,也就無法維持對(duì)用戶服務(wù)的質(zhì)量。
順便說一句,MySpace(另一個(gè)社交網(wǎng)絡(luò))遭遇過類似的情況。他們在Microsoft的軟硬件的基礎(chǔ)上建造他們的基礎(chǔ)設(shè)施,這些設(shè)施由Microsoft的員工進(jìn)行維護(hù),每當(dāng)出現(xiàn)緊急情況時(shí)都會(huì)叫這些人幫忙。Microsoft的員工也許可以最終解決這些問題,但是成本很昂貴并且他們從來不能滿足MySpace的特殊要求——Microsoft并不會(huì)為你創(chuàng)建新的技術(shù),他們只會(huì)賣給你更大的數(shù)據(jù)包和調(diào)整策略,只保證設(shè)施的正常運(yùn)轉(zhuǎn),并且你必須支付,因?yàn)槟愕木W(wǎng)站正在崩潰。因?yàn)檫@些以及其他一些原因,MySpace自然會(huì)遇到難以解決的可擴(kuò)展性的挑戰(zhàn)。Snap和Google簽訂長期合作契約的情況看起來與MySpace非常相似——Snap當(dāng)然不是Google的首要商業(yè)合作伙伴;Google最近甚至已經(jīng)不關(guān)心能否擊敗Facebook了。