當機一秒,損失多少?三步驟搞懂Facebook不想讓你知道的兩個小秘密

知道這個小秘密對你有什麼好處 ? 很多。因為這是只有經營世界最大網站的專業人員才會知道的秘密。如果你是從事任何跟網站有關的工作,可以沒事把這個小常識拿出來唬唬老闆,也可以在履歷表記上一筆,面試的時候也用得上——後面我會告訴你要怎麼記這一筆。


即使你只是個普通的工程師,這個小常識也有幫助。如果你的工作都跟這些完全無關,至少也可以滿足好奇,知道網站不想讓你知道的兩個小秘密。




為了讓過程不至專業而生澀,我們會用星巴克來舉個人人都懂的例子。


也許你還記得,去年(2019)七月臉書曾經大當機22小時這件事。每一個這種大型網站,都會有兩個永遠不會告訴外人的秘密數字。這是一套丈量網站健康的機制,也是商業機密,就像膽固醇和血壓一樣。這兩個數字,一個是「網站可用性」 (Site Availability),另一個是「當機一秒對公司造成的金錢損失」


它們往往被用作紅利的依據,也可以作為高層人士更換的理由。有些微小的時事局外人不會去注意,那就是每經過一次大當機,負責網站營運的高階主管總會有一些變動。管理不善的代價最後總要換算成金錢。這些獎懲的數據,都來自下面要討論的這兩個數字。


這篇文章最艱澀的部分就到此為止。後面讓我們走進星巴克喝杯咖啡,順便聊聊這兩個數字。

第一個數字:「網站可用性」(Availability)

這個數字是個百分比。一個永遠不當機的網站可用性就是 100%,最簡單的做法就是用時間計算。


假設有一家星巴克每天早上七點到晚上七點營業12小時,每周總營運時數是 84 小時。如果它每周都能順利營運 84小時,「可用性」(Availability)就是100%。


第一步:以時間計算


有一個星期六隔壁因為施工,不小心挖斷了星巴克的電纜線,斷電了6個小時才恢復營業,那個禮拜它的可用性就降為92.85%,因為他們那個禮拜只營業了78小時。78/84 =92.85% 。這是最簡單直接的算術問題——所依據的完全是以時間來計算,就像下面這張圖表一樣。



網站唯一不同的,是他們以「秒」來計算,並以一季3個月作為分母。此外網站24小時不打烊,所以每一秒鐘都要列入統計。到這裡為止,你已經知道了半個臉書不想讓你知道的秘密——以臉書22小時的當機為例,那一季的可用性是98.98%。一般網站追求的目標是 99.9%。


可是事情沒有那麼簡單。


這種算法有很大的問題,因為你把時間當作唯一的衡量,而沒有考慮「時段」。我們都知道尖峰時段關閉高速公路一小時,跟半夜關閉一小時,意義完全不同。要考慮時段,就必須以「流量」來計算。


第二步:以流量計算


回到星巴克的例子,最好的流量計算法,就是用每一小時賣出幾杯咖啡計算。因為每天流量會有不同,而電纜挖斷是在周六,我們就得用周六的資料來計算。要計算流量就必須要有歷史紀錄,假設這一家星巴克保存過去所有的流量紀錄,我們可以採取最近三個月周六的平均值做參考(如同下表)。



從這裡我們可以清楚看出,斷電六個小時的影響跟「時段」有絕大的關係。有了這一步資訊,我們也知道上一步的算法實在太基礎。讀到這裡,你也應該了解,收集資料是多麼重要。現在我們就藉著這份資料修正上面的結果。


假設那次斷電是從早上8點到下午2點,也是最尖峰時段,那一天的流量就如同下圖:



我們可以依據過去的平均值大概猜測出,那次6小時的斷電讓這家店少賣了1,100杯咖啡;根據同樣的資料,我們也得知每個禮拜平均賣出12,000 杯咖啡。所以用流量計算後,可用性變成 90.83%。再回頭看看第一步,以時間計算出來的數字是92.85%,哪一個比較接近事實就非常清楚。


但是對於網站,問題還是沒有解決。


流量代表的只是「量」,無法反映出「質」。網站的流量不是只有一種,而且大部份的當機都只有部分功能受損,而不是全面的。所以我們還得再多走一步,以區分受損的功能,才能了解「質」的損失。最後的目的是要了解當機對於營收的影響。最終,一切都要換算成金錢。


