

My startup is Microsoft-based, here's why - jitbit
http://www.jitbit.com/news/186-my-startup-is-microsoftbased-heres-why/

======
dkhenry
While Microsoft might be a good solution for many people (Use what get the job
done), this specific article has absolutely no real reasons why you _should_
use Microsoft. The truth is if One 8-gig windows server is what he needed for
his start up he could get by with one 8-gig Linux server and save a couple of
bucks a month. While that might not be a big deal now, if he ever wants to get
big, those little costs start to add up.

Also while its great Microsoft is subsidising his starup via the Biz Stark
program, we have seen many times what happens when you rely on "free" to run
your buisness. Even tually he will need to start paying for those software
licenses he is getting for free and by then he might not have a choice in what
platform he is using.

~~~
pmelendez
>"this specific article has absolutely no real reasons why you _should_ use
Microsoft"

He does give some reasons, which might not apply to everyone is another thing:
(from the article)

    
    
        Because I love C#.
        Because "MS is expensive" is a myth. 
        Because of Visual Studio
    
    
    

Of all the three I am very agreed with the third one. I wish it would be
different but I haven't used a better alternative to VS so far (XCode,
Eclipse, Netbeans, etc. just didn't work for me for several reasons )

~~~
free652
Wow I hate VS so much, Eclipse is so much better! I guess it's just personal
preference.

I like C# a little more than Java, but I cant stand assemblies. Jars are much
easier to handle.

edit:

Troll? Not.

Like a very simple thing: quick watch in debug blocks the edit window? Really
WTF?! I have to move it the second screen to see the actual code. I can name a
lot of these small annoyances.

~~~
hackinthebochs
I can't help but feel like you're trolling. Eclipse is a slow, bloated,
feature-laking pile of crap. I honestly can't believe anyone would prefer it
to, well, just about anything else. I've used it and I get by on it when
necessary, but in terms of preference its at the bottom of my list.

~~~
RyanZAG
Rubbish. Use the latest version with an SSD with 8GB ram and it flies - SSD
and ram are cheap enough to not be a barrier to entry, either. It's got more
features than any other IDE I can think of, as well as a pretty huge library
of plugins. Sounds like you're the one that is trolling. If Eclipse really was
that bad, nobody would use it, and it wouldn't be probably the most widely
used IDE in the world.

~~~
hackinthebochs
>If Eclipse really was that bad, nobody would use it, and it wouldn't be
probably the most widely used IDE in the world

I don't think this means much. It has (poor) support for just about every
language under the sun and its free so of course its going to be widely used.
It has many features for Java, but features for other languages quickly fall
off a cliff. But its the slowness that is a showstopper for me unless I
absolutely must go with eclipse. Yes, eventually computer technology will
advance to the point where its bloated codebase is no longer a liability, and
perhaps we're approaching that. I use the Juno release occasionally for python
programming and everything I've mentioned still applies.

Personally I'm not a big fan of plugins in my IDEs: they always feel slow and
clunky with a "bolted on" feel. This has been true of every IDE + plugin
environment I've tried so far.

------
mbesto
_All our stuff runs on one (1) server_

This has nothing to do with MS, but why would you set up such an architecture?
If one of the apps hits a memory leak (their HeatTest project did), than all
of your other critical services/apps are interrupted.

 _That costs us about $200 a month. By the way, that 's Amazon_

What Amazon configuration gets you 8GB or RAM for $200/month?? Am I missing
something?

 _Database servers for all of the above_

MS SQL licensing costs are crazy stupid. You either (a) have to fork over
about $2-3k fee or (b) the cloud based cost is an extra ~$150/month on top of
the standards windows vm cost.

I'm genuinely curious about all of the above, because I am working with a MS-
based startup and would be good to know.

 _But most importantly, because the customer doesn 't give a darn._

100% agree.

~~~
jitbit
$200 is a m.large instance (7.5.GB) plus the "provisioned i/o" charges (EBS
volume).

MS SQL is free since we're in BizSpark.

~~~
KaiserPro
but one instance on Amazon is not high availability.

The rest of your post could be read as apples with oranges, Charm was
expensive because they made massive architectural mistakes. End of story.

This is not to say that what you are doing/saying is incorrect. Your stuff
works and is able to cope with the load thrown at it on one server.

To be honest I'm quite mystified why startups boast about using _n_ instances
to serve a few thousand hits. Node, some python frameworks and ruby are
ridiculously wasteful[1]. All it tells me is that you've not though about the
best way to do things, you've just used the latest tools and smooshed them
together. If you had to have more than one server to handle 2[2] tickets a
minute and 1 hit a second on your website I'd be questioning your programming
skill

The one thing I do take issue with is your implied claim of high availability.
Hourly backups, and no hot spare or active active replication is not high
availability. Yes you can rebuild an instance in 5 minutes, but only in best
case, and you've still lost up to an hour's worth of user data (around 60
tickets). That is a commendable recovery rate, but its still downtime.

[1] depending on usage, of course. [2] using stats from the article

