請考量應用程式開發的最佳做法
在本單元中,您將探索開發適用於 MySQL 的 Azure 資料庫 - 彈性伺服器的應用程式時要套用的幾項最佳做法,這有助於確保更理想的效能、復原能力和安全性。 這些最佳做法包括:
- 共置資源。
- 實作連線集區。
- 選擇正確的應用程式容器大小。
- 實作網路隔離和 SSL 連線。
- 實作重試邏輯來管理暫時性錯誤。
- 為資料庫選擇正確的計算和儲存體大小。
這些最佳做法會在使用適用於 MySQL 的 Azure 資料庫 - 彈性伺服器進行應用程式開發程序期間,在各種點上發揮作用,如下圖所示。
注意
此最佳做法清單並非整清單。 請務必參閱適用於 MySQL 的 Azure 資料庫文件,以取得實作網路、安全性、監視、效能最佳化、商務持續性和災害復原等最佳做法的詳細指南。
共置資源
將應用程式部署至 Azure 時,請確保所有的資源相依性都裝載在相同的區域中。 將資源執行個體分散在不同區域或可用性區域會造成網路延遲,可能會影響應用程式的整體效能。
實作連線集區
管理應用程式內的資料庫連線可能會大幅影響整體應用程式效能。 若要改善應用程式效能和復原能力,請考慮實作連線集區以連線到 MySQL - 彈性伺服器。 連線共用器 (如 ProxySQL) 可以減少閒置連線的數目,並重複使用現有的連線。
提示
若要將效能最佳化,請在關鍵程式碼路徑中,減少建立連線的次數及建立這些連線所耗費的時間。
選擇正確的應用程式容器大小
因為針對應用程式容器選取適當的大小非常重要,因此請確定應用程式有足夠的計算和記憶體資源可處理預期的負載。 您可以使用 JMeter 之類的工具來協助負載測試,以協助您根據結果正確調整資源大小。
實作網路隔離和 SSL 連線能力
適用於 MySQL 的 Azure 資料庫 - 彈性伺服器具有 VNet 整合 (私人存取連線方法),可提供網路安全性和隔離。 您可以使用 VNet 整合來鎖定僅對虛擬網路 (VNet) 基礎結構的伺服器存取。 私人端點可讓您透過私人網路安全地連線到彈性伺服器,以避免暴露在公用網際網路上,藉此增強此安全性。 您可以在單一 VNet 中或跨相同或不同區域中的不同 VNet 保護應用程式和資料庫資源 (並與虛擬網路對等互連順暢地連線)。
為保護傳輸中的資料,也建議您確保應用程式使用安全通訊端層 (SSL) 連線至 MySQL 彈性伺服器。
實作重試邏輯來管理暫時性錯誤
因為雲端環境更有可能遭遇網路連線中斷或服務逾時等暫時性錯誤,因此您應確保應用程式實作處理這些錯誤的邏輯,通常是在延遲之後重試要求。
理想的做法是在第一次重試之前等候五秒。 然後,每次後續重試時,逐漸增加等候時間,最多 60 秒。 在固定的重試次數之後,應用程式可以將作業認定為失敗並通知您,因此您可以進一步調查持續性錯誤。
為資料庫選擇正確的計算和儲存體大小
請務必分析工作負載,並正確調整 MySQL 彈性伺服器執行個體的大小,以便在應用程式效能與成本之間的達到可接受的平衡。
計算
您可在三個計算層的其中一個中建立 MySQL 彈性伺服器:高載、一般用途和業務關鍵性。 在開始選擇計算層時,請考量下表中的詳細資料。
計算層 | 目標工作負載 |
---|---|
可高載 | 最適用於不需要持續使用完整 CPU 的工作負載。 針對較小的 Web 應用程式和開發工作負載,請考量是否符合成本效益。 |
一般用途 | 最適合需要平衡的計算和記憶體以及可擴充 I/O 輸送量的大多數商務工作負載。 範例包括用於裝載 Web 和行動應用程式的伺服器,以及其他企業應用程式。 |
業務關鍵 | 最適合需要記憶體內效能來提供更快速交易處理和更高並行性的高效能資料庫工作負載。 範例包括用於處理即時資料的伺服器,以及高效能交易式或分析應用程式。 |
儘管您也可以在建立後調整 MySQL 彈性伺服器的大小,但您只能在一般用途或業務關鍵層之間相應增加或減少。
儲存體
就儲存體而言,您可以在接近儲存體容量限制時加以擴大。 您也可以啟用儲存體自動成長功能,以確保服務會在儲存體接近限制時自動調整儲存體。
若要及時做出關於計算和儲存體的明智決策,請持續監視主要 Azure 監視器計量,例如主機 CPU 百分比、主機記憶體百分比、儲存體百分比、IO 百分比、作用中連線等,或設定警示,讓系統在解決方案接近部署限制時通知您。
調整 IOPS 以達到最佳效能
適用於 MySQL 的 Azure 資料庫 - 彈性伺服器提供的重要增強功能是自動調整 IOPS (每秒輸入/輸出作業) 功能,可補充現有的預先佈建 IOPS 功能。 本節將探討如何使用預先佈建的 IOPS 和自動調整 IOPS 選項,根據不同的工作負載需求,將資料庫效能最佳化。
預先佈建的 IOPS
您可以使用預先佈建的 IOPS,將特定數目的 IOPS 配置給資料庫執行個體。 這項功能對於需要一致且可預測效能的工作負載而言非常重要。 您可以設定已定義的 IOPS 限制,確保資料庫每秒可以處理所設定的要求數目,從而維持穩定且可靠的效能。 您也可以彈性地調整在工作負載變更時的佈建 IOPS 數目,以同時允許延展性和精確控制資料庫效能。
自動調整 IOPS (Autoscale IOPS)
自動調整 IOPS 帶來動態效能調整,這是有效管理浮動工作負載的基本功能。 啟用此功能後,資料庫伺服器會根據即時需求自動調整 IOPS,而不需要預先佈建。 擁有此彈性特別有利於第 1 層任務關鍵性應用程式,這些應用程式可能會遇到變動的效能需求。
使用自動調整 IOPS 功能的主要優點包括:
動態調整:自動調整 IOPS 功能會根據實際工作負載需求來自動調整 IOPS 限制。 這種動態調整有助於確保您的資料庫一致地以最佳效能等級運作,而不需要手動介入。
處理工作負載尖峰:這項功能可讓您的資料庫順暢地處理突然增加的負載,確保應用程式效能在尖峰期間能保持一致。 這項功能對於維持服務可用性和使用者滿意度至關重要。
成本效益:不同於預先佈建的 IOPS,不論您實際使用量為何,都需支付指定的限制,自動調整 IOPS 可確保您只支付實際使用的 I/O 作業費用。 這可以帶來大幅節省成本,特別是對於具有可變 I/O 需求的資料庫。
簡化管理:自動調整 IOPS 可減少手動調整和容量規劃的需求來釋出系統管理資源,讓您的小組專注於更具策略性的計劃,而不必費心於例行維護。