Running a Startup comes with lots of challenges, but if there be any startup challenge worth looking forward to, its the challenge that comes with scaling up. How do you scale up your service as your startup gains traction?
To worsen the story, we hear all sorts of arguments when it comes to this issue. So I decided to seek out Taiwo Orilogbon. Taiwo Orilogbon is the CTO of Jobberman, Nigeria’s biggest job search portal.
Jobberman is one of the most trafficked Nigerian websites on the internet and Taiwo de-mystified the myths behind scaling and why Jobberman stuck with PHP despite all the PHP is evil report we get everyday on the internet. Enjoy.
Can you share with us what the current Tech backend of Jobberman is like?
Jobberman as you know it currently runs on more than one server. Different servers handle different functionalities. We have servers handling data functionalities like MySQL, MemCache, Index server, etc. we also have servers that handle static files, running our 3rd party application, the main site, beta testing, etc.
We run basically on PHP and MySQL, with Apache as web server and Nginx in some cases, we also run on several other technologies that I may not be able to talk about right now.
Why did you pick this type of backend?
Sometimes you don’t pick these things, they pick you. Most time, some of them come as de-facto. When ‘starting’ a start-up, it’s advisable to run as slim as possible. Jobberman did not start with many servers, in short we started on a shared hosting platform but with time, we needed to scale both application and infrastructure to meet our traffic demands, hence what we have today, and we are still expanding.
A lot of people say PHP sucks, why is it still in use by Jobberman?
Many people, who say this, say it out of sentiments. PHP is a very powerful tool, which can make or mar depending on how it is used, unlike many languages, it doesn’t have restrictions.
I always tell people that the language is one thing and the programming is another. It’s just like this: everybody knows how to speak and write English language, but not everybody is an award winning speaker and not everybody is an award-winning author. It doesn’t matter what language you program in, if you’re not disciplined, you’re not.
There are people who write crappy codes with Java, there are even worse scenarios with languages like ASP.Net, where almost everything is already abstracted for you. I beg to disagree that PHP sucks; it might not be as fast as the compiled languages, but with several tools like xCache, eAccelerator, APC, etc, you can have it optimized. By the way, Facebook has about 1 billion users and they still run their website on PHP, so who are we to run away from PHP?
If you had the task of scaling up Jobberman today, would you choose the same approach you chose back then?
There’s always a better way to do stuffs, I find it boring to solve the same problem the same way twice. There are so many things we have learnt along the line, and some of them are better kept for future use, because it’s not easy to redo some of the stuffs we’ve done in time past in a different way as there may be serious disruptions.
Are there any misconceptions people have about scaling up a website that you would love to clarify?
I think the only thing I’ll really like to clarify is that when thinking of a web application scaling, people should know that it’s not just about the hardware, it’s not just about the server software also, many of the times, a lot of work need to be done on the application itself. An application should be designed to use system resources as efficiently as possible.
Imagine a single web page that requires about 256MB of RAM and about 2 CPU seconds to run, if you have a server with about 2GB of RAM, what it means is that if you take about 7 – 8 concurrent requests for that webpage in 1 – 2 seconds, your server will choke and become unstable. I believe the task of application optimization should come first before you think of scaling vertically or horizontally.
Taiwo can be found on twitter @logbon72