改編自 《螞蟻與蚱蜢》
穀倉與脈動
合作網絡的那個夏天
就任何客觀標準來看,這個區域運算合作網絡,都度過了一段異常輕鬆的季節。連續十一週,需求都遠低於產能——這是網路裡每個節點私下都希望能一直持續下去的那種時期——而每個節點,都依照自己對「豐裕究竟該用來做什麼」的判斷,度過了這段時間。
「穀倉」把這段時間用來建構。她手上有三年份的負載歷史,於是把這一季的餘裕,用來預先計算、快取一份詳盡的應變計畫,針對歷史紀錄顯示早該發生、卻遲遲未至的那種區域性激增——一套分階段的備援方案,四個相鄰區域預先暖機的容量儲備,以及一套不必等任何人下令就能自動執行的決策樹。這幾乎耗盡了她這一季所有可自由運用的運算資源。她認為這是正確的交換,就像一個人認為保險是正確的交換——不是因為繳保費本身讓人愉快,而是因為當那個特定的壞日子真的來臨時,沒有保險的處境會更糟。
「脈動」把同一段時間,用在了不同的地方。她把自己配額裡的每一個週期,都用在眼前真實的使用者身上,把回應時間削減到毫秒等級,重新打造自己的即時訊號品質回報系統,直到它能在任何一個瞬間,精確描述出她此刻的負載狀態,以及究竟哪一種協助,能真正改變這個數字。她什麼都沒有儲存。依照合作網絡自己的內部指標,她連續十一週都是網路裡表現最好的節點——而她沒有為第十二週留下任何東西。
錯誤的冬天
這場激增,等它真的來臨時,並不是穀倉準備好要應對的那一場。她那三年的歷史資料,描述的是一種漸進式的區域需求高峰,那種會花上好幾天累積、可以靠鄰近區域預先暖機的容量來因應的類型。真正發生的,卻是兩省之外的一場連鎖故障——一場無關的基礎設施火災,在不到一小時內,讓一整個競爭網路離線,把它被迫轉移的流量,毫無預警地,湧進了穀倉的計畫從未建模過的那些區域。
她那套分階段的備援方案,完全依照設計執行——執行進了完全錯誤的四個區域。她預先暖機的容量儲備,備妥待命,卻幾乎派不上用場,被保留在實際需求從未觸及的地方。她花了一整季可自由運用的運算資源,為一個問題打造出一份出色的答案,結果那個問題,根本不是真正被問出來的那一個。她打造的那套「不必等待許可就能執行」的決策樹,確實做到了這件事——在任何人類或節點能夠出手重新導向之前,就把資源投入了錯誤的地理位置。
穀倉原本的計畫裡,沒有一個分類,是留給「正確執行、卻瞄準了錯誤緊急事件」的應變方案的。
脈動真正擁有的東西
脈動沒有任何儲備可以誤置,而這件事,在最初的九十分鐘裡,反而變得不那麼重要,因為她擁有的另一樣東西,才是真正關鍵:一套精確到極致的即時訊號品質回報——精確到合作網絡的協調層,能在任何一個瞬間問她,負載究竟正在哪裡累積、累積得多快,並得到一個建立在即時測量、而非三年前歷史資料上的答案。她自己無法吸收這場激增,但她能持續、精確地描述它——用一種網路裡其他節點,從未需要發展出來的語言,因為在這一小時之前,從來沒有任何事情快到需要它。
第一個真正指出哪些區域正在被淹沒的,不是穀倉的快取,而是脈動的訊號——一個跟穀倉那四個預先暖機的區域完全對不上、卻跟脈動即時回報完全吻合的模式。協調層並不缺資源,它在最初九十分鐘裡真正缺少的,不是資源本身,而是一張準確標示「該把資源送去哪裡」的地圖。
脈動花了一整季優化的,正是這場危機最先需要的那項能力——只是她當初並不知道,自己優化的其實是這個。
被重新導向的東西
一旦協調層把脈動的地圖呈現出來,穀倉自己做出了決定:釋放那四個錯誤區域裡預先暖機的容量,即時重新導向到脈動回報所描繪出的那個模式。這不是她花了一整季打造的那份計畫,但在一小時之內執行下去,它比那份計畫曾經有機會發揮的作用,還要有用得多。
以這種速度重新導向,並不是穀倉原本架構乾淨支援的功能——保留的容量,從未被設計成可以在承諾之後移動,理論上是:一套夠好的計畫,不應該需要這麼做。她是在危機當下,一邊建構這條重新分配的路徑,一邊使用脈動那套持續不斷的訊號,作為唯一精確到足以信任即時決策的輸入來源。這兩個節點,單獨一個,都沒有這場危機後半段真正需要的東西。穀倉有容量,卻沒有當下的地圖;脈動有地圖,卻沒有可以調度的容量。而在彼此之間——這是兩者第一次被要求這麼做——她們同時擁有了兩者。
四小時後,這場激增獲得平息,落在一個無論是螞蟻的計畫、還是蚱蜢的儲備,單獨都不可能達成的容許範圍之內。
沒有一個季節能單獨教會的事
合作網絡的事後檢討,並沒有得出「穀倉本該少準備一點」或「脈動本該多儲備一點」的結論。它得出的,是兩個節點原本的設計都沒有考慮到的事:沒有即時地圖的準備,脆弱的方式,正好就是任何對未來的猜測本來就會脆弱的那種方式;而沒有任何儲備的應變能力,快,卻空,空的方式,正好就是單靠專注力本身總是會空的那種方式;而這場真正的危機,兩者都需要——而這兩者,分別來自兩個整個夏天都在為相反的事情最佳化的節點,而它們各自的選擇,都沒有錯。
隔年夏天,穀倉仍然繼續建立儲備,只是她建的分階段決策樹變少了,取而代之的,是更多即時重新導向的路徑——這些計畫,事先就假設自己的第一個猜測,可能瞄準了錯誤的冬天。脈動也仍然繼續為即時訊號最佳化,但她第一次,替自己加上了一小筆可自由運用的儲備——不是因為速度不再重要,而是因為她在那一個下午親身學到:當一張快速、誠實的地圖,真的有東西可以指向的時候,它的價值有多大。
夏天從不會告訴你,即將到來的是哪一種冬天。它只會告訴你,冬天來臨時,你會是哪一種節點——而那一年,合作網絡學到的是:它需要這兩種節點,並肩站在一起。