將使用 MySQL 的雲端原生 App 部署到 Oracle Cloud Infrastructure

您可以使用 Oracle Container Engine for Kubernetes (OKE)、Oracle Cloud Infrastructure RegistryOracle MySQL Database Service (MDS) 來開發及部署雲端原生應用系統,以及將傳統應用系統移轉至雲端。

OKE 是一個完全受管理、可擴展且高可用性的服務,可讓您用來將容器化應用系統部署至雲端。當您的開發團隊想要可靠地建置、部署及管理雲端原生應用程式時,請使用 OKE。

您可以使用 Oracle Cloud Infrastructure Registry 作為專用 Docker 登錄,以便使用 Docker V2 API 和標準 Docker 命令行介面 (CLI),從登錄匯入及提取 Docker 映像檔。

MDS 是完全託管的 Oracle Cloud Infrastructure 原生服務,可自動化備份和復原等作業,以及資料庫和作業系統打補丁。

Oracle Cloud Infrastructure Compute 上使用 MDS 的優點如下:

  • 快速部署 MySQL。
  • 使用完全受管理 OCI 服務的優點。
  • 著重於開發,而非基礎架構管理。
  • 為現代化 App 使用工具和最新功能。
  • 根據您的需求調整規模。
  • 避免影子 IT。

架構

此參照架構包含以 MDS 和 OKE 叢集建立的高可用性資料庫層。

下圖說明此參考架構。

architecture-kubernetes-mysql-oci.png 的描述如下
architecture-kubernetes-mysql-oci.png 圖解的描述

architecture-kubernetes-mysql-oci-oracle.zip

在「作用中網域」子網路中部署 MDS 時,MDS 將部署 MySQL 執行處理叢集,每個「容錯域」中都有一個執行處理可提供備援功能。一個執行處理是主要執行處理,而另一個兩個執行處理是第二個執行處理。主要包括能夠對資料庫進行讀取和寫入的單一端點,第二個端點則從主要端點接收複製的資料。不允許直接存取第二個項目。

如果失敗或手動切換,其中一個第二代會成為新的主要端點,端點會重新導向至該主要端點。這表示端點 IP 位址絕不會變更,不需要更新應用程式。OCI 管理資料庫的高可用性層面。

此架構包含 OKE 叢集,可與 Oracle Cloud Infrastructure Registry 搭配運作,以因應已開發及可部署的雲端原生 App。

架構具有下列元件:

  • 防禦主機

    堡壘主機是運算執行處理,可作為與雲端外部拓樸安全、受控制的進入點。堡壘主機通常是在分散式區域 (DMZ) 中佈建。它可將機密資源配置在無法直接從雲端存取的專用網路中,藉此保護機密資源。拓樸具有單一的已知進入點,您可以定期監督和稽核。因此,您可以避免讓拓樸的機密元件暴露,而不用存取拓樸。

  • Container Engine for Kubernetes

    Oracle Cloud Infrastructure Container Engine for Kubernetes 是一項完全託管、可擴展且高可用性的服務,可用來將容器化應用系統部署至雲端。您可以指定應用系統所需的運算資源,而 Container Engine for Kubernetes 可在現有租用戶的 Oracle Cloud Infrastructure 中佈建這些資源。Container Engine for Kubernetes 使用 Kubernetes 可將整個主機叢集的容器化應用系統部署、調整及管理自動化。

  • Oracle MySQL 資料庫服務

    Oracle MySQL Database Service 是一個完全託管的 Oracle Cloud Infrastructure (OCI) 資料庫服務,可讓開發者快速開發及部署安全、雲端原生應用系統。針對 OCI 提供最佳化,Oracle MySQL Database Service 是由 OCI 與 MySQL 工程團隊建置、管理和支援 100% 的系統。

    Oracle MySQL Database Service 整合式高效能分析引擎 (HeatWave),可直接對作業 MySQL 資料庫執行精密的即時分析。

  • 登錄

    Oracle Cloud Infrastructure Registry 是一個 Oracle 管理的登錄,可讓您簡化開發到生產的工作流程。登錄可讓您輕鬆儲存、共用及管理開發使用者自建物件,例如 Docker 映像檔。Oracle Cloud Infrastructure 的高可用性擴充架構可確保您可以可靠地部署及管理應用系統。

  • 區域

    Oracle Cloud Infrastructure 區域是一個包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,而且遠距離也能分隔它們 (跨國家或甚至大陸)。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可客製化的軟體定義網路。與傳統資料中心網路一樣,VCN 可讓您完整控制您的網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後變更這些區塊。您可以將 VCN 區段成子網路,可以將範圍擴展到區域或可用性網域。每個子網路都包含一個連續的位址範圍,這些位址不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用或專用。

  • 可用性網域

    可用性網域是區域內的獨立資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,以提供容錯能力。可用性網域並不共用基礎架構,例如電源或冷卻系統,或內部可用性網域網路。因此,一個可用性網域發生失敗並不會影響區域中的其他可用性網域。

  • 容錯域

    容錯網域是可用性網域內的硬體和基礎架構群組。每個可用性網域都具備三個具有獨立電源和硬體的容錯域。當您分散多個容錯域的資源時,您的應用系統可以忍受容錯域內的實體伺服器故障、系統維護及電源故障。

  • 動態路由閘道 (DRG)

    DRG 是一個虛擬路由器,可為 VCN 與區域外部網路之間的專用網路流量提供路徑,例如另一個 Oracle Cloud Infrastructure 區域中的 VCN、內部部署網路,或其他雲端提供者中的網路。

  • 服務閘道

    服務閘道可讓您從 VCN 存取其他服務,例如 Oracle Cloud Infrastructure Object Storage。從 VCN 到 Oracle 服務的流量透過 Oracle 網路架構旅行,而一律不透過網際網路。

  • 網際網路閘道

    網際網路閘道可允許 VCN 中公用子網路與公用網際網路之間的流量。

  • 安全清單

    針對每個子網路,您可以建立指定來源、目的地以及必須允許進出子網路之流量類型的安全規則。

  • 路由表格

    虛擬路由表包含規則,用於將流量從子網路遞送至 VCN 以外的目的地 (通常是透過閘道)。

