Ruby on rails for startups?

Ruby on rails is one of the hottest buzz words at this moment. Comparing R/R to the current J2EE and .Net. I would like to raise a question about the performance and scalability, since I have not found any industrial data yet.

Until the performance/scalability is proved, I treat R/R as a great tool for startup companies. Startup companies should be able to dive into their prototype quickly and raise the money based on the prototype. But what they are going to do next...is a secret:)

CruiseControl setup for multiple projects/releases

I tried to set up CruiseControl to handle multiple releases among different projects. All the projects share the same build scripts (which is a whole build project, sounds odd, ah?).


My original plan for the file structure was:

___CruiseControl (cc installation)

|__projects___ config.xml

|___webapps

|___trunk

|___release1

|___release2___build

|___project1_quick

|___project1_nightly

|___project2_quick___checkout

|___target

|___logs

|___artifacts


With this file structure, everything related to the project is under one directory tree. If you want to remove an obsolete project from cc, you don't have to delete files from multiple places.

But I hit a road blocker when I tried to set up logs and artifacts. There is no way to archive the above goal if I don't modify CC source code. I could make the build without any problem, but the reporting system crashes. Since CC index page will look for projects under default logs directory. After considering the design carefully, I think it makes sense for CC to setup this way, since it will avoid another setup to tell cc the available projects.


Now I will change projects directory setup to a flat file structure like what I did at other clients:

___CruiseControl (cc installation)

|__projects___ config.xml

|___webapps

|___checkout

| |___trunk-build

| |___release1-build

| |___release2-build

| |___trunk-project1-quick

| |___release-project1-nightly

|| ...

|___target (the same as checkout)

|___logs (the same as checkout)

|___artifacts (the same as checkout)


But I'm still wondering if there is a better way to remove obsolete projects/release branches easily.