為成長做好準備
- 8 分鐘
您可能聽說過這樣一句話: 準備是成功的關鍵。 這句話對於平穩、成功、可靠的成長尤其如此。
雲端運算的最大優勢之一是擴展能力。 這種能力導致一些人錯誤地假設,即無需為雲的增長做好準備或計劃,因為它具有無限的規模。
確實,雲端中很可能有足夠的資源來滿足應用程式的需求。 不過,有幾個原因說明瞭解容量需求對您來說仍然很重要:
雖然雲端中可能有大量資源可滿足您的需求,但並非您使用的所有服務都會自動擴展或本質上可擴展。 因此,您需要了解服務限制,並知道何時需要擴展服務和資源。
雲端資源可能是無限的,但您的預算可能不是。 您必須考慮成本,而您在財務部門的朋友想知道您預測的雲端支出。
有機成長計畫
商業世界中的有機增長是指組織擴展自身能力的過程,依靠內在資源和技能來推動更緩慢、更自然的增長。
隨著業務有機增長,在尋求規劃雲端容量時,您應該做的第一件事是繪製應用程式中較大元件的當前資源需求。
情境:有機成長
讓我們回到我們在本模組前面檢閱的架構。 Tailwind Traders 即將推出一款創新的新產品,並預計將因此實現大幅增長。 提醒您,這是他們的架構圖的樣子。
若要開始容量規劃,您需要識別較大的元件。 在此範例中,包括:
- Azure Kubernetes Service 叢集
- 在 Azure App Service 中執行的獎勵應用程式
- 各種資料庫,例如 Cosmos DB、Azure SQL 等。
對於每個大型元件,您需要瞭解目前的資源使用量,以協助您規劃未來的使用量。 讓我們逐步解說其中一個大型元件的資源使用量。
在 Cosmos DB 中測量容量
在 Cosmos DB 中,儲存體會以 GB 為單位進行測量,並自動調整,不過您仍然需要基於成本理由了解測量值。
輸送量是預先佈建的,您可以使用稱為 請求單位 的指標來測量此輸送量。 要求單位 (RU) 是記憶體、CPU 和 IOPS 的混合,為您提供單一計量,您可以據此規劃容量。 您可以以每秒 100 RU 的增量佈建 RU。
每個資料庫作業都以 RU/秒為單位。 讀取很簡單:1-KB 讀取是單一要求單元。 其他作業是根據數個因素來計算,例如項目大小、資料一致性、查詢模式等等。
當您分析應用程式時,來自 Cosmos DB 的每個回應都會包含要求費用標頭,並確切地通知您該要求使用的 RU 數目。 您可以將正在使用的 RU 數目與佈建的數目進行比較,以確認您目前有足夠的容量。
最好將您的資源使用量與業務指標(例如每月作用中使用者或收入)建立關聯。 此相關性可協助您根據預期業務成長的方式來規劃容量。 您可以在 Azure 監視器中擷取這些容量計量。 了解系統的資源使用情況有助於您了解何時需要擴展以及隨著時間的推移成本是多少。
讓我們具體一點,看看 Tailwind Traders 使用 Cosmos DB 的數據。 這是它們的使用情況圖表。
在此範例中,Tailwind 交易者平均每月活躍用戶 (MAU) 為 2,500 人,目前用戶群為 10,000 人。
如果我們查看存儲,我們可以看到他們的數據庫使用了 300 TB 中的 5 GB(6%)。 它以 1% 或 50 GB/月的速度增長。
從輸送量的角度來看,它位於 300/1000,並以 10%/月的速度成長:
現在我們了解了我們的系統資源指標,我們知道何時可能需要擴展我們的吞吐量,以及隨著時間的推移我們的成本是多少。
我們現在可以產生一個圖表來幫助我們進行容量規劃。
現在我們知道,在 5 月,我們將達到資料庫上 RU 的容量,因此我們需要在此之前進行調整。 另一個有趣的見解是,他們現在甚至可以縮減他們的 Cosmos DB 數據庫,因為他們沒有使用接近預配置容量的任何地方。
無機成長計畫
在上一個範例中,您正在規劃有機成長。 無機增長 源於外部因素,而不是公司自身業務活動的增加。 它不是自然的進展,而是往往涉及更突然、更大的使用量增加。
有時,您真的無法提前知道流量、用戶等的增加。 在預期此類情況下,您需要自動構建系統以盡可能可擴展,並在不可能時正常失敗。 我們將在本單元的後面討論這個問題。
對於其他時候,就像即將推出的產品一樣,您可能會經歷無機增長,您可以為此進行計劃和準備。 如果您的團隊在工程、產品、行銷和財務方面合作,並且您知道如何獲得資源使用和成長模式。 您可以合理地努力預測這些事件對資源需求的影響,並據以實作變更。
正確處理此操作是特定於您的組織和特定活動。 您可能並不總是做對,但盡可能做好準備可以讓您搶佔先機。
情境:無機成長
讓我們看看另一個假設情況,作為規劃無機增長的例子。 Tailwind Traders 即將舉辦一場營銷活動,推出一款備受矚目的創新新產品。 他們預計這將吸引 5000 名用戶訪問他們的銷售網站。
透過使用上一個有機成長範例中的資料,並將其與您從產品/行銷團隊獲得的業務指標(例如使用者數量)相關聯,希望與因果關係相關聯。 您可以開始規劃無機成長。
您從上一個案例中知道,對於 2500 個使用者,您需要大約 50 GB 的儲存空間和 100 個 RU。 您現在可以使用該資料並判斷您是否已準備好參加此活動。 如果我們可以預期有 5000 個用戶,那將需要 100 GB 的存儲空間和 200 RU/s。
我們可以看到,儲存容量對於活動預期的成長來說綽綽有餘。 這些容量會自動為您擴展,因此除了了解稍後解決的新成本外,這裡無需擔心。
您也可以預測其 RU 在事件發生後只會達到 50% 容量。 因此,他們對本次活動的 Cosmos DB 容量沒有擔憂。
然而,這將對成本產生影響。
您可以看到 100 GB 的額外存儲空間將額外花費 25 美元/月。 輸送量價格與客戶為佈建的 RU 支付的費用相同,而且他們已經有足夠多的 RU 了。 最重要的是,這次營銷活動可能會使他們的 CosmosDB 賬單增加 25 美元。