第三步:以功能計算


在網路世界,交通流量很複雜,因為很多人到網站瀏覽一下就走了,什麼事都沒有做,也有人進來是有特定目的。所以我們要分別收集各種不同功能的流量,這一步的目的就是「不把所有的交通視為等量」。


以臉書的例子來說,他們幾乎所有收入都是靠廣告點擊。如果廣告點擊功能當機,收入就停擺。如果只是按讚功能當機,對他們來說也許是不痛不癢。廣告點擊量少了一千萬次,與按讚量少了一千萬次,絕對不能等量計算。所以這兩種功能的流量一定要分開計算。


臉書的收入幾乎都來自廣告。圖片來源:unsplash


臉書可以在前者加重計分,以反映出部分功能當機的影響。當然一個大的網站,可能具備有幾十種不同的功能。每一種功能,間接或直接對於營收都會有影響,唯一的不同就是比重。 這一步技術性比較高,我們就不多談。重點是網站產能工程師必須利用長期的數據,去分析每一種功能的比重 。


比方按讚的功能對於營收的影響是1,那麼臉部辨識功能就是 2,廣告點擊照比重也許就是 15 ……等等,也就是廣告點擊流量每受損1次,就等同於按讚流量受損15次。我們可以把所有的功能都照同一個基礎換算過來,就好像把在場所有人口袋裡的錢,全部折換成新台幣,然後再來計算每一個人到底有多少錢。


再回頭借用星巴克的例子,如果只有卡布奇諾機器當機,普通咖啡不受影響,我們就應該以各種不同咖啡的歷史銷售量,配合不同的單價比例作為依據來衡量損失。如果那一天少買了800 杯卡布奇諾,而它的單價是一般咖啡的兩倍,那我們實際的損失是1, 600杯咖啡而不是 800。


上面的步驟越演化就越接近事實。現在綜合這三步演化過程如下: 

以時間計算 -> 以流量計算 -> 以功能計算,而最後的目的都是換算成金錢。

第二個數字:當機每秒營收損失

走完了上面三步,第二個數字就是免費的。


萬流歸宗,最後都扯到錢這個字。最高層看到的不是99.9%或99.99%,而是營收。如果前面幾個步驟都做到了,最後這個數字就非常容易。那就是用上面調整好的比重依照總營收額,換算出當機平均每秒金錢損失。這裡要取平均值,而且要把尖峰與離峰都平均進去,目的是為了簡化以方便計算與比較。比方尖峰時段每當機一秒損失是 5 千美元,離峰是 2 千元。那你公布的數字應該是3千 5。這就像主計處公布所有的數據都是採取平均值一樣。當然平均值的算法也有一些學問,在這裡就不多談。


也許你已經注意到一件有趣的事,那就是我們在第一步以時間計算開始,最後換算成金錢的時後,又回歸到以時間計算。當然這個數字會隨著公司的營運而有所改變,所以應該每年調整。當然這個白紙黑字的數字,也可以用來更換領導無方的高階主管。


所以我相信臉書去年那次大當機,大概推算一下可能有上億美元的損失,而且這筆帳一定會算在高階主管的頭上。這一切都是為了知道如何改善,不是為了懲罰。


套句商業上最常說的一句話 :「如果不知道數字,你就不可能改善。」

把這個小常識套在履歷表上

那麼履歷上應該怎麼寫? 最重要的關鍵字是「Availability」,你可以大方地把它塞進去。下面只是隨便舉兩個含糊又美麗的例子。如果真的被問到了,就把上面進化的三個步驟說出來 。

Good understanding of the basics of site availability and its impact to business revenue.

Understanding of site operations with its relationship to business availability.

你可以應用一點技巧,把這個小常識塞進自己的履歷,甚至可以當作誘餌,引誘面試官問你。這種招數很有效——說個模糊的概念就可以大大加分。不用緊張,他不會知道答案,所以沒有人敢追問。即使你申請的工作跟網站營運沒有直接關係,這個小常識也會對你有幫助,因為它反應出你對網站營運額外的了解,與深入的分析能力。

YOTTA 你最專業的學習夥伴,提供優質內容與有趣觀點,擴大豐富你的視野。

訂閱鱸魚的專欄,不錯過新文章通知。



封面圖片來源:unsplash