Consider another scenario that can take advantage of an environment in the cloud.
Imagine a solution based on Web Services that provide CRUD capabilities and business rules operating on a database. At the same time, the solution provided for administrative users, who use business rules as services in libraries, which also operate on the data model of the solution. Thus, customers through Web, navigate the application functionality, while administrative users use a client consuming resources of an App Server for configuration tasks, monitoring business, customization, administration, etc..
The following figure illustrates the scenario, which is very common in Web applications department:
One important aspect in this type of architecture is the plan on the Web Services capabilities of the solution. It is common departmental applications quickly launch services that are good candidates for reuse by other departments. I’ve seen companies that built the batteries for a Web Services department, providing these services quickly to other groups within the enterprise, increasing the volume of users of the system.
In this case, there is the old problem of increasing scalability on these Web Services. In more sophisticated, some of these services can be part of new business offerings for external audiences, as well as customers and potential customers. This kind of aspiration is also interesting and very common, almost a mantra in some companies, like to take my web services into new products to internal and external business systems, which should offer to the market.
Attacking these Web services created by the company, we take a scenario as the cloud Windows Azure, the cloud hosting these services.
See the diagram below:
In simplified terms, the scalability of Web Services is now guaranteed through the WCF Web Service Roles that can scale as business needs change. At the same time, the database solution can be migrated to SQL Database Azure , making access to data more directly into the environment in Azure.
What are the main challenges in this type of migration:
- State management
- Migration of the database for the cloud
- Partitioning of the database (Sharing)
- One of the major components of this solution is the AppFabric on Azure, which provides resources for hosting services in the cloud.
Some points of attention
- Be prepared to sacrifice control of hardware and software in exchange for a lower cost of management;
- In this combination of settings, maintaining discipline and log instrumentation will guarantee a more efficient process of troubleshooting;
- Design your system and web services for the horizontal scalability ( scale-out ) rather than vertical ( scale up ). In the process, some re-factoring of existing legacy systems can happen, be prepared;
- Use techniques for partitioning the database since the SQL Database Azure has a limit of up to 10 GB of bases, with no automatic partitioning in the cloud;
- Very important: Make a detailed plan for data migration. Depending on the business scenario, hold on-premise (locally) the critical data of clients on the application. regulation or risk policies and security may be motivating factors for the persistence of local data;
- Finally, always think of stateless services, ” Stateless “. This ensures high scalability of processes and services on the cloud, without risk of affinity.
- Thus we discovered a more interesting scenario for migration to the cloud. Of course, this analysis is not extensive and there are many other aspects.