開始使用微服務

Microservices 是開發現代軟體的架構方法。每個核心功能或服務都代表一個獨立建置和部署的商業相關資訊環境。微服務在建置和維護應用程式方面提供了敏捷性,並與舊版軟體開發中遵循的單體式方法對比。現今的應用程式現代化與微服務同義。

在深入瞭解微服務時,您將看到與單一架構的對比、採用微服務架構的考量、通訊機制、12 因子部署方法、在 Kubernetes 中部署、資料持續性、服務網狀組織,以及設計微服務的最佳做法。

微服務的優點

  • 簡化的部署

    透過持續整合和持續部署支援藍綠服務部署模型,加快新功能的上市時間。

  • 視需要調整效能

    每個服務獨立調整服務容器或資料平台,以滿足該功能的需求。

  • 依設計提供高可用性

    在不影響整個應用程式的情況下取代或停用獨立服務,個別服務失敗會透過降低服務正常處理,而不是在整個應用程式當機

瞭解如何在 Oracle Cloud Infrastructure (OCI) 上建置微服務。

Oracle Converged 資料庫優勢

資料導向微服務的重要層面是部署資料管理平台,以部署各種資料類型、在容器中支援多個資料庫,並提供自治式管理功能。OCI 上的 Oracle Autonomous Database 可讓您輕鬆部署,以建置智慧型的資料導向微服務。

實現微服務型應用程式之間的交易一致性

Oracle Transaction Manager for Microservices (MicroTx) 透過啟用分散式交易來簡化應用程式開發和作業,以確保在 Kubernetes 和 (或) 其他環境中部署的多語言微服務之間保持一致性。

完整且開放的微服務平台

對於應用程式現代化,需要整合多種技術,才能建立正確的多雲端微服務基礎。Oracle LiveLabs 提供您存取 Oracle 的工具與技術,以執行各種實驗室與研討會。這些研討會展示如何搭配 Oracle 使用開放技術,以建立更簡單的架構來提供部署彈性。使用 OCI 中可用的雲端和混合元件,在 Oracle LiveLabs 中建置微服務,包括 Autonomous Database、Helidon、Micronaut、MicroTx、WebLogic Server、Java、Docker、Kubernetes 和 Istio Service Mesh。為了讓您開始踏上微服務之旅,有多個實驗室可協助您將單一企業 App 現代化,或簡化這些應用程式 (如果您已經開始此路徑)。

開放平台表格

運用 Oracle 融合式資料庫進行資料導向微服務

此 Oracle LiveLab 建立了名為 GrabDish 的行動餐點外送應用程式,以突顯資料架構的簡潔特質,並採用現代化的開發堆疊。相較之下,傳統上採用 Lambda 與 Kappa 架構的特殊用途資料庫複雜性 (關聯式、文字、空間、圖表及訊息傳送系統的個別系統),更簡單地運用 Oracle Converged Database 建置資料導向微服務。此實驗室非常適合開發人員和架構師設計新的微服務。它也有助於資料庫管理員瞭解 Oracle Database 在應用程式現代化專案中的角色。Autonomous Database、具有嵌入式容器的 Kubernetes 叢集、Oracle Advanced Queuing 和 Transactional Event Queues,以及 Helidon,可用來顯示使用關聯式、JSON、空間和圖形資料的 Java、Node.js 和 Python 微服務,以及使用 Kiali、Jaeger、Prometheus 和 Grafana 設定的追蹤和監控功能。系統會說明微服務模式,例如事件來源、CQRS 及 SAGA。

運用 Oracle 融合式資料庫進行資料導向微服務

使用 Oracle Transaction Manager for Microservices 跨微服務的交易一致性

