We (msgooroo.com) use the .Net stack on Azure and have found it to be quite good. We have even been experimenting with the new vNext / OWIN stack which appears even better and will give us the flexibility to run on Linux.
Azure is a bit hit and miss. Its brilliant for getting something up an running quickly (using websites / SQL Server), but is a little flaky at scale.
Key problems include connection issues with SQL Server, connection issues with their hosted Redis service, pricing of SQL Server when using advanced features like geo-replication.
All in all though, its a pretty good development experience once you get your head around the fact that in the cloud services fail and there is nothing you can do about it except plan for it.
Oh and the Bizspark program they have gives you $100 worth of free hosting on Azure which is always nice.
> Key problems include connection issues with SQL Server,
What sort? If it's intermediate connection problems .NET 4.5.1 added Connection Resiliency to ADO.NET [1]. If you're using a recent enough version of Entity Framework it goes even further [2].
public class MyConfiguration : DbConfiguration
{
public MyConfiguration()
{
SetExecutionStrategy(
"System.Data.SqlClient",
() => new SqlAzureExecutionStrategy(1, TimeSpan.FromSeconds(30)));
}
}
The above SqlAzureExecutionStrategy will retry instantly the first time a transient failure occurs, but will delay longer between each retry until either the max retry limit is exceeded or the total time hits the max delay. The execution strategies will only retry a limited number of exceptions that are usually tansient, you will still need to handle other errors as well as catching the RetryLimitExceeded exception for the case where an error is not transient or takes too long to resolve itself.
Yeah, we use .Net 4.5.3, without EF. Connections still fail all the time especially under high demand.
We have our own retry logic, which also logs the issue so we are aware of how frequently errors occur while a command / transaction is being executed.
This is using SQL Azure with the "Business" tier, so it will be interesting to see how the new (much more highly priced tiers) Standard and Premium tiers go.
Azure is a bit hit and miss. Its brilliant for getting something up an running quickly (using websites / SQL Server), but is a little flaky at scale.
Key problems include connection issues with SQL Server, connection issues with their hosted Redis service, pricing of SQL Server when using advanced features like geo-replication.
All in all though, its a pretty good development experience once you get your head around the fact that in the cloud services fail and there is nothing you can do about it except plan for it.
Oh and the Bizspark program they have gives you $100 worth of free hosting on Azure which is always nice.