使用融合式資料庫和 Helidon 部署微服務
架構
此架構顯示在雲端基礎架構、融合式 Oracle Database 以及 Helidon 使用微服務所需的資源與拓樸。
融合式 Oracle Database 是一種最佳化的資料庫,具有現代化資料類型、主要資料中心元件以及最新開發範例的原生支援。例如,融合式資料庫支援位置感知的空間資料、文件存放區的 JSON、裝置整合的 IoT、即時分析的記憶體內技術,以及傳統的關聯式資料。透過支援所有這些資料類型,融合式資料庫可以執行從 IoT 到 Blockchain 到 Analytics and Machine Learning 的所有工作負載排序。它也可以處理任何開發範例,包括微服務。
微服務架構有三個主要層–訊息層、應用程式層以及資料庫層,為企業應用程式帶來靈活性、水平規模及穩定性。此參照架構會配置 Oracle Gen 2 雲上可用的標準型元件,以使用 Oracle Database 作為保存層建置健全的微服務。
「訊息層」是內建於資料庫、Transactional Event Queue (TEQ) 或 Kafka-based 傳輸機制 (例如 Oracle Cloud Infrastructure Streaming service) 的 Java Message Service (JMS) 交易訊息傳遞。
- 事件監控與警示:Grafana 與 Prometheus
- 可觀察性與追蹤:Kiali 與 Jaeger
- 傳統應用系統:Java Enterprise Edition 和 Oracle Weblogic
- Java Microservices:Java、helidon.io 和 Oracle GraalVM Enterprise
- 多種語言的微服務:node.js 和 python
- Oracle Container Engine for Kubernetes 的服務網狀組織:Istio、Kubernetes 和 Docker
資料庫層包含兩個自治式交易處理執行處理 (ATP-1 和 ATP-2)。架構在融合資料庫中使用關聯式資料、空間資料、文件、文字以及 JSON 資料,在微服務的資料庫中使用內建交易訊息,以簡化工作流程。
下圖是線上行動食品遞送應用程式的微服務架構範例。

helidon_microservices_db_architecture.png 圖解描述
架構包含下列元件:
- 負載平衡器
Oracle Cloud Infrastructure Load Balancing 服務提供自動化的流量分佈,從單一進入點到後端的多部伺服器。
- Container Engine for Kubernetes
Oracle Cloud Infrastructure Container Engine for Kubernetes 是一項完全受管理、可擴展的高可用性服務,可用來將容器化應用系統部署至雲端。您可以指定應用程式所需的運算資源,以及 Container Engine for Kubernetes 在現有租用戶的 Oracle Cloud Infrastructure 上佈建這些資源。Container Engine for Kubernetes 使用 Kubernetes 將跨主機叢集的容器化應用程式部署、擴展及管理自動化。
- Kubernetes 適用的服務連線器
使用 OCI Service Broker for Kubernetes 將 Oracle Autonomous Transaction Processing 資料庫連線至 Oracle Container Engine for Kubernetes。
OCI Service Broker for Kubernetes 是 Open Service Broker API 的實行。OCI Service Broker for Kubernetes 專門用於與 Kubernetes 叢集的 Oracle Cloud Infrastructure 服務互動。它包括三個可連結至下列 Oracle Cloud Infrastructure 服務的服務代理程式轉接器:物件儲存、自治式交易處理、Autonomous Data Warehouse 以及 Oracle 串流服務。
您可以將 OCI Service Broker for Kubernetes 新增至使用 Oracle Cloud Infrastructure Container Engine for Kubernetes 建立的叢集,以便與上述 Oracle Cloud Infrastructure 服務進行互動。當您將OCI服務代理程式新增至叢集時,不需要在每次於叢集上部署或取消部署應用程式時,手動佈建及取消佈建Oracle Cloud Infrastructure服務。您可以改用kubectl
呼叫 OCI Service Broker for Kubernetes 實行的 Open Service Broker API 來與 Oracle Cloud Infrastructure 服務進行互動。 - 登錄
Oracle Cloud Infrastructure Registry 是一個 Oracle 管理的登錄檔,可讓您簡化開發至生產環境的工作流程。登錄可讓您輕鬆地儲存、共用和管理開發人工因素,例如 Docker 影像。Oracle Cloud Infrastructure 的高可用性與可擴充性架構可確保您可以可靠地部署和管理應用程式。
- 物件儲存
物件儲存可讓您快速存取任何內容類型的大量結構化和非結構化資料,包括資料庫備份、分析資料以及豐富的內容 (例如影像和視訊)。使用標準儲存體作為快速、立即及經常存取所需的「熱」儲存體。將封存儲存用於您保留的「冷」儲存空間長期、少數或少數存取。
- 微服務
使用 Istio Service Mesh 連線微服務與代理主機,以提供 Kiali 視覺化的追蹤資訊。
使用 Jaeger 來追蹤與 Kiali 以觀察 Istio 網目。
- Helidon
使用 Helidon MicroProfile 註解來監督微服務狀況與生活。
- 自治式異動處理
Oracle Autonomous Transaction Processing 是一項針對交易處理工作負載最佳化的自我驅動、自我保護、自我修復的資料庫服務。您不需要設定或管理任何硬體,或是安裝任何軟體。Oracle Cloud Infrastructure 會處理建立資料庫,以及備份、修正、升級和調整資料庫。
下圖是線上行動食品遞送應用程式的微服務架構工作流程範例。