由於微服務架構越來越受歡迎,因此開發人員通常會遇到與資料一致性相關的問題,因為每個微服務通常都有自己的資料庫或其他資源。MicroTx 提供交易協調微服務,以維持參與交易之各種資料庫的狀態一致性。MicroTx 支援數種分散式交易通訊協定,例如 XA、長時間執行的動作 (LRA) 以及 try-confirm/cancel (TCC)。它支援跨多語言微服務的分散式交易,例如 Java、node.js、C/C++ 和 PL/SQL。在本 LiveLab 中,開發人員可以瞭解如何跨範例應用程式中使用的各種微服務達成資料一致性。

使用 Oracle Transaction Manager for Microservices 跨微服務的交易一致性

建立區塊

完整且開放的微服務平台

對於應用程式現代化,需要整合多種技術,才能建立合適的多雲端微服務基礎。Oracle LiveLabs 提供您存取 Oracle 的工具與技術,以執行各種實驗室與研討會。這些研討會展示如何搭配 Oracle 使用開放技術,以建立更簡單的架構來提供部署彈性。在 Oracle LiveLabs 中建置微服務,其中包含 OCI、Autonomous Database、Helidon、Micronaut、Weblogic、Java、Docker、Kubernetes 和 Istio Service Mesh 等雲端和混合元件,並位於出色的微服務平台堆疊中。有多個實驗室可協助您將單一企業應用程式現代化,讓您開始踏上微服務之旅,或簡化此路徑。

微服務條款

無伺服器 - 資料存放區不需要任何持續性狀態,會即時執行工作 — 觸發和忘記樣式。例如,lambda 函數和 API 閘道。

API 導向 - 微服務會透過 REST API (例如 API 閘道) 與彼此通訊。每個微服務都有 API 定義。

非同步微服務 - 透過佇列或串流軟體 (例如 Oracle Advanced Queuing 或 Apache Kafka) 透過非同步訊息傳遞,實現鬆散耦合。

工作流程動作 - 業務流程 (迴圈中有人類) 也代表長時間執行的交易,例如使用 BPMN 架構,例如 Camunda、Zeebe 或 temporal.io 流程。

自動化工作流程 - 以自動化方式 (迴圈中沒有人) 作為簡單工作流程執行的工作,例如使用 Apache Airflow 和 Argo (CNCF)。

資料導向 - 資料架構可驅動應用程式中資料的使用量,以進行作業和決策,通常搭配永久存放區 (例如 Oracle Converged Database 或具有特殊用途資料庫)。

雲端原生 - 完全針對雲端開發的應用程式,例如 CNCF 元件和 OCI 服務。

混合雲微服務 - 可跨客戶資料中心 (私有雲) 和公有雲運作的微服務,例如透過 Kubernetes/ 服務網格,跨私有雲和公有雲協調 (雲端爆發使用案例)。

多雲端微服務 - 可跨至少兩個公有雲和私有雲運作的微服務,例如透過 Kubernetes/ 服務網格協調多個雲端 (以提供風險降低措施,並防止鎖定一個公有雲)。

微服務挑戰

雖然微服務與應用程式現代化同義,而且是所有應用程式開發的未來,但有一些考量可以讓微服務架構更有效率。

  • 為應用程式選擇獨立的微服務數目。當需要部署數千個微服務,且預期會在每個服務的相關資訊環境非常微小時和諧執行時,微服務部署就會變得複雜。體驗指出,當識別出 20 到 50 個微服務時,轉換至微服務會更好地實現承諾的優勢。
  • 跨微服務界限導入交易是一項 XA 交易的挑戰 (在某些情況下,同步和效能限制)。同步 SAGA 表現出較高效能和健全度,透過融合式 Oracle Database 的支援進一步簡化。
  • 微服務之間的耦合需求在使用同步 REST API 服務時會帶來挑戰,而訊息傳遞 / 佇列系統則會在混合雲端環境中部署應用程式時,以非同步且更具擴展性的方式進行此通訊。
  • 追蹤和可觀察性不僅對應用程式層或中間層很重要,也對全方位的端對端部署和微服務架構支援而言至關重要。工具和分析整合正逐步開始解決混合式部署的這個重要方面。

微服務客戶成功案例