Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Scenario: I am about to launch a cloud software in a couple months. This will be a SaaS solution for multiple clients. The software deals with Healthcare o Encryption at rest is a requirement. It is written in .Net and preferred database is Sql Server.

Each client will need a minimum of 10Gb of database storage and 100 Gb of File storage. I am looking at cloud offerings that can easily scale from 1 client to 10,000 clients. Now 10,000 clients equate to 100TB of database storage and 1PB of File storage.

The three providers I am considering are AWS, Azure and Rackspace(preferred because of support).

Setup: Option 1: Have a cloud server that can be scaled up as clients increase. But can a cloud server scale upto 100TB of storage to accommodate for database running on it? More so, Is it a good idea to have a VM holding data for all the clients. If not, how can I spread data across multiple machines yet have the web service easily identify which database to query for a particular client?

Option 2: Setup an environment for each client. I would love to go this way as it avoids single point of failure. Azure webites/Rackspace CloudSites kind of setup. The concern here though is, How would I encrypt database? Sql Server does offer TDE but only in Enterprise edition. Also how can I automate upgrades in such a scenario. An upgrade could mean, new code and/or database schema changes.

Option 3: Any other option that you might think would be suitable for such scenario.

Thanks, Ankur

share|improve this question

closed as off-topic by TheCleaner, Nathan C, Tom O'Connor Jan 24 '14 at 15:32

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking product, service, or learning material recommendations are off-topic because they tend to become obsolete quickly. Instead, describe your situation and the specific problem you're trying to solve." – TheCleaner, Nathan C, Tom O'Connor
If this question can be reworded to fit the rules in the help center, please edit the question.

You really need to get a professional consultant here as this is way out of scope for SF. – Nathan C Jan 24 '14 at 15:24
You really need to get a consultant to help you with this. You can't put it on a public cloud service, because of the governance requirements of healthcare applications. – Tom O'Connor Jan 24 '14 at 15:27
who asks for a solution that can scale from 1 to 10,000 clients? Only people that reference vague "cloud" solutions apparently. "Um...I'm going to open a car wash, how much sq. footage and land would I need?" "Well, it depends...average # of clients/cars coming through at the same time?" " could be anywhere from 1 to 10,000." <hangs up phone> – TheCleaner Jan 24 '14 at 15:28
I don't like to use this comment too often but in your case, I think its justified: "If you have to ask how to do it then the answer is you don't". – RobM Jan 24 '14 at 15:28
I am surprised this question si being closed as off topic for this site. All i asked was what kind of hosting setup would make more sense in my case? You would think would be perfect place for asking such questions. – user559788 Jan 24 '14 at 15:50
up vote 1 down vote accepted

Option 1: Have a cloud server that can be scaled up as clients increase.

Not smart. As in "i***". Why one server? If you scale like that - this never is cost effective. Run a cloud as a cloud. "Micro-CLusters" of machines (2-3 - web front, database, file storage, possibly with replication for high availability) and then use those in as many instances as you need. Create new ones as needed for capacity. No need to go "SUUUUUPPPPPER BIIIIIIGGGG SSSIIIIIIIINNNNNNGGGGLLLLEEEEE SSEEEEERRRVER" - that will only cost.

THen, as I said, in every micro cluster use standard mechanisms to get HA - the web front is standard easy, file storage will require some replication, as will database. Point is that then - even if some microcluster goes down - it will not affect all customers.

Also how can I automate upgrades in such a scenario

Scripting, standard tools for a professional admin that allows you to do that fully automated - how you think google updates hundreds of thousands of servers? MAYBE hire an admin with some experience to plan that - because we wont be able to do that for you.

An upgrade could mean, new code and/or database schema changes

Yeah, so what? A script can do that - shut down a microcluster front end and processing, take backups, run the necessary updates and start again, all within a agreed maintenance window. Professional Administration for beginners. Using windows? SCOM, SCCM are tools tha are made exactly for that.

share|improve this answer
Thanks Tom. That makes sense. – user559788 Jan 24 '14 at 15:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.