~~~
cdrxndr
I'm a little late to the party, but can't believe so few people brought up the
lack of availability admitted in this article. The OP is admitting that the
company's official stance of availability is that it will restore from 1 hour
ago ... and __lose client data. __

Losing client data is the worst thing you could do as a SaaS. The second worst
thing you could do is to not be online - e.g., as someone pointed out; because
one app (or even something out of your control) took out all your services.

MS is not really the story here. Cost of HA in typical Linux vs. MS stacks,
which wasn't addressed at all in the article, is what is relevant.

------
petercooper
The guy behind PlentyOfFish (the dating site) has written similar things in
the past. Various links and tech info:
[http://highscalability.com/plentyoffish-
architecture](http://highscalability.com/plentyoffish-architecture)

It _seems_ a lot of MS stuff, used properly, scale well and _easily_ , making
it particularly suitable for single founders or small teams where they don't
want to devote a lot of time to ops (while still keeping it in-house).

 _Becoming a member of their "BizSpark" program literally provides you with
all the software free of charge. Entering BizSpark is easy and costs nothing._

If you can get in, of course, which is far from certain. My company seemed to
fit the criteria well a couple of years ago but was rejected without
explanation. Of course, now we are profitable enough to afford any software we
want but have stuck to open source as, well.. that's what we built our stack
on instead ;-)

~~~
lazyjones
Don't forget StackOverflow: [http://highscalability.com/blog/2009/8/5/stack-
overflow-arch...](http://highscalability.com/blog/2009/8/5/stack-overflow-
architecture.html) \- apart from the somewhat unbelievable PlentyOffish
project, it's the only prestige project based on MS software most people will
recall. In their 2011 update, they claimed to be using "a lot more Linux
machines", because apparently it's fun to develop using Microsoft technology,
but for some infrastructure components (proxying, Nagios...), there's no way
to beat Linux even if you're a MS fanboy. ;-)

~~~
adventured
Plenty Of Fish shouldn't be considered unbelievable. I've been following
information about their infrastructure from the first moment they posted about
it. There's nothing unbelievable about it at all. Over the years he has openly
described changes to the site's setup as they've scaled, and it makes fine
sense.

Stack isn't the only prestige product. Nearly all of Microsoft's
infrastructure runs on their own dog food. That's a lot bigger of a product
than Stack Exchange is.

------
growt
I don't want to bash microsoft or anything. But 2.5 daily visitors and 1.5k
new tickets daily can probably be served by nginx, a raspberry pi and a
potato.

~~~
3pt14159
500px hosted 10x that on a Mac mini with a USB hard drive when they were
starting out.

~~~
growt
thats a really bold decision for a photo hosting site. has anyone coined the
term "minimum viable hardware" yet?

------
Spooky23
How much of this is old-school admin practices vs. the new "cloud" philosophy
of spinning up lots of boxes that you don't care about? I don't see a
Microsoft vs. Open-source argument for alot of this stuff.

Many of the devs I see working with "cool kids" tools don't know anything
about operating IT environments, yet they are playing admin. They're spinning
up dozens of single-purpose VMs, sometimes to perform trivial tasks.

The motivation is often to reduce the need to have dedicated admins ($$$) and
change process (time). But... managing dozens of VMs ain't free either!

~~~
viraptor
It's not just a cool cloud thing. Managing multiple services on a single host
comes at its own price too. Trying to manage security separation, disk space,
specific user access, projecting bandwidth / cpu / memory / disk usage in the
future, figuring out which services cannot run on the same host for yet
another set of reasons. Then you add HA for only one service and end up with
host A with services X,Y,Z and host B with X,P,Q.

There's a lot of great things about being able to say - these are the two DNS
boxes. They pretty much serve static data and have minimal traffic - stick
them on two minimal instances which cost us ~0, but give a very high isolation
from other failures.

~~~
Spooky23
It depends on the technology stack that you're using. If your apps are
.Net/CLR-based, it's very possible to get the separation that you're looking
for. On Unix this is done all of the time with JVM-based apps as well.

End of the day scaling horizontally or vertically requires real engineering
and operational discipline. I am seeing much more sloppy horizontal scaling
than I used to, because the marginal cost of a VM is so low.

The difference is, when scaling up everyone intuitively understood that many
services on one OS instance introduced risk. When scaling out, I think people
with weak ops backgrounds intuitively feel that the OS instances are giving
them a security barrier. That's a dangerous assumption!

The simplicity of spinning a VM is obscuring the complexity of the system as a
whole.

~~~
viraptor
> If your apps are .Net/CLR-based, it's very possible to get the separation
> that you're looking for.

I'm not sure I follow. Unless I'm missing something, the only thing this
separates is the memory between applications and optionally user privileges
via the standard permissions / security domain. Other resources are completely
shared - that is, one app can fill the disk / bandwidth / server thread pool /
... of other apps, right?

------
pathy
>"But most importantly, because the customer doesn't give a darn. My clients
don't care what I'm based on as long as it works. So when choosing a platform
for your great idea - just go with whatever platform you're comfortable with
and start hacking, stop wasting time."

This is really the best advise. What you actually use is less important than
you being comfortable with using it (assuming it is not something totally
bonkers). The customers want results, they don't care if you wrote it in Ruby
or .net. They won't know the difference anyway.

