-1

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

user559788
  • 105
  • 1
  • 3
    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
  • 3
    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
  • 2
    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?" "Well...it could be anywhere from 1 to 10,000." – TheCleaner Jan 24 '14 at 15:28
  • 3
    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". – Rob Moir 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 serverfault.com would be perfect place for asking such questions. – user559788 Jan 24 '14 at 15:50
  • Regarding the comment who would scale from 1 to 10000. I wish to be prepared from the get go insted of having to change the setup when the time comes. I can be more flexible now then when I have 1000 clients and find out I cant scale up and would require a drastic setup change – user559788 Jan 24 '14 at 15:53
  • THe main problem is that most of the stuff you ask is "basic professinal admin level" and this is not welcome here. The answer runs mostly into "ask someone who knows". At the end, though, this runs down into "have a lead programmer who knows" because the software hsould be designed with that in mind from day 1. Including all the hooks good software should have - for windows that would be logging events (properly with counter events), performanece counters. WHat a lead developer would know. – TomTom Jan 24 '14 at 15:55
  • I think the scalability aspect is being confused with number of concurrent clients. 10,000 is not concurrent clients I am asking about. It is 10,000 active client accounts and making avilable enough space for them. – user559788 Jan 24 '14 at 16:02

1 Answers1

1

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.

TomTom
  • 51,649
  • 7
  • 54
  • 136