I’ve been reading the High Scalability blog quite a bit lately. After reading several articles over the past couple of weeks, I’m wondering where are all the web startups that are using the Microsoft stack? I believe .NET is a very productive platform on which a successful web-based product can be built, and I really like the C# programming language. I don’t consider myself a Microsoft fan boy, and in the past I’ve recommend and used open source technologies for a few startups that I’ve worked with. So, why aren’t more startups using .NET? Maybe they are out there, but not heavily advertised. A few notable exceptions include:
One issue that seems to always be raised is the cost of Microsoft’s SQL Server, especially as one begins to scale out. If your strategy is to scale up by purchasing bigger hardware, then the cost may be fine, but as you begin to scale out, the costs can go significantly higher. So, for a start-up, who more than likely has very little money, this is not going to be a viable option.
Microsoft has attempted to address this issue by creating the BizSpark program, where a startup can use their software virtually free of charge for up to three years. At the end of the program you would pay a small fee, and purchase the production licenses for software that you will continue to use. The assumption that seems to be made here is that after the three year period a company will be generating enough revenue to afford the licenses. This is a step in the right direction, but after the three year period you still have to potentially fork out a large sum of money.
Given theses choices I can understand why most startups shy away from using the Microsoft stack. However, I’ve been looking at it more seriously, and I’m wondering if you could replace the more costly pieces of the stack with another suitable option, then would it become more attractive. Specifically, what if you could replaced SQL Server with another open source database, like MySQL or PostgreSQL? It seems that these products have mature .NET support, so I can’t see why they wouldn’t be great choices to replace SQL Server. ThePort indicates a similar strategy as they begin to look at scaling their application.
However robust the cluster is, we’ve concluded that we will eventually have to move to a sharded architecture with MySQL. MS SQL licensing fees makes both continuing to enhance the cluster and scaling out to multiple machines prohibitive.
Additionally, you have the express versions of Visual Studio, which are more than capable. When combined with other open source tools like NAnt, Subversion, NUnit, and CruiseControl.net, I think you a have viable development platform for almost any application.
Obviously, I’m coming from a position that lacks the experience implementing such a solution, but as I begin to review potential options for new projects, this is one that I would have to seriously consider.
Here are a few resources for further reading on the subject:
- MySpace Architecture
- Stack Overflow Architecture
- Plenty Of Fish Architecture
- ThePort Architecture
- Scaling Up vs. Scaling Out: Hidden Costs
- MVC, Cloud Scale & Deployment
- Migrating to Postgresql with my friend NHibernate
- Is ASP.NET good enough for startup’s
- Six recommendations for starting a startup with ASP.NET
- Why we chose ASP.NET to run our startup
- How Microsoft BizSpark Is Doing With Startups
- Microsoft Startup Zone
I would love to hear opinions on this.