------
jasonkester
I'll pluralize this anecdote.

Every bit of my little software empire runs on a single Windows box. That
includes my 3 main money-making products, a couple dozen smaller sites being
hosted for consulting clients and my partner's businesses, and the Expat blog.
Lots of steady-state traffic to lots of sites, several Techcrunch, Reddit and
HN poundings, nothing to write home about as far as downtime or drama in the 6
years it's been running.

Say what you like about Microsoft, but their server stuff just plain works.

~~~
toomuchtodo
I've worked in IT for 12 years. Microsoft server stuff never _just works_. I'm
in the process of replacing a $1 MM video asset management system that sits on
top of Windows Server with OpenStack/Debian _precisely_ because of this.

Microsoft server _just works_. Hah!

~~~
jmj42
I've worked in IT for more than 15 years. More often than not, Microsoft's
enterprise products do "just work." In fact, due do volume pricing (making
server 2008/2012 licenses very cheap), around here I recommend Server 2012 w/
standalone LDAP role when people need an LDAP server. Why? Because it just
works.

An a related note, I, too, am in the process of building a new video
management system based on windows (why anyone would want to sit and stare at
solar PV panels all day is beyond me). Install and set up has been a breeze.

Don't get me wrong, I'm more likely to use linux for things. Most of my
development is done on linux, our video wall display management, AMI emulation
platform, any many other tools and utilities, but MS does have its place, and
where it fits, it usually beats everything else in set up configuration and
management.

~~~
toomuchtodo
Have you ever had Active Directory go sideways? I mean, really badly? In a
large (100+ employee) setting? If not, please don't say "it just works",
especially when you're calling to get "enterprise support" from Microsoft and
not even the engineer you're on the phone with can explain why your
configuration is failing.

Microsoft might have had its place. On the desktop. 5-10 years ago. But for
environments where you need uptime? No. No. No.

EDIT: With regards to your video management system, does it have to be
broadcast grade? Mine does. The FCC doesn't let you explain away fines for not
being on the air "because the Windows box crashed".

~~~
jmj42
100+ Employees? Well, my current environment is about 500,000 users across 3
campuses, and 4 domains. Throw in federated authentication (shibboleth),
custom apps, *nix auth, etc.

With that in mind: It just works!

With any large deployment (100 users isn't large) there are bound to be
difficulties. That isn't the exclusive realm of Microsoft. As mentioned
elsewhere, have you ever done a large deployment of kerberos? I have. I'll
take AD on the infrastructure side any day. "Sideways" AD is a whole lot
easier to manage than a sideways MIT Kerberos5 KDC.

Microsoft does have its place. In the enterprise, in the server room, today.

------
_jmar777
Just a few points:

1) If traffic is low enough, you can fit 100+ different apps on 8GB of RAM,
regardless of tech.

2) Hourly backups are better than nothing, but not good enough if you want to
make claims of durability and/or high availability.

3) BizSpark is more or less a loophole (they don't always accept), and when
they do, you have to hope you go out of business w/in 5 years or never make
more than $1M in revenue, or you're out.

4) Snarky comments about what the "cool kids" are doing hardly (in)validates
anything.

5) If you enjoy the Microsoft stack and it works for you, then awesome. We're
developers and should enjoy what we work on day in and day out.

6) My current projects have me bouncing back and forth between Node.js and
.NET on a daily basis. Aside from getting an order of magnitude more enjoyment
from developing w/ node, I'll also add that our node servers (plural) have
been running for ~2 years for a total cost that isn't even approaching the
cost of my Visual Studio license. If that makes me a "cool kid", then I'll
rock that sag all the way to the bank (if cool kids are still sagging, that
is).

------
cl8ton
Our startup diphur.com is 100% Microsoft and also went through the BizSpark
program and highly recommend it.

When you exit the program you get to keep all licenses free with all future
patches. We exited the program 2 years ago and have yet to buy a MS license
for IIS or SQL.

When we upgrade to Windows 2012 which is not free, we will let our business
plan we implemented pay for it and choose our MS Server versions according to
function.

------
eduardordm
80% of my costs come from securing client data and having a HA environment. We
were using Oracle DB for many years, switched to PostgreSQL last month due to
usability problems, not cost.

I hope you make clear to your users that there will be data lost (to the point
of your last backup) in an event of failure (which is certain thing in AWS).

If you think Multi-AZ will save the day: we lost a whole region of data in
2011 and again in 2012. If we didn't have a slave node on another region, we
would have to restore a 13 hours old backup, that would pretty much make us go
bankrupt.

------
voidlogic
The author doesn't explain why his stack is better than Java/Scala/Go/C#(Mono)
+ MySQL/Postgresql + Linux/BSD.

You don't have to use Ruby/Python/PHP/Perl/node.js to have an open stack. What
happens in 3 years when his bizpark runs out? What happens if he is successful
before then and is running many servers and DB instances.... What if he need
to re-arch to support HA?

Its almost like his argument is.. meh.. in the short term running a Microsoft
stack wasn't overtly harmful, since its what I am used to I discarded other
considerations...

