qrcode.net example c# Hosting a Multi-Tenant Application on Windows Azure in Visual C#.NET

Encoding QR Code in Visual C#.NET Hosting a Multi-Tenant Application on Windows Azure

Hosting a Multi-Tenant Application on Windows Azure
Paint QR Code In Visual C#
Using Barcode printer for VS .NET Control to generate, create QR Code image in .NET applications.
www.OnBarcode.com
Scanning QR Code In C#.NET
Using Barcode decoder for Visual Studio .NET Control to read, scan read, scan image in VS .NET applications.
www.OnBarcode.com
This chapter discusses some of the issues that surround architecting and building multi-tenant applications to run on Windows Azure technology platform. A highly scalable, cloud-based platform offers a compelling set of features for building services that many users will pay a subscription to use. A multi-tenant architecture where multiple users share the application enables economies of scale as users share resources, but at the cost of a more complex application that has to manage multiple users independently of each other. This chapter does not focus specifically on Tailspin or the Surveys application, but it uses the scenario described in the previous chapter to illustrate some of the factors that you might consider when choosing whether to implement a multi-tenant application on Windows Azure. This chapter provides a conceptual framework that helps you understand some of the topics discussed in more detail in the subsequent chapters of this guide.
Making Bar Code In Visual C#.NET
Using Barcode encoder for VS .NET Control to generate, create barcode image in .NET framework applications.
www.OnBarcode.com
Bar Code Scanner In C#
Using Barcode scanner for .NET Control to read, scan read, scan image in .NET framework applications.
www.OnBarcode.com
Single-Tenant vs. Multi-Tenant
Make QR Code In .NET Framework
Using Barcode maker for ASP.NET Control to generate, create QR-Code image in ASP.NET applications.
www.OnBarcode.com
Encode QR Code In .NET
Using Barcode generator for .NET framework Control to generate, create QR Code image in .NET framework applications.
www.OnBarcode.com
One of the first architectural decisions that the team at Tailspin had to make about the Surveys application was whether it should be a single-tenant or multi-tenant application to best support multiple customers. Figure 1 shows the difference between these approaches at a high-level. The single-tenant model has a separate, logical instance of the application for each customer, while the multi-tenant model has a single logical instance of the application shared by many customers. It s important to note that the multi-tenant model still offers separate views of the application s data to its users. In the Surveys application, ClientB must not be able to see or modify ClientA s surveys or data. Tailspin, as the owner of the application, will have full access to all the data stored in the application.
QR Code Drawer In Visual Basic .NET
Using Barcode generator for .NET Control to generate, create QR Code JIS X 0510 image in Visual Studio .NET applications.
www.OnBarcode.com
Creating Barcode In C#.NET
Using Barcode encoder for Visual Studio .NET Control to generate, create barcode image in .NET framework applications.
www.OnBarcode.com
ch a pter t wo
Making Code 39 In C#.NET
Using Barcode generation for VS .NET Control to generate, create Code 3 of 9 image in VS .NET applications.
www.OnBarcode.com
EAN128 Generation In Visual C#.NET
Using Barcode drawer for VS .NET Control to generate, create GTIN - 128 image in Visual Studio .NET applications.
www.OnBarcode.com
Multi-instance, single-tenant Tailspin
Draw Code-128 In C#.NET
Using Barcode creator for Visual Studio .NET Control to generate, create ANSI/AIM Code 128 image in .NET framework applications.
www.OnBarcode.com
RoyalMail4SCC Creator In Visual C#.NET
Using Barcode creator for Visual Studio .NET Control to generate, create RoyalMail4SCC image in Visual Studio .NET applications.
www.OnBarcode.com
Instance of Surveys for ClientC Instance of Surveys for ClientA Instance of Surveys for ClientB
Code 39 Drawer In .NET Framework
Using Barcode generator for ASP.NET Control to generate, create Code39 image in ASP.NET applications.
www.OnBarcode.com
Bar Code Reader In C#.NET
Using Barcode recognizer for .NET framework Control to read, scan read, scan image in VS .NET applications.
www.OnBarcode.com
Single-instance, multi-tenant Tailspin
UCC - 12 Generator In .NET
Using Barcode creation for Reporting Service Control to generate, create UCC.EAN - 128 image in Reporting Service applications.
www.OnBarcode.com
DataBar Encoder In Java
Using Barcode encoder for Java Control to generate, create GS1 RSS image in Java applications.
www.OnBarcode.com
Instance of Surveys (not client speci c)
Draw Code 3/9 In Java
Using Barcode generator for BIRT reports Control to generate, create Code 3/9 image in BIRT reports applications.
www.OnBarcode.com
Barcode Printer In None
Using Barcode generator for Font Control to generate, create bar code image in Font applications.
www.OnBarcode.com
ClientA
Painting Universal Product Code Version A In None
Using Barcode printer for Software Control to generate, create UPC-A image in Software applications.
www.OnBarcode.com
Generate Data Matrix In Java
Using Barcode maker for Java Control to generate, create Data Matrix 2d barcode image in Java applications.
www.OnBarcode.com
ClientC
ClientA
ClientC
ClientB
ClientB
figure 1 Logical view of single-tenant and multi-tenant architectures .
Multi-Tenancy Architecture in Azure
In Windows Azure, the distinction between the multi-tenant model and the single-tenant model is not as straightforward as the model in Figure 1 because an application in Windows Azure can be made up of multiple components, each of which can be single-tenanted or multitenanted. For example, if an application has a user interface (UI) component, a services component, and a storage component, a possible design could look like that shown in Figure 2.
This diagram shows logical instances of the Surveys application. In practice, you can implement each logical instance as multiple physical instances to scale the application
hosting a multi-tena nt a pplication
ClientA
Windows Azure
Web UI -ClientA -Single-tenant Storage -ClientA -Single-tenant
ClientB
Web UI -ClientB -Single-tenant
Surveys Services -Multi-tenant
Storage -ClientB -Single-tenant
ClientC
Web UI -ClientC -Single-tenant
Storage -ClientC -Single-tenant
figure 2 Sample architecture for Windows Azure
This is not the only possible design, but it illustrates that you don t have to make the same choice of either single-tenancy or multitenancy model for every component in your application. Should you design your Windows Azure application to be singletenant or multi-tenant There s no right or wrong answer, but as you will see in the following section, there are a number of factors that can influence your choice.
Selecting a Single-Tenant or Multi-Tenant Architecture
This section introduces some of the criteria that an architect would consider when deciding on a single-tenant or multi-tenant design. This book revisits many of these topics in more detail, and with specific reference to Tailspin and the Surveys application, in later chapters. The relative importance of the different criteria will vary for different application scenarios. The architectural requirements of your application will influence your choice of a single-tenant or multi-tenant architecture.
You can always have one tenant in a multi-tenant application, but you can t have multiple tenants in a single-tenant application.
architectural considerations
ch a pter t wo
Application Stability A multi-tenant application is more vulnerable to instance failure than a single-tenant application. If a single-tenant instance fails, only the customer using that instance is affected, whereas if the multitenant instance fails, all customers are affected. However, Windows Azure can mitigate this risk by enabling you to deploy multiple, identical copies of your application into multiple Windows Azure role instances (this is really a multi-tenant, multi-instance model). Windows Azure load balances requests across those role instances, and you must design your application to ensure that it functions correctly when you deploy multiple instances. For example, if your application uses Session state, you must make sure that each web role instance can access the state. Windows Azure will monitor your role instances and automatically restart any failed role instances.
In Windows Azure, the preferred way to scale your application is to scale out by adding additional nodes instead of scaling up by using larger nodes. This enables you to add or remove capacity as and when it s needed.
Making the Application Scalable The scalability of an application running on Windows Azure depends largely on being able to deploy multiple instances of your web and worker roles to multiple compute nodes while being able to access the same data from those nodes. Both single-tenant and multi-tenant applications use this feature to scale out when they run on Windows Azure. Windows Azure also offers various sizes of compute nodes that enable you to scale up or scale down individual instances. For some applications, you may not want to have all your customers sharing a single, multi-tenant instance. For example, you may want to group your customers based on the functionality they use or their expected usage patterns, and then optimize each instance for the customers who are using it. In this case, you may need to have two or more copies of your multi-tenanted application deployed in different Windows Azure accounts. Service Level Agreements You may want to offer a different Service Level Agreement (SLA) with the different subscription levels for the service. If subscribers with different SLAs are sharing the same multi-tenant instance, you should aim to meet the highest SLA, thereby ensuring that you also satisfy the lower SLAs for other customers. However, if you have a limited number of different SLAs, you could put all the customers that share the same SLA into the same multi-tenant instance and make sure that the instance has sufficient resources to satisfy the requirements of the SLA.
Copyright © OnBarcode.com . All rights reserved.