Service Fabric 應用程式案例

Azure Service Fabric 提供可靠且彈性的平台,可讓您撰寫及執行許多類型的商務應用程式和服務。 這些應用程式和微服務可以是無狀態或具狀態,而且可跨虛擬機器進行資源平衡,以達到最佳效率。

Service Fabric 的獨特架構可讓您在應用程式中執行接近即時的資料分析、記憶體中計算、平行交易和事件處理。 您可以輕鬆地根據變更的資源需求縮減或擴增您的應用程式。

如需建立應用程式的設計指引,請參閱 Azure Service Fabric 上的微服務架構使用 Service Fabric 的應用程式設計最佳做法

針對下列類型的應用程式,請考慮使用 Service Fabric 平台:

  • 資料收集、處理和 IoT:Service Fabric 可透過其具狀態服務處理大規模資料並降低延遲。 其有助於處理數百萬個裝置上的資料,而且裝置和計算的資料皆共置在裝置中。

    透過使用 Service Fabric 建立 IoT 服務的客戶包括 PCL ConstructionCitrixASOSOman Data ParkKohlerDover Fueling Systems

  • 遊戲和工作階段架構的互動式應用程式:如果您的應用程式需要低度延遲讀取和寫入 (例如線上遊戲或立即訊息),Service Fabric 就很有用。 Service Fabric 可讓您建置這些具狀態的互動式應用程式,而無需建立不同的存放區或快取。 請造訪 Azure 遊戲解決方案,以取得在遊戲服務中使用 Service Fabric 的設計指引。

    建立遊戲服務的客戶包括 Next Games。 建立互動式工作階段的客戶包括 Honeywell with Hololens

  • 資料分析和工作流程處理:必須可靠地處理事件或資料串流的應用程式可獲益於 Service Fabric 中已最佳化的讀取和寫入。 Service Fabric 也支援應用程式處理管線,其中的結果必須能夠可靠地傳遞到下一個處理階段而不會有任何遺失。 這些管線包括交易和財務系統,其中的資料一致性和計算保證是不可或缺。

    建立商務工作流程服務的客戶包括 Zeiss GroupPCL Construction

  • 資料的計算:Service Fabric 可讓您建立執行大量資料計算的具狀態應用程式。 Service Fabric 可讓您在應用程式中共置處理 (計算) 和資料。

    一般而言,當應用程式需要存取資料時,與外部資料快取或儲存層有關的網路延遲會限制計算時間。 具狀態的 Service Fabric 服務會消除延遲,並啟用最佳化程度更高的讀取和寫入。

    例如,假設您的應用程式為客戶執行近乎即時的選項建議 (來回時間低於 100 毫秒)。 Service Fabric 服務的延遲和效能特性可為使用者提供反應靈敏的體驗 (相較於必須從遠端儲存體提取必要資料的標準實作模型)。 系統的回應更靈敏,因為建議選項的計算會與資料和規則共置。

    建立計算服務的客戶包括 ASOSCCC

  • 高可用性的服務:Service Fabric 會藉由建立多個次要服務複本,提供快速的容錯移轉。 如果節點、處理序或個別服務因為硬體或其他故障而停機,其中一個次要複本會升級為主要複本,以便將服務損失降到最低。

  • 可調整的服務:可以分割個別服務,以便在叢集中相應放大。 也可以建立並立即移除個別服務。 您可以從少數節點上的少數執行個體中,將服務擴增至多個節點上的數千個執行個體,然後視需要再次進行調整。 您可以使用 Service Fabric 來建立這些服務,並管理其完整生命週期。

應用程式設計個案研究

示範如何使用 Service Fabric 來設計應用程式的個案研究會發佈在客戶案例Azure 中的微服務網站。

設計由無狀態與具狀態的微服務組成的應用程式

使用 Azure 雲端服務背景工作角色建立應用程式是無狀態服務的其中一個範例。 相較之下,具狀態的微服務會維護要求及其回應以外的授權狀態。 這項功能可透過簡單的 API 提供高可用性和狀態的一致性,其提供受複寫支援的交易式保證。

Service Fabric 中的具狀態服務會為所有類型的應用程式帶來高可用性,而不只是資料庫和其他資料存放區。 這是自然的進展。 針對高可用性,應用程式已經從使用單純的關聯式資料庫進展到 NoSQL 資料庫的境界。 現在應用程式就能在其本身內管理它們的「熱門」狀態和資料,以便進一步提高效能,而不需犧牲可靠性、一致性或可用性。

當您建立包含微服務的應用程式時,您通常會有呼叫無狀態和具狀態商務仲間層服務的無狀態 Web 應用程式組合 (例如 ASP.NET 和 Node.js)。 應用程式和服務都會透過 Service Fabric 部署命令部署在相同的 Service Fabric 叢集中。 這每一項服務都與規模調整、可靠性和資源使用量無關。 這種獨立性可改善開發和生命週期管理的靈活性和彈性。

具狀態的微服務簡化了應用程式設計,因此不需要傳統上為滿足純無狀態應用程式的可用性與延遲需求時所需的其他佇列與快取。 因為具狀態服務具有高可用性和低延遲,所以在您應用程式中管理的詳細資料較少。

下圖說明設計無狀態與具狀態之應用程式間的差異。 藉由運用 Reliable ServicesReliable Actors 程式設計模型,具狀態服務既可降低應用程式複雜度,又可提高輸送量和降低延遲。

使用無狀態服務的範例應用程式如下:Application that uses stateless services

使用具狀態服務的範例應用程式如下:Application that uses stateful services

下一步