Scalable Ticketing / Festival Website - performance

I've noticed major music festivals (at least in Australia) and other events that experience a peak in traffic when tickets go on sale have huge problems keeping their websites running well. I've seen a few different techniques used to try combat this such as short sessions and virtual queues but they dont seem to have much effect.
If you were to design a website to sell a lot of tickets in a short amount of time how would you handle scalability? What technologies and programming techniques would you use?
My experience is in the Microsoft stack so answers that in that area will be most useful to me but I'd also like to hear how this sort of problem could be solved on other platforms.

I think the main problem is not that it's "hard" to make such a system scalable, it's that 99% of the time, those sites don't have much traffic. It's not much good buying 50 front end servers and 10 database servers if 99% of the time, they're all idle.
Personally, I'd use something like Amazon EC2 or even Microsoft's new Azure service so that they can run with minimal capacity most of the time, and then ramp up just before a big event goes on sale.

Related

Is it worth developing a CPU intensive mobile app?

I am considering developing a poker robot to play against for mobile phones.
Needless to say that this is a very CPU intensive application as confirmed by the prototype.
What is the consensus on a CPU intensive mobile apps? Is it even worth developing? My concern is that people will leave negative feedback similar to "CPU Hog. Uninstall".
I could host the CPU intensive brain on a server, but that requires an internet connection for the user, which is undesirable.
It's not worth it if you're dropping frames, especially on mobile. Mobile is very limited comparatively speaking to PC or console, so you have to plan accordingly.
I'd attempt at trying to add as much pre-processed tasks that as possible can be accessed later on without further processing, thus only needing to call the pre-processed data. This'll definitely save quite a bit of CPU usage.
If you can't do it, then it's not worth it unless you can keep the game within a small margin of error which won't be noticed by the average person within your audience.

Heroku over Network Solutions, web developer to convince boss

