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: Deploy a Windows container to Azure 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 to deploy a Windows container to Azure Service Fabric for each component appears to be a valid approach to migrate to a distributed microservices solution. However, the solution itself does not fully meet the stated goal of supporting thousands of users.
Azure Service Fabric is a distributed systems platform that allows developers to deploy and manage microservices at scale. By using Service Fabric, developers can deploy microservices as stateless or stateful services, and the platform handles scaling, reliability, and availability of those services.
Deploying a Windows container to Service Fabric for each component is a valid approach because it allows for each microservice to be independently developed, tested, and deployed. This approach also enables each microservice to scale independently of the others, allowing for better performance and reliability.
However, the proposed solution does not address how to distribute the incoming user traffic across the various microservices. To achieve scalability for the application, a load-balancing mechanism needs to be implemented. A common approach is to use a reverse proxy or API gateway that distributes incoming requests to the appropriate microservices based on a routing strategy. The Routing Service mentioned in the current architecture might serve this purpose.
Additionally, the proposed solution does not address how to handle data persistence across sessions for each microservice. In the current architecture, the Account Service, User Service, Housing Network Service, and Trade Service require data to persist across sessions. When migrating to a microservices architecture, data should be partitioned and stored in a way that allows each microservice to access its own data without causing conflicts with other services.
Therefore, while deploying a Windows container to Azure Service Fabric for each component is a valid approach for migrating to a microservices architecture, additional steps must be taken to ensure the solution meets the goal of supporting thousands of users, including implementing a load-balancing mechanism and partitioning data appropriately.