為您的 MySQL 應用程式選擇適當的裝載選項
在開發新的應用程式或將現有應用程式現代化時,選擇適合的裝載選項是將效能、安全性和成本效益最佳化的關鍵。 在過去,應用程式裝載於 Internet Information Services (IIS)、Apache,或實體或虛擬化內部部署硬體上的 NGINX 等 Web 伺服器上。 雖然此選項提供基礎結構小組完全控制環境的優點,但在管理額外負荷、預付成本、可用性、可擴縮性、復原能力、安全性與合規性方面需要額外耗費心力。
當您將應用程式部署至雲端時,就不需要管理這些區塊。 在雲端裝載應用程式可降低整體設定成本,透過商務持續性和災害復原 (BCDR) 選項提供增強的可用性和可靠性,可讓您視需要調整應用程式資源,同時提供進階安全性。
Microsoft Azure 提供各種不同的應用程式裝載選項,客製化滿足您應用程式的架構需求和使用案例。
這些應用程式裝載選項大多數能順暢整合適用於 MySQL 的 Azure 資料庫 - 彈性伺服器,這項服務的可擴縮性、效能和管理性使其特別適合後端資料庫。 我們會在本單元探索一些常見的 MySQL 應用程式架構和 Azure 服務,以協助您判斷最適合您應用程式工作負載的裝載選項。
Azure App Service 上的 Web 應用程式
MySQL 是開發 Web 和行動應用程式最熱門的資料庫之一,因為其兼具可攜性、速度、可擴縮性和可靠性,且成本低廉。 透過在後端使用「適用於 MySQL 的 Azure 資料庫 - 彈性伺服器」,您可以更輕鬆地建置輕量型或任務關鍵性 LAMP (Linux-Apache-MySQL-PHP) 堆疊網際網路規模應用程式。 您也可以使用 WordPress、Drupal 或 Joomla 等熱門 CMS、Moodle 等學習管理系統,以及 Magento 等電子商務平台進行開發,這些皆與「適用於 MySQL 的 Azure 資料庫 - 彈性伺服器」相容。
開發人員可以使用 Azure App Service,在 Windows 或 Linux 環境中部署這些 MySQL 支援的 Web 和行動應用程式,Azure App Service 是裝載 Web 應用程式、REST API 和行動後端的 HTTP 型平台即服務 (PaaS) 解決方案。 使用 Azure App Service,您可以降低管理額外負荷、以最愛的語言進行開發、自動化應用程式部署、快速縮減和擴增,甚至是將應用程式「Docker 化」,以裝載自訂 Windows 或 Linux Docker 容器。
Azure Kubernetes Service 或 Azure 容器應用程式上的容器化應用程式 (微服務架構)
近來,具有微服務架構的應用程式由於其效率、復原能力、可擴縮性及部署的便利性而越來越受歡迎。 不同於傳統的整合型應用程式,每個微服務 (或容器) 都會獨立運作,而且可以在不重新部署整個應用程式的情況下進行更新。
在 Azure 上,您可以將這些微服務部署至 Azure Kubernetes Service (AKS),這是完全受控 Kubernetes 服務,可協助您快速且輕鬆地定義、部署、偵錯和升級最複雜的容器化應用程式。
除了 AKS 之外,Azure 容器應用程式 (ACA) 還提供無伺服器容器裝載服務,非常適合從微服務建置的新式應用程式。 ACA 可簡化容器的部署和縮放,無需管理虛擬機器或 Kubernetes 叢集等基礎結構。 該平台整合了適用於事件驅動架構的 Azure Logic Apps 和 Azure Functions,支援快速縮放和管理應用程式元件。 ACA 特別適用於需要敏捷式作業和快速迭代的應用程式,並根據 HTTP 流量或事件驅動觸發程式提供動態縮放選項。 此服務同時支援 Windows 和 Linux 容器,可讓您順暢部署在各種程式設計環境中開發的微服務。
透過 AKS 將 ACA 與傳統 Kubernetes 部署結合使用,您可以更靈活地協調、縮放及管理其容器化應用程式。 這種方法不僅能使作業效率最大化,還能提升快速回應市場變化和客戶需求的能力。
使用 Azure Functions 和 Azure Logic Apps 的事件驅動無伺服器應用程式
無伺服器應用程式會使用事件驅動模型加速開發,觸發程序會自動執行程式碼以回應事件和繫結,以順暢地整合其他服務。 您只需要為執行程式碼所使用的時間和資源支付費用。
Azure Functions 和 Azure Logic Apps 是 Azure 上的無伺服器解決方案,可協助您建置系統以回應一系列的重要事件。
- Azure Functions Azure Functions 是一個功能豐富的無伺服器計算服務,可執行程式碼以回應各種觸發程式,例如 HTTP 要求、定時器事件 (cron 作業),或 Azure 服務事件 (例如來自 Azure 儲存體佇列或服務匯流排的訊息)。 這種彈性可讓您建置能即時回應變更的應用程式,且不需要管理伺服器基礎結構。 Azure Functions 支援廣泛的程式設計語言,包括 C#、Java、JavaScript、Python 和 PowerShell,使其可供不同的開發人員群體存取。 這些函數也可以與其他 Azure 資源互動。
- Azure Logic Apps 提供無伺服器設計體驗,可協助自動化及協調應用程式和跨企業之間的工作、程序和工作流程。 透過 Azure 入口網站或 Visual Studio 中的視覺化設計工具,您可以設定工作流程,只需撰寫少量程式碼便可將複雜的商務案例自動化。 這些工作流程會協調一組函數或稱為「動作」的步驟,其可執行以完成複雜的工作,例如處理批次訂單或彙總結果。
Azure 也提供 Azure 事件方格、Azure 服務匯流排和 Azure 事件中樞這類服務,用以轉送和管理事件和訊息,從而在事件驅動工作流程中觸發無伺服器應用程式。
Azure VM 上的整合型舊版應用程式
有些組織可能會有一些具有整合型架構的舊版應用程式,這些架構與業務流程緊密結合,且難以現代化。 您可以使用隨即轉移模型,將這些應用程式移轉至 Azure,並將其裝載於 Azure 虛擬機器上,這是基礎結構即服務 (IaaS) 服務。
雖然 Azure 的優點包括能夠啟用備份和還原服務、磁碟加密,以及不需要預付成本的縮放選項,但您仍然需要投入手動工作,以在 Azure VM 上部署、維護及管理應用程式。