建議

您的需求可能與此處所述的架構不同。請使用下列建議作為起點。

  • 防禦主機

    使用 VM.Standard.E4.Flex 資源配置搭配一個 CPU 和 1 GB 的記憶體,以及最新的 Oracle Linux 作業系統。

  • OKE 叢集

    您可以使用主控台中的「自訂建立」選項,以便指定部署的 VCN 和子網路。建立三節點叢集,然後選擇 VM.Standard.E4.Flex 作為初始資源配置。對於較大的部署,您可以使用運算資源配置較大的叢集大小。

  • 資料庫系統資源配置

    此架構在 MDS 中使用高可用性,提供跨越容錯域的三個 MySQL 伺服器。對於輕量型工作負載,建議您使用 MySQL。VM.Standard.E3.1.8GB.HA。您有可能會為了較高要求的工作負載使用較大的資源配置。

  • 正在連線 MDS

    您可以直接在應用程式 VM 或容器上安裝的 MySQL 用戶端或 MySQL shell 存取 MDS。

  • MDS 資料庫儲存

    「MDS 資料庫儲存」效能會隨著資料庫系統選取的儲存大小調整。您無法限制或編輯 MDS 儲存 IOPS。您必須根據資料大小和效能需求佈建儲存大小。MDS 會透過 iSCSI 使用「區塊磁碟區」服務「更高效能」選項。最終的績效結果可能會因不同的資源配置和案例而異。

  • 容器登錄

    Oracle 管理登錄,因此您不需要選擇大小或任何其他選項。建議您建立專用登錄,以獲得安全性最佳做法。

  • VCN

    建立 VCN 時,請根據計畫要在 VCN 中連附至子網路的資源數目,決定所需的 CIDR 區塊數目與每個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。

    選取未與任何其他網路重疊的 CIDR 區塊 (在 Oracle Cloud Infrastructure 中、企業內部部署資料中心或其他雲端提供者),以設定專用連線。

    建立 VCN 之後,您可以變更、新增以及移除其 CIDR 區塊。

    設計子網路時,請考量您的流量和安全需求。將特定層或角色中的所有資源連附至相同的子網路,作為安全界限。

注意事項

  • 擴展性

    您可以變更每個運算節點的 VM 資源配置,以垂直方式調整 MySQL。使用具有較高核心數目的資源配置,可增加配置給運算執行處理的記憶體和網路頻寬。

  • 應用程式可用性

    此架構使用 MDS 中的高可用性,將運算執行處理分配給多個容錯域,這會移除單一故障點並提供備援功能。

  • 成本

    根據資料庫所需的核心、記憶體及網路頻寬選取 VM 資源配置。您可以從一核心形狀開始。如果您需要應用程式或資料庫節點的效能、記憶體或網路頻寬,可以稍後變更 VM 資源配置。

部署

此參照架構的 Terraform 程式碼可作為 Oracle Cloud Infrastructure Resource Manager 的範例堆疊使用。您也可以從 GitHub 下載原始碼,然後自訂該程式碼以符合您的特定需求。

  • 使用 Oracle Cloud Infrastructure Resource Manager 中的範例堆疊進行部署:
    1. 按一下 部署至 Oracle Cloud

      如果您尚未登入,請輸入租用戶和使用者證明資料。

    2. 複查與接受條款與條件。
    3. 選取要部署堆疊的區域。
    4. 遵循螢幕上的提示與指示來建立堆疊。
    5. 建立堆疊之後,按一下 Terraform 動作,然後選取計畫
    6. 等待工作完成,然後複查計畫。

      若要進行變更,請返回「堆疊詳細資訊 (State Details)」頁面,按一下編輯堆疊 (Edit Stack) ,然後進行必要的變更。然後再執行計畫動作。

    7. 如果不需要進一步的變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取套用
  • 使用 GitHub 中的 Terraform 程式碼部署:
    1. 前往 GitHub
    2. 複製或下載儲存庫至本機電腦。
    3. 依照 README 文件中的指示進行。

變更日誌

此日誌列出重大變更: