2

I often see that Apache is used as a web server and also ruby on rails, php and so on is used. So all in all the most large social network companies using unix operating systems.

Because I want to develop also a small application (not which so huge amount of users hehe) I also want to know the best ways and what are the points I need to look for to get the best linux distribution for such an application.

Lets use twitter for an example. Why twitter ? Because its easy from the graphical user interface but it needs to process thousands of querys per second, cache them and so on.

So, please, can someone tell me whereon I need to pay attention in selecting the best linux distribution. Is there also often a customization in kernel ? And the last question: Mysql -> MyISAM or InnoDB ?

Thank you very very much!

Have a nice day.

Bye, Andre

5
  • Windows is also used to host large social networking sites. Myspace.com runs on Windows with IIS.
    – mrdenny
    Nov 28, 2009 at 18:05
  • 2
    From a financial perspective windows doesn't scale. Imagine if google had to pay for OS and DB license for each of their 300gazillion servers. How many cals would they need?
    – chris
    Nov 29, 2009 at 5:31
  • @chris they wouldn't actually need any CALs. They would use a external connector license for each site, which costs about $4k or so. Combined with Enterprise Site licenses to cover all license requirements the costs would be high, just not as high as everything would think they would be.
    – mrdenny
    Nov 29, 2009 at 21:04
  • @mrdenny -- I was a little tongue in cheek -- any time you do something on any scale, you talk to a salesdroid and negotiate. If it is a large enough agreement, you probably have meetings with lawyers and executive officers and compliance people. Or maybe golf and drinks.
    – chris
    Nov 30, 2009 at 2:15
  • @mrdenny -- and since I can't figure out how CALs work -- how would you "officially" license gmail users if google were using the MS stack. Would it depend on if you stored their identity in AD or if you just stored it in a DB on the server?
    – chris
    Nov 30, 2009 at 3:11

4 Answers 4

12

Use the OS which you know the best. That's how all the social networking sites have picked the platforms which they use.

4

When you scale a solution to the size of twitter or yahoo or facebook or google or whatever, you are 99.99% likely to roll your own solution. You'll be starting with off-the-shelf parts but you'll be adding so much problem-specific tuning and optimizations and customizations that the thing you wind up with will be totally unique to your specific problems and solutions.


Okay -- you added some more specifics so I'll add some more specifics:

The most important implementation detail is that you actually implement your idea. It doesn't matter if you do it with bash scripts and flat files -- if the prototype works and you get traction you can refactor it behind the scenes and make it faster.

You will never get users or investors if you don't actually make it.

So, as was said earlier -- build it with tools you know, are comfortable with, and can get the job done with. Most people only dream of building something poorly that needs to scale out because it is too popular.

3
  • I don't think that any of those companies write their own OS.
    – womble
    Nov 28, 2009 at 22:20
  • 2
    As I said "you'd be starting off with off-the-shelf parts but you'll be adding so much problem specific tuning and optimizations that the thing you wind up with would be totally unique to your specific problems and solutions." In other words, you'd have your own diffs against some antiquated kernel, your own distribution, and a whole bunch of totally unique additional stuff
    – chris
    Nov 29, 2009 at 0:36
  • 2
    But -- let's be realistic -- nobody wakes up one day and says "I'm going to do something on the scale of facebook." That would be foolish on a bunch of different levels. If the question is "which OS Should I use for my site that might generate a gigabit of traffic in bursts." the answer is "which ever one you know best." If you're planning on starting a service at the scale of facebook and you're asking how to do it on this forum, you're lost at sea with no hope of finding anything but a lot of salt water
    – chris
    Nov 29, 2009 at 0:41
0

You should consider OS like FreeBSD for the operating system (check Why use FreeBSD) and who already use this OS.

If you asking about Apache - check faster webserver like lighttpd.

And your last question... MyISAM is faster, but InnoDB gives you more features.

0

This is a kind of composite question.

On OS:

  • Run the OS that your developers are comfortable developing for
  • If given a choice, use the one which is preferred by your senior operations engineer
  • If AT ALL POSSIBLE, be consistent across your infrastructure; there is a big cost in maintaining multiple OSs or versions.
  • Take into account support from your hardware vendors

User experience and familiarity is more important than performance... plus also, it's going to make very little difference anyway.

As far as MySQL is concerned... use InnoDB because it is better in every respect for general usage. Use Innodb for new applications. MyISAM should only be used by legacy and special-purpose applications. Do not mix & match them.

You must log in to answer this question.