開始使用微服務

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

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

微服務的優點

  • 簡化的部署

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

  • 視需要調整效能

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

  • 依設計提供高可用性

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

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

Oracle Converged 資料庫優勢

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

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

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

適用於微服務的完整開放式平台

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

開放平台表格

運用 Oracle Converged 資料庫進行資料導向微服務

此 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 Converged 資料庫進行資料導向微服務

使用 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 等多種微服務平台堆疊中提供的雲端和混合元件。有多個實驗室可協助您將單一企業 App 現代化,以開始進行微服務歷程,如果您已經停止此路徑,請加以簡化。

微服務條款

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

API 導向 - 微服務使用 REST API (例如 API 閘道) 相互通訊。每個微服務都有 API 定義。

非同步微服務 - 透過佇列或串流軟體 (例如使用 Oracle Advanced Queuing 或 Apache Kafka) 以非同步訊息傳遞來達成鬆散耦合。

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

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

資料導向 - 資料架構可驅動應用程式中資料用於操作和決策,通常與永久存放區 (例如 Oracle Converged Database 或特殊用途資料庫) 搭配使用。

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

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

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

微服務挑戰

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

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

微服務客戶成功案例