Lightweight Models & Cost-Effective Scalability

6 May
2010

Lightweight Models, Oh-my!

Cost-Effective Scalability, Oh-my!

Lightweight Models & Cost-Effective Scalability, Oh-my!

Lightweight Models & Cost-Effective Scalability, Oh-my!

It might seem like a quest to have the best of everything but Lightweight Models & Cost-Effective Scalability isn’t that mythical. You don’t have to battle the the wicked witches, but that doesn’t say it is a simple path to take either.

So lets talk about an example that exists out there already:

Wikipediawww.wikipedia.org

We all know what Wikipedia is but in case you missed it (perhaps your just starting to use a computer?), Wikipedia is a free-content encyclopedia that is based on an openly=editable model. It allows users to add articles/pages and also edit existing ones in a self organising way.

So lets take a look at some stats and see how large Wikipedia is, bear in mind this is only the English side of Wikipedia and doesn’t count for other languages.

English Wikipedia Statistics
Wikipedia is running MediaWiki version 1.16wmf4 (r65975).
It has 3,284,100 articles, and 20,270,597 pages in total.
There have been 385,317,574 edits.
There are 846,860 uploaded files.
There are 12,270,511 registered users,
including 1,721 administrators.
This information is correct as of 03:31 on May 6, 2010.

I’ve also put together a more visual representation taken from the wiki stats page, Click to enlarge the view!

The visual size of Wikipedia if printed out
So there is no doubt that Wikipedia is large, and they have use an Open Source, Scalable solution across multiple servers, multiple countries, etc. All with less than 30 staff members dedicated staff members. Of course you don’t have to be as large as wikipedia to use the software and there are in fact many smaller sites that use the same software. You might not have the large economies of scale either, and that doesn’t matter because there are effective solutions out there.

Enter LAMP, a solution stack of open source software that is ready to take on your needs. LAMP is actually an acronym (not a light stand) that represents the key open source software packages.

Linux – An operating system
Apache – A HTTP web server
MySQL – Database software
PHP – A language in which you can code web pages

LAMP allows you set up and host your own site with ease, it is scalable and as for the cost effect side – it is Open Source. I’ve heard lots of rumours but I haven’t been able to find any ‘hard facts’, but major sites like Facebook and Flicr are based on LAMP, or at least were at some stage. I could say my site is based on a LAMP distro to also make a point (but it isn’t), however there is nothing stopping you from starting your own site and doing so.

The next biggest craze though is cloud-computing and business creating their sites of API’s, and renting CPU power from Google, while hosting data on Amazon S3, etc. The reason I avoided this is because it is very much on the hype cycle and I don’t feel comfortable not having that much control. This might be changing (and it looks so), but it is hard to recommend outsourcing a solution when you can get started yourself easily with LAMP!

8 Responses to Lightweight Models & Cost-Effective Scalability

Avatar

Jonathan Packer

May 6th, 2010 at 9:42 pm

Wikipedia is a really great example of lightweight architecture and scalability. In fact, they are probably THE example. Everything about Wikipedia screams lightweight, you can straight away see while it scales so well.

I agree that it’s hard to relinquish the control that you get by having direct access to the database, but you’re trading it for extreme reliability & scalability. For example, say your site, hosted on a personal LAMP server sitting in your garage, suddenly got to the front page of Digg. It’s not going to last very long :P . On the other hand, with cloud hosted apps, they seamlessly scale to suit the traffic, so no matter whether you have 10 or 10 million visitors every day, the speed is exactly the same. There’s just no way to have that kind of scalability and the control that LAMP gives you, yet. Hopefully one day.

Avatar

Rod Howarth

May 8th, 2010 at 5:23 pm

I believe that facebook has now created their own custom version of PHP which is precompiled rather than interpreted. They also don’t use MySQL anymore they use cassandra (http://en.wikipedia.org/wiki/Apache_Cassandra) however Facebook would not be anything if it weren’t for Mark Zuckerberg programming with PHP and MySQL in his dorm room they would not have had the opportunity to scale up to these more powerful technologies.

I agree with Jonathon, cloud computing is such a great advancement in scaling, and is so perfect for new web startups. You can have the power of Microsoft/Google/Amazons web servers on a pay per use basis, it’s great.

I do wonder, what effect does cloud computing have on LAMP? Does it make them less important? After all, the only difference in development costs for LAMP and the microsoft equivalent which is Windows, IIS, SQL Server and ASP.NET (web forms or MVC) is the cost of Windows and a SQL server license. If you are going to host it in the cloud, you are going to pay some sort of usage license for a database, and the CPU usage for the hosting, so the only cost to the developer is that of Windows, which isn’t much. I can code on Visual Studio Express, with SQL Express and then upload to Azure and I’d imagine the costs would not be a great deal different to if I did that with LAMP and Amazon etc

Avatar

Matt

May 10th, 2010 at 8:29 am

Hey Jason.
Good post. I was always wondering as well how Wikipedia is managing this scalability and reliability. Its amazing. But what do you think? Will Wikipedia start with advertisements one day? Because they grow up more and more and I guess (and as far as I know from the lecture Wikipedia is the seventh biggest website in the web) there is a very very cost-effective potential for wikipedia. For example all manufacturer or producers or whatever (who got a article of itself on wikipedia) could put advertisements there. I would regret it but nowadays money can (almost) convinces everybody….. :-)

Please visit my Blog
matthaisgehrke.wordpress.com

Cheers
Matt

Avatar

Samuel J Meddows

May 10th, 2010 at 1:49 pm

Hi Jason. I quite enjoy reading your posts. Every site I have created has been based from LAMP. In my opinion there is no need to go down the .net road unless you need to integrate with it. Yet even then there are heaps of connectors out there to allow you connect almost all code into a LAMP stack.

Avatar

Wei-Chen Chen

May 10th, 2010 at 3:04 pm

Wow, I never knew anything about LAMP being so handy and used everywhere. I’ve heard of it but this is the first time its being explained to me in such an understandable manner.

Avatar

Adam Carew

May 10th, 2010 at 10:00 pm

Great Post! Wikipedia really fits the Pattern well! before this lecture i had never heard of LAMP, just goes to show how easy it is to get a start in the industry if you have a unique idea…

Avatar

Anthony Nicolaides

May 11th, 2010 at 9:50 pm

Nice post Jason. Its interesting that Microsoft are making a cheap (almost free) version of their web server – obviously trying to compete with LAMP. The community around LAMP is really great and with Linux OSes such as ClearOS making it really easy to get up and running. MS have some catching up to do!

Avatar

Bec

May 12th, 2010 at 11:23 pm

Thanks for making me aware of these issues. I think it’s great that you are taking more control of your site and accountable for content.

Comment Form

top