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 Routing Service. Deploy a Guest Executable to Service Fabric for each component.
Does the solution meet the goal?
Click on the arrows to vote for the correct answer
A. B.B
The proposed solution meets the goal of migrating to a distributed microservices solution on Azure Service Fabric, but it may not be the most optimal solution for the given requirements.
The proposed solution involves creating a Service Fabric Cluster and deploying a Guest Executable for each component of the application. A stateful Reliable Service will be used for the Routing Service, while the other services will be deployed as Guest Executables.
Using Azure Service Fabric for the microservices architecture allows for greater scalability, resilience, and agility. Service Fabric can manage the lifecycle of services, provide automatic scaling, and handle failure scenarios.
The use of stateful Reliable Services is appropriate for services such as the Routing Service, which require data persistence across sessions. This ensures that user sessions are maintained even if the service fails or is restarted.
Deploying each component as a Guest Executable allows for greater flexibility and isolation. Each component can be updated and scaled independently, without affecting the other components. This approach can also improve the overall performance of the application.
However, the proposed solution does not provide details on how the account information, user information, and real-estate economy data will be stored and managed in the microservices architecture. The use of Azure SQL Database and Azure Table Storage in the current architecture suggests that data persistence and management is a critical aspect of the application.
Therefore, it may be necessary to consider using stateful Reliable Services or other Azure data storage solutions such as Azure Cosmos DB to ensure data persistence and consistency across the microservices architecture.
In conclusion, while the proposed solution meets the goal of migrating to a distributed microservices solution on Azure Service Fabric, further considerations may be required to ensure that the data persistence and management requirements of the application are fully addressed.