Supondo que você esteja desenvolvendo um serviço baseado na Web / Internet, a partir de agora, suas opções variam muito: você pode comprar um servidor e colocá-lo em sua própria área de trabalho em um data center. Você pode usar hospedagem compartilhada / de commodity, obter um servidor virtual privado (VPS) ou usar uma oferta de nuvem como o EC2 da Amazon.
O primeiro requer experiência e um investimento significativo de capital, mas lhe dá o maior controle. A hospedagem compartilhada é provavelmente a mais barata, mas a qualidade do serviço pode variar muito e eles geralmente não oferecem nenhuma garantia de disponibilidade e oferecem pouco controle. Servidores Privados Virtuais são melhores no departamento de qualidade e controle, mas são mais caros e não estão à altura da resiliência, tempo de atividade e controle "teóricos" (mais adiante) da nuvem.
Quanto à nuvem, a promessa de escalabilidade instantânea e resiliência é tão predominante, mas não é facilmente obtida sem uma compreensão muito boa dos princípios e da arquitetura da nuvem para que isso aconteça: uma instância do EC2 apoiada pelo EBS pode falhar irremediavelmente qualquer outro servidor (aconteceu comigo na semana passada, mas felizmente eu tinha um backup, um backup de nível de arquivo "old school", mas estava em linha com os meus requisitos de tempo de funcionamento para esta instância Linux não tão importante que eu estava correndo por um cliente, eu estava pronto e funcionando em um par de horas e que lhes convinha bem).
Esta é a promessa "desconhecida", não cumprida da nuvem, que pode prejudicar um negócio tão mal quanto ter um servidor físico sem backup pode: se você não conhece / entende as ferramentas do ecossistema da Amazon e projetou seu aplicativo / serviço com essas ferramentas em mente, seu aplicativo não é mais resiliente do que uma caixa compartilhada hospedada, VPS ou física em algum lugar.
Tendo dito isso, uma solução baseada em nuvem que pode ser a mais atraente para você é Plataforma como um Serviço como o Microsoft Azure: você obtém a pilha de desenvolvimento de aplicativos .NET / SQL necessária, mas a infraestrutura é de responsabilidade de outra pessoa.
com SLAs para apoiá-lo que você pode espelhar no seu SLA para seus clientes.