Feature Post


How to setup a SaaS cloud? Multi-tenant, CRM 2011, Outlook2010

Recently, I had a chance to provide a solution architecture and setup the services cloud. It gets quite interesting when you have the resources, and you can propose the best possible solution.

Business context:
We had applications built on top of MS Dynamics CRM 2011 for various business verticals, health care system for instance, computerized maintenance management system (CMMS),  enterprise asset management system, procurement system, drag and drop scheduling system (scheduled/automatic), etc – all on top of CRM 2011.
Given that we were internet services provider as well, so we have several corporate customers for our mailbox services. So, the Outlook 2010 multi-tenancy services was a must-have.
Idea was to provide these Software-as-a-Service (SaaS).

To setup SaaS based cloud for various solutions, primarily for CRM 2011 and Exchange 2010, using Active Directory Federated Services (ADFS) v2.1.

Following were are few constraints to be considered while developing the solution:
  • High availability
  • Scalability
  • Migration
  • Backup
  • Time

We came up with the solution architecture having following main ingredients of the recipe:
  1. Virtual Machines on top VMWare VBlock Solution (yep, we had VBlock from VMWare that provides pre-configured storage and virtualization solutions; altho its pretty darn challenging getting caught in the configuration of VBlock – it is a large metallic cupboard)
  2. Windows Server 2008 R2
  3. Domain controller + DNS
  4. Exchange 2010 SP3
  5. SQL Server 2008 R2
  6. CRM 2011
  7. ADFS for all SaaS based application (CRM 2011, Outlook OWA, etc)
  8. Exchange 2010 Open Web Access (OWA, that is, internet browser based access)
  9. Exchange 2010 SP3 Multi Tenancy Configuration (Build or buy off-the-shelf various control panels available through Microsoft Partners)
  10. SharePoint 2010 (Good old, SharePoint)
So now, what would you do when you have two host with multiple guests? In this case, how would you provide high availability what should be done?
Provide SQL Server Cluster on Virtual machines? or provide them on two different host groups?
In this case,
  • HOST=Bare metal machine,
  • GUEST=Virtual machine
  • HOST Group = Set of guests, labeled as a group

High Availability:
When we consider high availability (HA), we tend to use a certain configuration (Active-Active, Active-Passive, etc). There could be several options, but the ones that I considered was:
  • Option 1: Cluster the guests in single group. For instance, guest1(SQL-Active) in host1 is clustered to guest2(SQL-Passive) in host1.
    • This option has major flaw, which is, if the host is down, all the guests will be down. Killed the option.
  • Option 2: Cluster the guests in multiple groups. For instance, a guest1 (SQL - Active) in host1 is clustered to guest2 (SQL – Passive) in host2.
    • This option is fairly better and is in production at many places. In this case, if host1 is down the service is redirected to the corresponding guest in host2
  • Option 3: Cluster the hosts. For instance, host2 (Active) will be copy of host1 (Active). In this case, anything that goes wrong with host1, the host2 will automatically takes control. This is the easiest but a bit expensive option. Why? two copies of highly smart machine, at any point in time, one machine is sitting idle and doing nothing. Waste of resources unless you configure load balancing.
So, we went with option 2 in our case. And proposed following breakup of guest machines:

# Virtual Machine(VM) # Description
1. VM1 Active directory 1
2. VM2 Active directory 2
3. VM3 SQL server 2008 R2 Enterprise – 1
4. VM4 SQL server 2008 R2 Enterprise – 2
5. VM5 Microsoft Exchange server 2010 – 1 Mailbox
6. VM6 Microsoft Exchange server 2010 – 2 Mailbox
7. VM7 Microsoft Exchange Server 2010 – 1 HUB & CAS
8. VM8 Microsoft Exchange server 2010 – 2 HUB & CAS
9. VM9 Microsoft CRM 2011 – 1
10. VM10 Microsoft CRM 2011 - 2
11. VM11 SharePoint 2010 – 1
12. VM12 SharePoint 2010 -2
13. VM13 ADFS -1
14. VM 14 System Centre suite 2012 -1
15. VM 15 Forefront TMG 2010 -1

With a Virtual Machine (VM) level configuration, we proposed a SAN storage of 1TB to include all sorts of database, files, etc:
# Server Qty Hardware Configuration OS Computer name Product Edition Required
1. Active Directory 2 · 2 x Intel R Xeon 2.6GHz
· Minimum 12GB Memory
C: drive Minimum 80 gb

