
今天,我們很高興地宣布 Cloudflare 等候室上線!該服務將首先通過名為 Project Fair Shot 的新計劃提供給指定客戶,旨在解決因 COVID-19 疫苗接種需求爆增而造成預約登記網站癱瘓的問題。該服務不久后還將在 Business 和 Enterprise 計劃中全面推出。
等一下……等候室怎么會令人期待?
我們大多都很熟悉等候室這個概念,但一想到要待在等候室里,恐怕沒有多少人會感到興奮。通常,我們第一次體驗等候室是在醫生的辦公室里——是的,您預約了,但有時醫生會遲到(或其中一位患者遲到了)。鑒于醫生一次只能給一個病人看診……于是便有了等候室,這是一種讓病人排隊就診的機制。
盡管服務器可以處理的并發請求比醫生多,但它們也會不堪重負。在以前沒有 COVID 的日子里,如果您嘗試過購買流行音樂會或活動的門票,那么您很可能已經體驗過在線等候室。它限制傳入應用程序的請求數量,并將這些請求放入一個虛擬隊列中。一旦進入應用程序的用戶數量減少,就可以讓新的用戶進入,但數量限制在事先定義好的應用程序可以處理的閾值內。這樣可以防止為應用程序提供支持的服務器被過多的請求淹沒,同時還可以確保公平(從用戶角度看)——系統過載時嘗試訪問資源的用戶不會被有失公平地踢出隊列,被迫重新連接,只能碰運氣看能不能排上隊。
為什么現在要推出這項服務?
既然我們當中沒有多少人近期會去欣賞現場音樂會,為什么 Cloudflare 現在要推出這項服務?
好吧,也許我們不打算去聽音樂會,但是 COVID-19 的連帶影響已經催生了對等候室的巨大需求。首先,鑒于社交距離的要求以及許多營業場所停業和政府機構關門,客戶和市民已經紛紛轉入在線渠道,這讓企業和政府基礎結構承受了更大的壓力。
其次,疫情及其連帶后果意味著,一年前人們不需要的資源如今受到了世界各地許多人的依賴。具體而言,這些資源通常是與衛生或政府相關的資源,例如失業保險網站,F有的在線基礎結構已準備好應對峰值負載,但并沒有預見到 COVID-19 的影響。與疫苗相關的網站也出現了類似的情形。
需要設立等候室的組織曾經寥寥無幾。大多數在線業務的本質決定了其涉及的用戶負載通常更為一致,而不是大量人員一次性涌入。這些組織構建了專門的等候室,并深度集成到購票等應用程序中。利用 Cloudflare 的等候室,無需對應用程序代碼進行任何更改,并且無需編寫任何代碼即可在幾分鐘內為任何網站建立一個等候室。
無論您是工程架構師還是業務運營分析師,設置等候室都很簡單。我們可以快速輕松地做到這一點,確保您的應用程序可靠運行并免受意外流量激增的影響。其他我們認為重要的功能包括等候室自動啟用以及人員動態流出。換句話說,當超過閾值時,等候室應自動開啟;當用戶完成應用程序中的任務時,應動態放掉一定數量的用戶,并將已經在隊列中的新用戶放進來。這種方案的效果非常好。最后,我們看到 COVID-19 對用戶和在線業務都造成了重大影響,尤其是衛生和政府部門。我們希望提供新的方式來確保這些應用程序繼續正常運行,使所有用戶都能獲得所需的照顧,而不是一用瀏覽器就出錯。
Cloudflare 等候室的工作原理是什么?
我們基于邊緣網絡和 Workers 產品構建了等候室。我們充分利用 Workers 和全新的 Durable Objects 產品,得以消除客戶編碼需求,并提供可以“正常工作”的開箱即用的無縫產品。除此之外,我們發揮了 Workers 產品的規模和性能優勢,確保我們的延遲開銷極低,并使最終用戶能夠看到盡可能準確的預估時間,不會讓任何用戶增加不必要的排隊時間。然而,在分散的網絡中建立集中式系統絕非易事。當來自世界各地的請求進入應用程序時,我們需要獲得視野廣闊的精準視圖,能夠看到該負載傳入和傳出應用程序時的實際情況。
通過 Cloudflare 的請求(不設等候室)
通過 Cloudflare 的請求(不設等候室)
這些請求雖然速度很快,但仍要一段時間才能穿越地球。這樣就產生了一個獨特的邊緣案例。如果一個網站來自北美洲和歐洲的訪問量屬于正常合理范圍,但來自南美洲的訪問量突然急劇增加,那么,我們怎么知道何時應該繼續放用戶進入應用程序、何時應該啟用等候室以保護源服務器避免過載呢?
得益于一些智能化工程技術和我們的 Workers 產品,我們創建了一個系統,幾乎可以立即與某個應用程序的全球需求保持同步,這使得我們獲得了必要的洞見,知道何時應該讓用戶進入等候室排隊、何時不應這樣做。我們充分利用全球 Anycast 網絡和 200 多個數據中心,消除了任何單點故障,既可以保護客戶的基礎結構,也讓最終用戶能夠獲得極佳體驗——即使他們在高負荷情況下需要等待少量時間才能進入應用程序。
通過 Cloudflare 的請求(設有等候室)
通過 Cloudflare 的請求(設有等候室)
如何設置等候室
設置等候室無比簡單,而且非?旖荩≡谧詈唵蔚那闆r下,用戶只需要填寫五個字段:1) 等候室的名稱,2) 主機名(已經在其配置的區域中預先填充了主機名),3) 應用程序在任何既定時間里可擁有的活躍用戶總數;4) 每分鐘允許進入該應用程序的新用戶數;5) 任何既定用戶的會話持續時間。無需編碼或對應用程序進行任何更改。
對于不希望添加額外品牌信息的客戶,我們提供了使用默認等候室模板的選項。這簡化了啟動和運行等候室的過程。
大功告成!按一下保存,等候室就可以使用了!
對于有時間并且技術能力強的客戶而言,他們也需要經歷相同的過程,但我們為這些用戶提供了完全的定制功能,以便他們可以為等候室添加品牌元素,確保該等候室與其整體產品的外觀和風格相匹配。
最后,管理多個不同的等候室也十分輕松。查閱我們的“管理等候室”表格,哪些房間排隊人多、哪些房間沒人排隊和/或已禁用,全都一目了然。
我們非常高興能將功能強大的等候室交到客戶手中,以確保他們繼續專注于自身的業務和客戶。請留意我們即將發布的另一篇博客文章,其中介紹了 Enterprise 版等候室產品的重大更新!(www.cloudflare.com)。