microservices_converged_db.png 圖解描述
此架構會顯示下列步驟:
- 客戶搜尋線上複查並下單。訂單服務微服務具有「搜尋審查」功能。搜尋複查要求與訂單會透過負載平衡程式傳送至訂單服務微服務。「訂單服務」會與資料庫通訊。
- 文字與 JSON 資料搜尋與情感分析會傳送至「搜尋複查」功能。
- 「訂單服務」與「檢查存貨服務」微服務會使用異動訊息互相通訊。
- 訂單服務會傳送遞送要求的下單至遞送服務微服務。
- 單一或多個傳遞的空間計算會從資料庫傳送至「傳遞服務」的「路由對應」功能。
- Lowcode 作業分析會從資料庫傳送至「分析儀表板」。
建議
您的需求可能會與此處描述的架構不同。使用下列建議作為起點:
- 簡單
此架構可擴充使用 Oracle 融合資料庫設計微服務持續性層的簡單需求。資料庫安全模型是取得認證和授權安全的起點。此外,使用資料庫的備份和高可用性可簡化微服務開發。
應用程式有助於透過繫結相關資訊環境的設計來驅動每個微服務的資料存取,以及在這些服務的多重處理中鬆耦合。從綱要層次隔離開始。
更正微服務的大小非常重要,讓資料相依性更容易管理。
在融合資料庫內建立的事件導向交易訊息可讓微服務之間進行鬆散耦合,同時保留一次訊息傳遞,提供有效的微服務 (稱為 sagas) 最終一致交易實行。
- 可觀察性與可管理性
使用 Helidon 註解的可觀察性與管理性,以及使用追蹤工具可讓您大規模運作微服務式應用程式自動化。這是在應用程式層和資料庫層設計良好的區域,尤其是微服務的負載擴展效能和可用性需要調整。
- 擴充性
由 Oracle Cloud Infrastructure Container Engine for Kubernetes 管理的微服務容器可擴充應用程式層。雖然並非一律建議每個微服務都有自己的資料庫,但是融合式資料庫的架構實際上仍可能存在。微服務之間通常會隔離綱要層次,以提供與不必要資料相依性的良好隔離。
- 安全
融合式資料庫提供高層次的安全性,可供應用程式用來提供使用者層次角色、認證、授權以及資料加密。Helidon 也提供安全的微服務存取,以及保存層的安全性。
- 記數法
此架構會使用 Oracle Container Engine for Kubernetes 新增微服務執行處理來管理它們,並使用負載平衡器為每個服務無縫使用多個執行處理。使用此微服務範例可處理可用性和縮放。資料庫提供簡單的自律擴展至特定層次 (每個資料庫系統 2 到 48 個 Oracle Compute Unit (OCPU)),可適用於大部分的應用程式。
注意事項
部署此參照架構時,請注意下列幾點。
- 效能
新增微服務的其他執行處理並使用 Kubernetes 管理,以水平擴展應用程式效能。
觀察 Oracle Autonomous Transaction Processing 效能主控台中的資料庫負載並增加 OCPU 數目,以擴展資料庫效能 (ATP-Shared 中最多 48 個)。
- 安全
微服務的安全性遵循 Helidon Microservices 和 Oracle Database 安全模型所提供的安全性–資源的認證、授權、存取控制。Oracle 建議應用程式儘可能使用資料庫的安全強制實行機制。
- 使用狀態
高可用性有兩個部分:應用程式層和資料層。
應用程式可用性是由無狀態容器 (由 Kubernetes 產生) 以及從中間層描述資料或資料庫復原任何狀態所達成。
建議跨 Oracle Cloud 可用性網域或跨區域使用 PDB 的實體待命資料庫,以達到高可用性架構。複查 Oracle Database 高可用性參數以瞭解其他建議。
- 成本
雲端經濟適用於此微服務參考架構。所有元件在 Oracle Cloud Infrastructure 上均可作為受管理服務,您需支付使用的費用,而不需支付佈建硬體的費用。
部署
您可以在 GitHub 上取得此參照架構的 Terraform 程式碼。您可以從 GitHub 下載程式碼到您的電腦、自訂程式碼,以及使用 Terraform CLI 建置架構。
- 使用 GitHub 中的 Terraform 程式碼部署:
- 前往 GitHub。
- 將儲存區域複製或下載到您的本機電腦。
- 依照
README
文件中的指示進行。
- 使用 Oracle LiveLabs Building Microservices with Oracle Converged Database Workshop 部署。