------
stugrey
BizSpark is fantastic, not for the free MS software but for the $150 a month
of free Azure use for 3 years. For my bootstrapped project which has a
significant server-side component it has removed my only monthly expenditure.
There is also no compulsion to use MS products or to develop for Microsoft
platforms either as i'm using Azure to power the Linux based backend of my iOS
app.

------
jaredstenquist
One server? Not much redundancy in that setup. It's no wonder your costs are
so low.

------
Flavius
BizSpark is kind of awesome for startups. Even if you're not "Microsoft-based"
you can still take advantage of their free software (Windows, Office etc.)
which otherwise will cost you a small fortune.

------
earlz
I'm amazed that more people don't use Mono. Best of world to me is using
Visual Studio for local development, and then deploying to a Linux server
running Mono and Apache/Nginx. It's actually a lot less painful than people
think, after you get ramped up a very small learning curve as to what is not
supported in Mono.. And if you want to go completely free, MonoDevelop also
isn't too bad, though you will find an occasional bug

~~~
venomsnake
Unless mono has improved dramatically in the last 5 years it has that poor
man's C# feeling about it - when I had to develop for it was nightmare - it
had problem managing a lot of io buffers and silent improvements like making
dictionary thread safe had some very very bad side effects in non blocking io
applications.

------
lmm
So compare like with like. If you had a similar architecture using open-source
equivalents - not trendy mongo/node/etc, just basic Java/postgres - what have
you got? A similar, slightly worse language. A much bigger open source library
ecosystem. Similar, slightly worse IDEs. Better admin and deployment options.
Free licenses forever, rather than until MS decides they want you to start
paying.

You can write distributed large-scale SoA under microsoft, and you can write
high-performance monolithic applications under open source. Stop conflating
two very different issues.

------
workhere-io
I totally understand the "I like C#" argument - that's a personal taste, and
we all have personal tastes when it comes to languages.

What I don't understand is the "we can run it on one server, so Microsoft is
better". The same sites could very easily be run on open source software on
the same hardware or even less. I've never heard anyone, not even Microsoft,
claim that Microsoft server software requires less RAM and processing power
than open source software.

~~~
voidlogic
Yeah, not to mention I am sure he could run C#Mono/MySQL/Linux on one server
as well...

------
endeavour
Don't forget about Mono. You can write code in your favourite MS language (F#,
in my case) and have all the benefits of cheap linux hosting and your
favourite SQL database/NoSQL solution.

[http://thecodedecanter.wordpress.com/2013/06/22/hosting-
webs...](http://thecodedecanter.wordpress.com/2013/06/22/hosting-
websharperasp-net-apps-on-linux-with-mono-nginx/)

~~~
boothead
How do you find integrating mono hosted apps with the Linux toolset. Do you
use anything like chef/puppet/ansible?

(Sorry If you've answered in the article - I can't read stuff on WP at work)

------
joshuaellinger
BizSpark is a better deal than most people realize.

You get permanent licenses and a decent amount of cloud hours. You get office.
You get dev tools.

When the program finished, if you are not making enough money to afford to pay
them, then you should just shut down and do something else. But even if you
keep going, you can probably live on old versions for 3-5 years before it gets
too painful.

------
srameshc
I really don't see any point why this post has been upvoted to this position.
This someone got some discount because of being in some MS sponsored program
and has no clue on how safe or unsafe his architecture is and has absurd
rational on pricing. Good for him if he is happy to build with his MS gifts.
Only if I could down vote this post and down rank it to absurdity.

------
vittore
Stack overflow was another great example of hi load project on .net

------
tbrock
Wouldn't you be doing something horribly wrong if you couldn't serve 70k
requests a day? It's actually less than 1 a second: 70000 / (60 * 60 * 24) =
.81

I think this article is more about distributed systems being costly (yes) and
perhaps overly complicated for the types of applications most people build. I
agree. However, you could easily do the same with Linux.

~~~
jzwinck
Requests to a typical smallish site will not be uniformly distributed--not by
a long shot. Given that the peak is what matters, if we might get a day's
worth of traffic in a single hour, that's 19 requests per second instead of
0.8. Those 19 transactions per second will still sound tiny to many people,
but a couple months ago we heard that Mt. Gox could only do 37 TPS. So 70k
requests per day is not nothing, especially assuming non-uniform distribution,
minimal effort to optimize performance, and cheap hardware (or virtual
hardware).

~~~
venomsnake
On my home dev machine which is nothing to brag about (i5-750 overclocked to
4.2 ) golang was able to process that per second on a single core if you keep
the static stuff prezipped in the ram.

------
ebbv
I don't see what the anecdote about the other person has to do with your
story. It seems like you're citing it to try to imply that Linux can be
expensive, but that's not really a valid point based on that anecdote. Their
software costs were $0/mo of that $3000/mo. Linux has nothing to do with
whatever reasons they had for such expensive server costs. There is no
question that whatever their server costs, they would have been even higher if
they had been Microsoft based.