I have a critical meeting tomorrow and I need to convince my operations manager to let our web team leverage Heroku vs our current solution, Network Solutions.
Network Solutions is pretty locked down. They offer rails, but with a locked set of usable gems and the version of rails is pretty old. I am also not productive in PHP. We do have "large windows" hosting with them, but they are running IIS 6 and I would want to use MVC. I am not saying it is not usable, there are work arounds.. but why bother with the headache? Just switch to Heroku and call it a day.
Does anyone have any experience with pricing on Heroku? We do B2B applications and see very small amounts of traffic, at best we would see 5000 hits a month.
Pushing from GIT eliminates making "small changes" to the live site via ftp, and not following up on the local version. (massive time sink / headache)
Heroku gives EACH project it's own "VPS" essentially, so if one of our apps bears fruit it can scale with out taking out a whole server.
How easy it is to actually scale? Would I be wrong to say that it is easy as a "push of a button?"
It's going to be around for a while right? I am using the argument that Heroku is "pay as you go", and since our apps are very low traffic our costs will be very low. But, I understand that this makes for an un-sustainable business model- like how Google App Engine had to re-evaluate it's payment structure. Would Heroku ever go to a "shared" hosting plan for apps like ours? Just so we are not getting a free ride (I'd like to support the platform).
One of the concerns is getting "another" hosting environment, when we have been trying to consolidate. Unfortunately they chose Network Solutions before I got there.
Thank you in advance
Go at it from this angle. Explain to your boss that should your business require a certain feature that you currently don't have, being able to add gems at will to a Heroku platform will allow the extensibility and give you options for better serving customers and scale with the business's future growth, whereas NS is very limiting, causing bottlenecks and problems that your business will be hurt by, because it will result in lost productivity for you and will not support the architecture you'll need to stay ahead in the future. Talk in business terms that will make sense to your boss, and many times they will be able to understand why you want to do a certain thing. Help it relate to the strategic objectives that you are likely to undertake in the future. Paint a big picture. Draw out some scenarios that make your point in a "how does this affect the bottom line/hassles for him."

How do I know how much traffic my wordpress/buddypress based social media website could hold? What to do when traffic goes up?

Right now I'm paying 5 dollars a month for hosting to godaddy.com. Although there are no users registered yet (it's closed for maintenance mode as I'm testing and buiding it), it's slower than e.g. facebook. Does anyone have experience on using buddypress? What happens if my site blows up and draws a lot of users very fast. I guess I can get more expensive and better quality hosting, but is there a limit for buddypress based sites, especially when I'm using quite a few plugins.
BuddyPress scales quite high, so the code itself won't be a problem, even with tens of thousands of users. Your problems will probably be imposed by your host--limiting database transactions or sizes of tables--or specific themes taking a long time to render.
Firebug can be a great tool to use if you want to identify what component is causing a site to be slow. Instructions on using Firebug

Basic knowledge for a high traffic application

Thanks for all the questions and responses posted on here. This site usually shows up whenever I search for information from google, and in many cases, the answers are usually relevant to the issues I needed solved.
I want to preface my question by stating that I've been programming (.NET, XML, T-SQL, AJAX, etc) for less than 2 years, and I still have a lot to learn; so, pardon my ignorance.
Here's my situation (and question): I'm building a social web application, which I know will have much traffic in a short time; as a result,
What are the basic information that I need to have, in order not to be overwhelmed? It's currently a one-man affair, and here is the hosting specification that I plan to start with: 2GB RAM, 600 HDD, 1000 GB bandwidth, and 2.13GHz Duo Core Processor.
I've read about web-farms, but I've never had an opportunity to use them, so I'm not entirely sure how to phrase this question: how can one split the same application on multiple physical servers? How do you make all the files act as one entity? And since every .net application requires a web.config, how is it split among the various files on these multiple servers?
I've built smaller projects before, but this is the first big project I'm building, and to be frank, I'm a little intimidated. So, I would like to ensure I know what I'm getting into before starting.
Thank you.
Based on your background I assume you are developing in a .Net environment? If so, I highly recommend you take a look at Windows Azure. Developing your app against Azure will allow you to deploy your app in Microsoft's cloud platform. Once deployed you can shrink and grow your resources according to demand without having to deal with the relative hassle of setting up multiple servers in multiple locations and managing it all. This allows you to pay for a "little bit" of server up front and if your app gets popular you can easily pay for "web farm" like power and geographic diversity. It also gives you a decent framework for developing an app that will scale relatively well. That's an 18,000-feet overview. If you can put some more details in your question I'm sure you will get more detailed responses. Best of luck!
Your "social web application" will not have any users if it isn't working and deployed. Don't worry about scaling much until the site actually does something useful and has a few hundred users (or at least a few dozen!). Get it working, find people around you who can help when the going gets tough, and keep at it. Otherwise your concerns about needing to scale will never be warranted.

Why such a disparity in pricing between Windows and Linux hosting services [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
I'm a .Net developer for pay, but I have my personal web site hosted on a LAMP stack with a shared hosting provider. I've been looking for a while to switching to a Windows with .Net hosting provider, but what really turns me off is the price. The reason that I want to switch is that I find .Net much more enjoyable to develop on, and I'm much more in practice with using .Net as opposed to PHP.
With my current Linux hosting provider, for a measly $10 a month, I get more bandwidth and disk space than I could ever want to use on a personal site. I'm currently allocated 380 GB of space, and 7700 GB of transfer. While I realize that I could never possibly get to those limits, especially with the CPU usage limits put in place, it's nice to be about to have a bunch of pictures up on my website without worrying about running out of space.
However, with the offerings I see from the Windows hosts, as an example, for $17 a month, I would only get 2 GB of disk space and 200 GB of transfer. The transfer limits seem well within what I would use in a month, but the 2 GB of disk space seems extremely low. Especially since only 400 MB could be used for SQL Server databases.
So enough background, on to the question, is the difference in pricing tied solely to the costs paying for licenses for Windows and SQL Server, or is there something else that I'm not considering coming into the cost of the Windows hosting plan. I get great service with my Linux host, so I don't think it's a problem of quality people that run the various hosting sites. Does the cost of the software licensing really make that much of a difference?
If the pricing is due to licensing costs, why don't you see more host with Windows and .Net, but with alternative databases such as PostgreSQL or MySQL available to keep the pricing to a minimum, which providing basically the same functionality.
I think this has to do with 2 major issues:
1) Licensing, this is an obvious one, the host will charge you more cause he has to pay for windows and SQLServer.
2) Hardware, running windows requires higher resources there for fewer virtual hosts, and vps can be run on the same amount of hardware as a linux server.
Because Windows Server and SQL Server licenses cost a lot of money, per CPU Core (and not just per machine), and so your hosting provider needs to recuperate costs for the license.
This is on top of the usual operating overhead (which is the only thing Linux servers cover).
I also feel your pain, because I maintain a site for my wife's business, and while I'm not done with her front end customer facing application being written in ASP.NET, I have to stick to LAMP hosting first, which suffices at the moment.
Aside from the cost of licences, think about the sysadmins. You probably need less sysadmins to maintain a whole bunch of linux servers than you do for windows. That cost is passed on to you.
The Mosso Cloud Sites product can switch between LAMP and .NET without changing the price. Switching from MySQL to MS SQL is $5/month price difference but .NET can obviously work with MySQL if price is a concern. I mention this product because your requirements (disk space and bandwidth) do not vary based on the technology.
Disclaimer: I'm a Rackspace employee and Mosso is a Rackspace company.
This question is most probably more appropriate for ISP vendors instead of programmers. This question could easily flare up the usual holy wars over Microsoft vs OSS. My own observation parallels with yours. ISPs prefer LAMP over Windows.
I have worked with both stacks and, IMHO, and looking at the big picture, it appears to me that Microsoft technology and licensing was designed to target the Intranet development market. So, the TCO doesn't look so favorable for Internet applications.
I'm not saying that you can't write a really great Internet application using the .NET application stack. Of course you can. It's just that LAMP is better positioned, from a TCO perspective, for the kinds of workload that ISPs encounter.
This is not a criticism of Microsoft. They have shareholders' interests to protect. The profit margins for so-called enterprise development are higher than the type of clients that ISPs best serve.
"because they can"
seriously, it's called the "Free Market". check it out!
EDIT:
[sigh] it's a shame that so many drive-by downvoters have no sense of humor...and no grasp of economics. So let me explain:
one theory is "linux is free, windows costs money." While true, that doesn't explain the difference, since windows is a fixed cost.
what does explain the difference is the free market. -
One could argue that the typical linux user is a cheapskate is unwilling to pay much for hosting services because they know the software being used for hosting didn't cost the host anything, while the typical windows user is a sucker is willing to pay more for hosting services because they know the software being used for hosting costs the host money.
but in reality, since the cost of the hardware, software, and typically even the bandwidth capacity is a fixed cost, the above just doesn't hold water - the relative fixed costs of the hosts is irrelevant for larger-scale hosting companies
so the price becomes whatever the target market is willing to pay, balanced by how good the host is at presenting their quality and other 'added value' propositions.
For example, i used to host my site on a cheap LAMP host because it was just some static html. When the site went to e-commerce I researched the 'free' e-commerce packages offered by the inexpensive host and discovered that they all had serious security flaws and so decided to use asp.net and write my own e-commerce code since (a) I know asp.net, (b) I needed to learn how to do that anyway, and (c) i trust my code more than anyone else's [or at least if there is a flaw in my code I have someone easily accessible to blame!].
The difference is hosting plans was a few dollars a month. The new host's uptime seems to be better, but some of their tech support is lame and they are missing some obvious features but nothing i can't work around (without paying more somewhere else) so in the end i'm happy to pay a bit more. The host i chose is not the cheapest, and they're not the most expensive. And i spent about ten minutes doing the research because for my site it just wasn't that important.
which brings up the next economic point: if the average programmer costs $50/hour, how cost-effective is it to use said programmer's time to complain about $7/month in hosting fees?
in summary, the answer is: the free market.
EDIT 2:
Here are some windows server license prices
These certainly look like one-time fixed costs to me, but even if this was a yearly fee it still pales in comparison to the cost of the hardware and bandwidth for a hosting service.
The relationship between license cost and hosting cost is indirect at best, and is essentially irrelevant compared to market pressures.
But please don't take any programmer's word for it, ask a hosting provider.
cost breakdown for hosting services
Addendum:
MS-SQL licenses do cost additional $$$ so that may be a factor
This isn't really an answer to your question (other folks have done a good job of that), but have you thought of offloading your static resources, which are likely to take up the bulk of your disk space, to something like Amazon's S3? That way, only your application code and database would be stored on the Windows host.
Pretty much echoing what other people have said here. But is $7 difference a month really that big a difference. I know you get less disk space and bandwidth but $7 isn't really a lot to cover the costs of licensing.

Resources