將使用 MySQL 的雲端原生 App 部署到 Oracle Cloud Infrastructure
您可以使用 Oracle Container Engine for Kubernetes (OKE)、Oracle Cloud Infrastructure Registry 及 Oracle 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-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 中的範例堆疊進行部署:
- 使用 GitHub 中的 Terraform 程式碼部署:
- 前往 GitHub。
- 複製或下載儲存庫至本機電腦。
- 依照
README
文件中的指示進行。