Part 1 : Designing Multi-Tenant Applications on Windows Azure

 

Introduction

Designing Multi-Tenant Applications is not kids TOY to play what insights it requires are as Follows ?

1) Big-Challenge to Solution Architect in taking decisions :

* Functional Decisions :

  1.    a) Inter-Operability : Functional decomposing existing Application to increase Reusability, Gather                                                              up large number of Customers.
  2.    b) Tenant-Partitioning : Functional Separation of Data i.e. Adapting exact techniques like                                                                          Sharding or Federation or Easy Scaling out Methodologies.

* Non-Functional Decisions :

  1.     a) Concern in increasing in Security
  2.    b) Increasing in UserExperience

2) Big-Benefits to Solution Architect in taking decisions :

* Abstracts the inner-laying H/W under Application ( No Maintenance and services of                                                                                                                                  Infrastructure )

* Always head on for Next business requirements

Background

Multi-Tenancy : What Does Exactly Multi-Tenancy mean to me ?

Multi-Tenancy

 

Features of a Software Solution Architecture :

1) Maximize Resource Utilization :

* Diminish Over-Provisioning ( Loss due to Unused resources ,unused Licensing ) or Under-                  Provisioning ( Losing Clients if Systems are not up @ peak times )

*  Maximise Security

How a Traditional Enterprise/ISV Application would look on converting into basic Layered Architecture

Here in the below diagram you can see how a normal application is divided into layered

 

Benefits of Layering here :

1) Top-Down Control Flow makes every layer to interact make independent calls to Core-Services.

2) Layers are loosely coupled.

3) More Reusability

 

Thats good decision by Solution Architect but is it sufficient ?

To be Multi-Tenant Application/Architecture ?

 

Lets see how can we start achieving Multi-Tenancy by changing Certain

Enterprise_ISV_Application_Small

 

How a Traditional Enterprise/ISV Layered Application would look on converting into Multi-Tenant Support Architecture

Layered_To_Multi-Tenant_Architecture

In the above diagram you can see how to achieve Multi-Tenant Architecture majorly by

 

1) Web Role : Categorising “Presentation Layer” & “Public Service Layer” i.e. UI (User Interface) & Interfaces Under Web-Server left out to attend Request as it is Exposed to outside world.

Public Service have one more capability like integrating 3rd party tools like :

  1. a) BizTalk
  2. b) Hd-Insights

 

2) Worker Role : Categorising “Service Agreement Layer” & “Domain Services Layer” Under Worker Process. Underlying process which support application to interact with Core Services & Services level changes occur in this Layer.

Points of Interest

Useful links :

http://www.successfactors.com/en_us/why-successfactors/technology/cloud/architecture.html

http://www.computerworld.com/article/2517005/data-center/multi-tenancy-in-the-cloud–why-it-matters.html

History

11th Oct 2014 – Was my irst Post on Code-Project

Follow for Part 2 : Designing Multi-Tenant Applications on Windows Azure