Secondly, I'd disagree with your assertion that the customer doesn't matter.
Customers may not care when they're using your SaaS product, but my company is
in the market for new support software and we looked at yours but because
yours is Microsoft based, it's disqualified. We are looking for a self hosted
solution. So you lost at least one customer right here. I'm not making this
up, this all happened a couple weeks ago prior to this blog post.

EDIT:

PS - I liked your previous blog post about A/B testing, so it's nothing
personal I just think this one is kinda bogus.

~~~
codeulike
_Linux has nothing to do with whatever reasons they had for such expensive
server costs._

It might do. The point is that Node/Ruby etc aren't particularly efficient
compared to C# and the CLR, so you need more Server power for a given
application.

For example StackOverflow ran from a single windows server in the early days,
they didn't add a second one till Oct 2008
[http://blog.stackoverflow.com/2008/10/adde-a-second-
server/](http://blog.stackoverflow.com/2008/10/adde-a-second-server/)

~~~
spamizbad
Techempower's benchmark's paint a different story than you describe. Node.js
seems to be the fastest. ASP.NET MVC shows some strong performance in a
handful of database tests but when it comes things like json serialization etc
it falls behind the competition.

[http://www.techempower.com/benchmarks/#section=data-r5&f=ug-...](http://www.techempower.com/benchmarks/#section=data-r5&f=ug-13ydj4-0)

Edit: FWIW it doesn't test Microsoft SQL Server. Still, for most simple-ish
web applications I can't imagine MSSQL server being significantly faster than
Postgres or MySQL. Its selling point is really its feature set as opposed to
its performance anyway.

~~~
TheAnimus
>Edit: FWIW it doesn't test Microsoft SQL Server. Still, for most simple-ish
web applications I can't imagine MSSQL server being significantly faster than
Postgres or MySQL. Its selling point is really its feature set as opposed to
its performance anyway.

More than just that, they tested mono, which sadly is often very slow, and
didn't test on IIS.

~~~
bhauer
The ASP.NET tests run on Windows (EC2) used IIS. We have a SQL Server pull
request [1] but haven't been able to incorporate it yet and this will not be
included in the upcoming Round 6.

[https://github.com/TechEmpower/FrameworkBenchmarks/pull/336](https://github.com/TechEmpower/FrameworkBenchmarks/pull/336)

~~~
TheAnimus
The problem is the comparisons are a bit tricky.

For instance why is the performance in the Fortune example so good, yet so bad
in the simple multirequest response.

Ultimately, I think people have to bench with something in mind for their
intended usages.

If someone (as in this thread) is doing some massive data gathering with 6000+
nodes, well windows licenses will be prohibitive against any dev time saving,
and ultimately, performance is going to be optimised so heavily a 'thinner' OS
is obviously going to be a possible better choice.

This isn't always the case, for us the agile nature of what we are doing, the
fact it's only a couple of hundread nodes means that we will have different
demands.

Platform Performance, Platform Cost, Platform Dev Costs.

It is just an exercise between those three. Looking at some of the comparisons
there, it reminds me of the whole BSD vs Linux thing that was so 2004. Oh BSD
takes a few extra op codes to do hello world....

The problem is some people never include the use of say MVC4 or C#. It isn't
that they are missing out, it is that they are so vocal about how bad the
platform they have never used is.

The last HTML site I delivered, I could have done in about a third of the
time, with much more reliable user experience if we had used Silverlight. It
was an internal project too. Yet someone who had never even used anything but
HTML decided it had to be a website.

I think people are just trying to rally against that cry. All I was trying to
do is point out that those simple number comparisons are not only flawed /
unfair but also irrelevant.

There isn't a one size fits all technology, there never will be.

------
icefox
The final paragraph seems to answers his question with the statement that it
is simply "what he knows best". And in fact the rest of the article backs that
up with his lack of information about alternatives (as many of the comments
here point out). There is nothing wrong with going with a solution because it
makes _you_ more productive for your small problem, but trying to make any
conclusions beyond that seems forced. I am 100% sure that there is someone who
could write the exact same article, but instead they use a single Linux box
with PostgreSQL, emacs, etc because it is simply what they are comfortable
with.

------
antihero
Ok, so I'm on about day 3 of trying to get a MS ASP.NET 4.5 environment set
up, and I feel like killing myself. Every download is gigabytes and gigabytes.
It feels like everything wants me to reboot my PC. Installations take hours at
a time. On opening the project, half the references are gone, and I have to
rebuild (takes ages) the solution to figure out what exactly is missing. Using
NuGet doesn't seem to actually install many of the things and so I have to
manually do it and wonder why some need me to put -pre on the end. SQL Server
is a ~4GB download. Everything is hidden away in weird little dialogs and
installation steps that if you mess up you have no idea how to fix. Windows is
now taking up about 50GB and it's rising. Install steps appear to do nothing
and then spring a window up after about five minutes. I don't know what is
going on.

My co-worker and I just want to sob and have this nightmare finish. I never
want to use Windows ever again. I need a fucking drink.

I miss being able to `apt-get install python-virtualenv postgresql-9.1
virtualenvwrapper; mkvirtualenv derp; pip -r requirements.txt` and be pretty
much set up.

On the plus side I've read quite a lot of this book...

------
maxhowell
I'd consider Windows more readily, but you are a bit screwed if you do decide
you want to dip in the Open Source pool. You can dip there, but it's harder
and less well supported, and some things simply don't work. So you are tying
yourself to Windows, and often, Microsoft tools. Fine if you're _sure_ it'll
work, but I would feel like I was gambling.

~~~
statictype
We're building a web-based saas on a Microsoft stack. We use coffeescript,
sass, compass in our development environment and it works really well. There
are open source libraries for doing REST, unit testing, performance testing
and they work pretty well. Node.js and npm run on Windows. Mercurial always
has and git now works as well.

What are the components that you miss?

~~~
bayesianhorse
It does sound a bit as if you were using a node.js stack on top of a Windows
operating system, which I wouldn't exactly call a Microsoft stack. In which
case there is really just the question of what you know better, linux
ecosystem or Microsoft...

~~~
statictype
No, we're are using a Microsoft stack - ASP.NET MVC and Sql Server.

We're not actually using Node.js in that sense. I was just pointing out that
it works well (we use Node and npm to run the coffeescript compiler - that's
it)

------
hudo
I have several dozen asp.net sites and one startup (asp.net + background
services). And people ask me why I use MS products, they are expensive. But
reality is: prices of win shared hosting are almost exact like linux shared
hosting. Windows licence on Hetzner (or many other win VPS providers) is
15€/m. I don't mind paying 15€/m, I spend more on coffee and cola, and dont
make any money from that. And for database, if sql express is not enough, I go
with mysql/postgre, simple as that. I also played with ruby and php little
bit, but don't find any special advantage or stuff that are
hard/complicated/long to do in .net, even they're nice products (RoR at
least). All those tools looks very similar to me, and hosting price on
VPS/cloud is really low also today. Maybe one thing that's missing in .net
compared to some other ecosystem is community, but last few years that changed
a lot (to better of course).

------
etherael
2 SP3's from OVH would be both cheaper (89*2) and have way, way more bang for
the buck than a single weak amazon instance. (E3 1245v2 8 ht cores @ 3.4ghz ,
2 x 120GB SSD in soft raid and 32gb memory) If you wanted to run windows on
those, you'd need to buy two licenses pushing an extra 50$ a month onto the
price. You also wouldn't need to screw around with spawned instances in
failover, and you could actually use the capacity of both systems at the same
time to massively increase your initial capacity before it becomes necessary
to expand that investment again and get more steel.

None of your windows based software will scale well horizontally, especially
at the storage layer compared to the competition, and if you're relying on
bizspark for the price advantage, you should also mention it expires in 3
years and you then either have to go full in to microsoft licensing and
massively increase your software spend, or drop your engineering investment in
the past three years and go with something off the MS stack. It sure is a neat
trap from microsoft's perspective, but it's a pretty shitty deal for anyone
that actually looks at it economically and long term.

On the other hand, if you build your apps around a horizontally scalable
storage solution (of which there are about fifty hojillion these days on open
source stacks) you have near infinite ability to scale upward by just throwing
more boxes at the problem. Visual Studio may be very pretty but for a nice IDE
you drop a well behaved git, and everything that goes with it.

You also lock your software engineer options to people that are satisfied
working on the MS stack, which whilst acknowledging that anecode is not data
and all, in my experience means that you will get poor results.

If you look around and all you see is masses upon masses of startups pursuing
fairly similar infrastructure strategies, you should probably think very hard
about why everyone else thinks you're wrong before you're certain you're not.

From my perspective the equation looks like this;

Pros;

Visual studio.

MS CLR performs well against python / ruby / php.

In a single server environment, you can probably get away without any sysadmin
expertise.

Cons;

Everyone has to use Windows.

Storage layer doesn't scale well horizontally.

Git not so great. (apparently this no longer applies and msysgit works
perfectly well now)

CLR may perform well compared to interpreted languages, but not so great if
you're willing to go a bit more esoteric or if you're happy with boring old
java.

Application server scaling is largely the easiest part of any horizontal
scaling stack at any rate, minimising the significance of your competition
using even extremely slow interpreted languages.

Licensing fees are infinitely more than the (typically free) competition. When
BizSpark expires, even moreso. And you bought yourself a nice solid vendor
lockin by using their sandpit in the meantime.

You're stuck with microsoft monoculture and all the associated baggage that
implies from a HR and strategy perspective.

Most of the stuff everyone else is using that you might want access to works
either not at all or poorly on windows, meaning when you run up against the
same problems as your competition, they'll have more ground on you from the
get-go. (ansible, redis, practically every NoSQL db in existence, etc etc etc,
pick a problem space you need to find a solution in and compare the MS CLR
based options to "everything else" and MS rarely comes out on top unless it's
dealing with MS proprietary formats or interfaces in some way)

~~~
51Cards
> Cons; > Everyone has to use Windows.

That is a personal opinion. To me it's not a "Con", just a personal choice. I
work on both platforms (Windows and Linux) and I don't view either one as a
Pro or a Con. Just a different environment. If it's not your first choice
doesn't make it a bad choice, which I think summarizes a lot of the article in
question.

~~~
etherael
It's a con because _everyone has to_ use windows, not because of using
windows, an open source tech stack typically works just fine with both Linux
and Mac using devs, and has leftovers for windows users. An MS stack?
Everyone's stuck using windows, and many people hate it. That's what's bad
about it, not that windows is necessarily bad in every use case.

~~~
TheAnimus
>everyone has to use windows

They do?! Oh dear, I'd better tell the DBAs about that.

They only need to use windows if they want to run IIS or Visual Studio.

There is a hell of a lot more to the sort of infrastructure a lot of people
use .Net for than that. Hell I was working with a bizarre mainframe relic last
year in it.

That isn't to say for a lot of usages, anything that isn't the latest windows
is a poor relation, the latest debugging features for TPL require 8.1.

~~~
etherael
> They do?! Oh dear, I'd better tell the DBAs about that.

You mean the MS SQL DBA's? Cause generally that's what people in MS shops are
going to be working with, should they not be able to run tests on MS SQL and
write SQL scripts locally to actually test on their environment and get
results? Perhaps I do not understand what being a DBA actually entails, but I
assumed that it would necessitate extensive experience with the actual
database, up to and including running it yourself locally for development?

------
gtani
I have no beef with MS (disclaimer: I don't have any close friends who work
there but I do live in Seattle area and talk to lot sof people in the
C#/C++/F# spheres). The one problem here is the C++11 implementation and how
it's been rolled out, or not in the VS 2012/2013 releases. If anybody's
interested, /r/cpp has herb Sutter and a couple other MS people dialoging:

[http://www.reddit.com/r/cpp/comments/1harvz/microsoft_switch...](http://www.reddit.com/r/cpp/comments/1harvz/microsoft_switches_to_annual_vs_releases_promises/)

[http://www.reddit.com/r/cpp/comments/1h47qi/herb_sutter_the_...](http://www.reddit.com/r/cpp/comments/1h47qi/herb_sutter_the_future_of_c_build_talk_on_friday/)

------
OptimusSubprime
You're bragging that your SaaS app, which serves hundreds of paying customers,
runs on a single EC2 instance? lol

------
bad_user
Meh, I have an instance hosted on Linode for $26 per month (price includes
backup + 1 additional IP used for an extra SSL certificate).

My Linode hosts about 3 static websites (2 blogs generated with Middleman [1],
plus one Maven repository in which I publish stuff). It also hosts a Wiki and
a CRM (both powered by Ruby / MySQL). So that's Ngix + Passenger + 5 MB of
Memcached + MySQL + file storage.

I also host several apps I've made on free Heroku dynos, which can get you
quite far if you use Scala/the JVM in combination with all the freebies ;-)

[1] [http://middlemanapp.com/](http://middlemanapp.com/)

------
rottyguy
While the article speaks of server costs and such, lest us not forget (from
wikipedia but, I believe, attributed to Larry Wall):

"The design of Perl can be understood as a response to three broad trends in
the computer industry: falling hardware costs, rising labor costs, and
improvements in compiler technology. Many earlier computer languages, such as
Fortran and C, aimed to make efficient use of expensive computer hardware. In
contrast, Perl is designed to make efficient use of expensive computer-
programmers."

Thus having your people accomplishing things in a more efficient fashion
trumps all :-)

------
1010011010
Sucker.

Microsoft cannot be trusted. They'll change the game out from under you at
some point and you'll have no recourse, because you're depending on
Microsoft's proprietary software.

------
3amOpsGuy
This article could really do with a disclaimer at the top. I got about 25% in
before i realised there was more than meets the eye (i didn't previously know
who jitbit were, i had no idea of their Microsoft relationship).

Something like "we're a member of Microsoft's BizSpark program and you can
find out what that means for us here:
[http://www.microsoft.com/bizspark/About/Default.aspx"](http://www.microsoft.com/bizspark/About/Default.aspx")

~~~
Encosia
Anyone can get into BizSpark. It's not a special relationship. It basically
just requires that you have a company of some kind formed and ostensibly are
building some kind of software targeting the Microsoft ecosystem.

------
dawkins
I switched from windows/.net/SqlServer to linux/mono/MySQL two years ago and
in a single server I handle among many many other things 10k-20k
reservations/day.

The server is a small dedicated machine with 8 cores and 16GB ram but never
goes beyond 30-40% cpu and 2GB ram. This in Hetzner for about 60€/month.

So I don't understand what the author finds so amazing about the numbers he
posted.

------
midnitewarrior
His point is, it's dirt cheap to do any solution, and all that matters to the
customer is customer value, assuming you are on a platform that can deliver on
the "ilitys" (maintainab-, reliab-, supportab-, etc.), which Microsoft can.

The thing he doesn't point out is how much cheaper it would be if he dumped
the VM and went with Windows Azure Cloud Services.

------
yatendra
For my side projects I use Visual Studio express editions (free) and use
postgres (local) for one and mongodb (hosted at mongolab) for another for
storing data. I host both of them on 1 VPS with single core and 1 GB of RAM.
So All I am paying extra is 2$ a month for a windows vps instead of a linux
vps, and I think that 2$ extra that I am paying is well justified.

------
Kudos
From your marketing:

> Small enough to be personal. Large enough to be stable.

What happens when your one server goes offline?

------
eddieroger
This was the most relevant bit, far as I can tell:

>> Because I love C#

Fair enough. If I liked C#, I'd live in a Microsoft world, too. I don't,
though, and without this being a language war, the ones I like are easy enough
to set up on Linux, and tend to be a heck of a lot more stable and easy to
install, too.

~~~
tinco
> Fair enough. If I liked C#, I'd live in a Microsoft world, too.

That says more about you than about C#. I like C# too, I think it's the best
imperative statically typed language out there. If you'd take the time to
research it you'd find that it's easily the most advanced and developed
language out there period.

Still, I think the whole statically typed idea is not feasible for large
applications. So I use Ruby for professional stuff, and C# for performance
critical things (like videogames).

Visual Studio lifts a lot of the pain of developing on Windows (which is still
rather painful).

------
mbubb
i was a bit coffee deprived when I read this and was starting on a teeth
gnashing trollfest - but then realized it is 'JitBit' not 'FitBit' which I
seemingly need to find a Windows machine to get to work...

Then was interested in this article because at our company we have 400-500
servers - mostly Ubuntu with some CentoS and FreeBSD. Lately we need WinSvr to
run a BI app that generates nice visualizations for datasci to feed business/
sales.

Funny how not one sysadmin wants to touch this project... ;)

That all being said, the developer affection, in certain neighborhoods, for C#
and .Net seems genuine, which makes an argument for developing an app on this
platform - that seems clear.

I do not see this scaling out however. And historically Microsoft largesse (in
education, research or with this startup initiative) has a way of drying up...

------
microcolonel
Another opinionated, lame IDE addict thinks that his stupid little startup is
an example for others, wow HN, didn't see that coming.

“I found an expensive hosting package, and compared it to a less expensive one
from another provider running Microsoft Windows” is a really compelling
argument.

------
KeyBoardG
All that on one machine? I hope it doesnt go down and you lose your entire
company. You should have several redundant instances.

You also breezed over the license costs for VisualStudio, Windows Serer, and
SQL Server.

------
warrenmiller
"Becoming a member of their "BizSpark" program literally provides you with all
the software free of charge. Entering BizSpark is easy and costs nothing"

Not true. After year 3 you start paying.

------
coderguy123
MSDN subscription(for work) comes with Azure hours. I can run 6 768MB linux
VPS for free. sure I will use MS.

~~~
sixothree
Where can you get 6 linux vps for free? And why would you use 6 VPS as opposed
to one?

------
victorlin
You're rich man, dude :/

~~~
TillE
Yeah I really don't understand how anyone can justify paying for a constantly-
running EC2 instance. Amazon's prices are absurd; even Linode is better value.
For $200/month I could rent _three_ dedicated servers with vastly better
hardware specs.

~~~
pplante
i am curious which datacenter you're looking at. mind sharing?

------
gregd
I have to wonder, why not Azure?

------
whydo
Why do some people just love locking themselves into closed platforms?

~~~
pjmlp
Because of return on investment.

~~~
whydo
You can have return on investment without locking yourself into a closed
platform. You don't have to lock yourself into a closed platform for ROI.

------
cm-t
1st July fool ?

------
lifeisstillgood
If you are defining your startup based on the _operating system_ of the
servers, you are really really looking the wrong way.

As you name-checked Amy Hoy in the first paragraph, I assume you follow the
30x500 list, or at least know of it, which is pretty basic common sense - and
all of it focused on users not servers.

Now - stop flame-baiting HN and get out of the office

;-)

------
danso
The reference to Amy Hoy's Charm is interesting, just because that was such an
interesting (and somewhat distressing scenario, if you're into RoR and
Ubuntu).

But to say that the Windows architecture is significantly better bang for the
buck requires more of an apples to apples comparison. The best I can find is
that Hoy describes Charm as having 3,800 interested users in Oct. 2012...The
OP describes having hundreds of companies (each with a variable number of
users) issuing about 1,500 support tickets daily.

(I'm not counting the traffic visits to the blog because that should be
trivial, in the scheme of things, to manage...though I guess kudos for putting
it on the same server as the software platform?)

I guess knowing the other costs, such as developer time/salaries, would be
helpful.

~~~
throwa
Two of the biggest help desk app on the web are running on rails. Salesforce
helpdesk app with this as its url [http://www.desk.com/](http://www.desk.com/)
and ofcourse the helpdesk startup
[http://www.zendesk.com/](http://www.zendesk.com/).

Based on the facts above, I submit to you that there is nothing interesting
about the reference to Amy Hoy's charm (and there is nothing in there to
depress a rails developer using ubuntu).

As far as I am concerned, Amy Hoy's app did not get the kind of traction they
envisaged simple. Hence they shut it down.

I am sure that both jitbit's app and Amy Hoy's were not as big customer wise
as that form Zendesk and Salesforce. I am sure their traffic numbers wasn't
anything near what zendesk and desk.com does.

