Migrating to Distributed Microservices on Azure Service Fabric: Solution Analysis

Migrating to Distributed Microservices on Azure Service Fabric

Question

You develop an entertainment application where users can buy and trade virtual real estate. The application must scale to support thousands of users.

The current architecture includes five Azure virtual machines (VM) that connect to an Azure SQL Database for account information and Azure Table Storage for backend services. A user interacts with these components in the cloud at any given time.

-> Routing Service '" Routes a request to the appropriate service and must not persist data across sessions.

-> Account Service '" Stores and manages all account information and authentication and requires data to persist across sessions

-> User Service '" Stores and manages all user information and requires data to persist across sessions.

-> Housing Network Service '" Stores and manages the current real-estate economy and requires data to persist across sessions.

-> Trade Service '" Stores and manages virtual trade between accounts and requires data to persist across sessions.

Due to volatile user traffic, a microservices solution is selected for scale agility.

You need to migrate to a distributed microservices solution on Azure Service Fabric.

Solution: Create a Service Fabric Cluster with a stateful Reliable Service for each component.

Does the solution meet the goal?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B.

B

The proposed solution of creating a Service Fabric Cluster with a stateful Reliable Service for each component meets the goal of migrating to a distributed microservices solution on Azure Service Fabric.

In the current architecture, the application is running on five Azure VMs that connect to Azure SQL Database and Azure Table Storage. This architecture is not scalable to support thousands of users, and hence the migration to a distributed microservices solution is needed. A microservices architecture is chosen as it provides scale agility and allows the application to handle volatile user traffic.

Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices and containers. By creating a Service Fabric Cluster with a stateful Reliable Service for each component, the application can be distributed across multiple nodes, and each service can be independently scaled up or down based on demand.

Creating a stateful Reliable Service for each component ensures that the data persists across sessions for the services that require it. The Routing Service does not persist data across sessions, and hence it can be created as a stateless Reliable Service. The Account Service, User Service, Housing Network Service, and Trade Service require data to persist across sessions, and hence they can be created as stateful Reliable Services.

In summary, the proposed solution of creating a Service Fabric Cluster with a stateful Reliable Service for each component meets the goal of migrating to a distributed microservices solution on Azure Service Fabric, and it provides scale agility and reliability to handle volatile user traffic.