· Windows Server 2008 R2 SP1 Enterprise or Standard Primary DC :-

Secondary DC:-

· Windows Server 2008 R2 x64 bit Standard OR Enterprise Edition
· Active directory roles
2. Application Server 2 · 2 x Intel R Xeon 2.6GHz
· Minimum 16GB Memory
· C: drive Minimum 200 gb

· Windows server 2008 R2 SP1 Enterprise SharePoint server 1 :-


SharePoint Server 2 :-


· Microsoft SharePoint Server 2010 Standard Edition
· Microsoft Office 2010 x64
· .NET Framework 3.5 and later versions supported as well
· Microsoft Internet Information Services (IIS) 7.5

3. Mail server 4 · 2 x Intel R Xeon 2.6 GHZ
· Minimum 16 GB Memory
· C drive minimum 100 gb

· Mailbox- Windows server 2008 R2 SP1 Enterprise
· HUB & CAS – Windows server 2008 R2 SP1 standard
2 Mailbox servers :

2 HUB & CAS servers

· Microsoft Exchange 2010 SP1 enterprise
· Microsoft Exchange 2010 SP1 standard
4. CRM server 2 · 2 x Intel R Xeon 2.6 GHZ
· Minimum 16 GB memory
· C drive minimum 100 gb

· Windows Server 2008 R2 SP1 Enterprise 2 CRM servers

· Microsoft CRM 2011
· CRM2011 rollup 12
5. System Center Suite 2012 1 · 2 x Intel R Xeon 2.6 GHZ
· Minimum 16 GB memory
· C drive minimum 100 gb

· Windows Server 2012 or Windows Server 2008 R2 SP1 Enterprise SCM-01 · System Centre Suite 2012
6. F ForeFront TMG 2010 1 · 2 x Intel R Xeon 2.6 GHZ
· Minimum 16 GB memory
· C drive minimum 100 gb

· Windows Server 2008 R2 SP1 Enterprise TMG Server
· Forefront TMG 2010
7. ADFS 2.0 1 · 2 x Intel R Xeon 2.6 GHZ
· Minimum 12 GB memory
· C drive Minimum 80 GB

· Windows Server 2008 R2 SP1 Enterprise FS-01 · ADFS 2.1
8. Database Server 2 · 2 x Intel R Xeon 2.6GHz
· Minimum 32GB Memory
· HDD 2 x 500GB NTFS
· 2 NIC

· Windows Server 2008 R2 SP1 Enterprise 2 node SQL Server

· SQL Server Database 2008 R2 x64 bit Enterprise Edition

FIG 1: Proposed network architecture

To cater the guests, following were the hosts, outta VBlock solution:
# Server Description
1. ESX1 VBlock baremetal machine, called “Host” running VMs
2. ESX2 Host running VMs
3. ESX3 Host as above
4 ESX4 Host as above

You can see the 4 host machines, in which 3 and 4 are clustered to provide high availability, for instance for SQL setup.

It took 15 VMs for initial cloud setup. Which includes a domain controller, directory services, and a dns on single machine.

Next… will add installation steps, from directory services to crm, and outlook software. Installation of outlook 2010 will include various “control panels” providers in the market to setup multi tenancy for Outlook 2010 and onwards.

Happy SaaSing!

Blogger Labels: setup,SaaS,Multi,tenant,solution,architecture,resources,context,Dynamics,health,system,instance,maintenance,management,CMMS,enterprise,asset,procurement,Given,provider,customers,mailbox,Outlook,tenancy,Idea,Software,Service,Requirement,solutions,Exchange,Active,Directory,Services,ADFS,Constraints,High,Migration,Backup,Time,ingredients,recipe,Virtual,Machines,VMWare,VBlock,storage,configuration,cupboard,Windows,Server,Domain,controller,Open,Build,shelf,panels,Microsoft,Partners,SharePoint,guests,Provide,Cluster,HOST,Bare,machine,GUEST,Group,Passive,options,Option,flaw,production,Waste,breakup,Description,Centre,suite,Forefront,database,Hardware,Computer,Product,Edition,Intel,Xeon,Minimum,Memory,Standard,Primary,Secondary,roles,Application,Office,Framework,versions,Internet,Information,Mail,servers,rollup,Center,NTFS,node,installation,providers,