views:

82

answers:

1

----edit-----

QUICK QUESTION: Does Grails take too much resources for high traffic website, and is it expensier to host?

For example: if I can make a site that has millions of users/m easier in CakePHP does it worth to make it in Grails just to save some webserver resources- or will it need more servers?

---------------

Hello,

I know there are a lot of similar questions on the net, but because I am a newbie in web development I didn't find the solution for my specific problem.

I am planing on creating a flash games portal from scratch. It is a big chance that there will be big traffic from the beginning (millions of pageviews). I want to reduce the server costs as much as possible but in the same time to not be tide to an expensive contract as there is a chance that the project will not be as successfully as I want and in that case the money would be very little.

The question is : what technology to use? I don't know any web dev technology yet so it doesn't matter what I will learn. My web dev experience is a little php 8 years ago, and from then I programmed in C++ / Java- game and mobile development. I like Java and C syntax and language very much and I tend to dislike dynamic typing or non robust scripting (like php)- but I can get along if these are the best choices.

The candidates are now: -

  • Grails (my best for now)
  • Ruby on Rails
  • Cake PHP
  • Other technologies (Google App Engine, Python/Django etc...)

I was considering at first using pure C and compiling the web app in the server- just to squeeze more from the servers, but soon I understand that this is overkill. Next my eyes came on Ruby - as there is a lot of buzz for it's easiness of use. Next I discovered Grails and looked at Java because it is said that it is "faster". But I don't know what this "Faster" really means on my needs, so here comes the first question:

1) What will be my biggest consumption on the server, other than bandwidth, for a lot of flash content requests? Is it memory? I heard that Java needs a lot of memory, but is faster. Is it CPU? I am planning to take some daily VPS.NET nodes at first, to see if there is a demand, and if the "spike" is permanent to move to a dedicated server (serverloft.com has some good offers), else to remain with less nodes.

I was also considering developing in Google App Engine- cheap or free hosting to use at first - so I can test my assumption- and also very easy to use (no need for sys administration) but the costs became high if used more (> 3 million games played / month .. x mb/ each). And the issue with Google is that it looks me in this technology.

My other concern is scalability (not only for traffic/users, but as adding functionality) My plans are to release a functional site in just 4 weeks (just the basics frontend and some quick basic backend - so I can be able to modify some things and add games manually) - but then to raise it and add more things to it. I am planning to take a little different approach than other portals so I need to write it from scratch (a script will not do).

2) Will Grails take much more resources than RoR or Php server wise? I heard that making it on Java stack will be hardware expensive and is overkill if you don't make a bank application. My application will not be very complex (I hope and i will try to) but will have a lot of traffic.

I also took in account using CDN for files, but the cheapest CDN found was 5c/GB (vps.net) and the cost per gb on serverloft (http://www.serverloft.com/dedizierte-server/server-details.php?products=4) is only 1.79 cents/GB and comes with the other resources either.

I am new to this domain (web). I am learning the ropes and searching on the web for ~half of year but don't have any really practical experience, so I know that I must have some naive thinking and other issues that i don't know from now, so please give me any advice you want regarding anything, not just the specific questions asked.

And thank you so much for such great community!

+1  A: 

This is how I (on my blog) view web performance, especially for highly abstracted frameworks like Grails.

I don't understand the obsession with runtime performance. Given most project scenarios your primary focus should be on your performance, as in your ability to get things done with a chosen technology.

For example, you will get more done in a given period of time with Groovy than with Java any day. Often one line of Groovy code will equate to 10 lines of Java code etc etc

Very rarely will byte code execution time be your performance issue, most often its...

Bad algorithm implementation or design. Bad DB design and / or queries. Taking to long to get things done and then having all sorts of commercial relationship issues because of it.

With web applications you are usually not performing lots of long running CPU bound operations. Most of your request / response time is spent in the wire (internet routing etc) and in the DB (executing queries).

Choose a technology that takes a load off your mind and one that frees you from writing mountains of boiler plate code, so that you can rather concentrate on designing and implementing good algorithms, DB's and queries etc etc

tinny
Use Grails, move forward. Looks like your suffering from paralysis by analysis.
tinny
Thanks a lot for the answer. I think you are right. What would it be then in your oppinion the easiest language/framework to learn, for my background: no relevant experience with web development, Java background, little (but not none) sys admin knowledge?
cripox
Spend some time looking at Grails (very tightly related to standard Java), plus lots of modern concepts to leverage from (borrowed from Rails :-) ).Sounds like you have got alot to learn to pull this project off.A good book to start with is "beginning groovy and grails" http://beginninggroovyandgrails.com/site/content/indexTip: Use tomcat and not a full blown application server (Glassfish, JBoss) for deployment, much easier to install, configure and administer.
tinny
Hey, thanks for the advices. Yes, I have a lot to learn but is always fun to learn something totally new after all these years.If you ever have any quick tips or common mistakes warnings for a newbie, I'm all ears.
cripox