Thin vs. unicorn for development mode on Mac? - ruby-on-rails-3

I'm shocked that this question hasn't been asked already, but I swear I looked everywhere. Are there advantages of thin over unicorn, or vice versa, when running Rails 3 in development mode?

I decided to go with Thin for development because Heroku runs my apps on Thin in production.
It's always a good practice to make your dev ENV match your production ENV as much as possible.
Here's a couple breakdowns of Thin vs. Unicorn, although they're a little old.
http://snaprails.tumblr.com/post/441654760/thin-vs-unicorn-performance-benchmark
http://cmelbye.github.com/2009/10/04/thin-vs-unicorn.html

Unicorn runs very well on Heroku now, you may want to check this out:
http://michaelvanrooijen.com/articles/2011/06/01-more-concurrency-on-a-single-heroku-dyno-with-the-new-celadon-cedar-stack/
And of course this to get a better idea of why you'd want to use Unicorn:
https://github.com/blog/517-unicorn
I'm moving away from Thin now myself after exploring this more fully.
**I should note, this is only possible on the Celadon Cedar stack, which should be something you're shifting towards at this point anyway.

Related

Whats the difference between development and production mode?

Unfortunately, I am not much aware of these two terms and I have a feeling that I need to know more about these as I am approaching an app release.
so, if I am running the app on development mode am I not using exactly the same code as production? Like what does it actually change and whats the purpose of it?
If it's in the sense of server than that's understandable, I don't wanna mess with the server that's being used by the users, so I guess i need to connect to a second server - development, however, I am interested to know what does it change in my code? I am still gonna use the same locally stored project right?
Sorry for being so naive!
The development build is used - as the name suggests - for development reasons. You have Source Maps, debugging and often times hot reloading ability in those builds.
React Native includes some very useful tools for development: remote JavaScript debugging in Chrome, live reload, hot reloading, and an element inspector similar to the beloved inspector that you use in Chrome.
The production build, on the other hand, runs in production mode which means this is the code running on your client's side. The production build runs uglify and builds your source files into one or multiple minimized files. There's also no source maps or hot reloading included.
Further more , Production mode is most useful for two things. They are
Testing your app's performance, as Development slows your app down considerably and Catching bugs that only show up in production.
Hope this might help
https://docs.expo.io/versions/latest/workflow/development-mode/

Are there any performance/functionality differences between installing the New Relic RPM as a gem vs. as a Heroku add-on?

I am hosting my Rails 3 application on Heroku and would like to add New Relic monitoring.
I notice that Heroku has an add-on that I suppose sets everything up for you, but I also notice that it doesn't create a "real" New Relic account - instead, it creates a Heroku-specific New Relic account that you can only access through Heroku.
What I am curious about is: are there any differences in ...
Functionality
Mainly, does the Heroku-specific add-on offer any additional Heroku-specific features other than configuring the service for you? It seems to me that, if not, it might be better to use the gem so as to avoid any mysterious Heroku monkey-patching?
Configurability
Does only being able to access the New Relic account via Heroku have any downsides (other than the annoying Heroku header frame taking up the top of every screen)?
Performance
Does the Heroku set-up afford any performance benefits over self-installation of the gem?
Cost
It looks like the Heroku New Relic add-on charges by the dyno. Does this make it more or less expensive overall than a comparable plan directly through New Relic? If it's more expensive, does it have any features that justify the extra cost other than the simplified configuration?
Thanks all!
Functionality
AFAIK it does not add any functionality besides adjusting and viewing through Heroku.
Configurability
This is the biggest upside. Heroku is all about making things easier and with the plugin all you have to do is install it you are ready to go.
Performance
Heroku plugins are essentially heroku-gems that get pulled in somewhere along the line. We would need to research how the plugin was made; obviously if the plugin used something faster than ruby then it would probably be faster than the new-relic gem which is just made of ruby.
Cost
I do not think you are missing anything here. You will end up paying two parties, so whatever Heroku charges that is your extra cost being $0.06 dyno.

Does Juggernaut work on Heroku?

I'm building a Rails app that includes live group chat. I've heard Juggernaut is the best option for this. Does it work on Heroku?
They did have experimental node.js support but it seems to be in closed beta for the timebeing. Expect a release soon.
http://blog.heroku.com/archives/2010/9/20/an_update_on_heroku_node_js_support/
I have minimal sysadmin skills but managed to set up an Ubuntu 10.04 environment with relative ease. http://purebreeze.com/2011/03/adding-realtime-push-updates-to-agileista-using-juggernaut/
The 'easiest' option is probably to use Pusher but probably not as fun or cost effective.
UPDATED
Heroku now fully support node.js
Here's a gist from the juggernaut author showing how he set up juggernaut on Heroku:
https://gist.github.com/1003748
I will also update my blog post shortly to reflect getting up and running.
It's much easier now!

mod_mono stability issues

I've read several stablity issues with modmono under high load. The root of the problem is GC and the solution is restarting modmono every n hours, and n should be decreased based on error frequency.
I'm planning to develop a heavy load site with mono (I've .net experience and a little java), and I've fears based on this issues like session interruption, http errors ...
At this starting stage of the project, should I switch to Java/tomcat or trust to mod_mono ?
Regards
Depending on how long developing your site (http://www.mono-project.com/Compacting_GC) might be ready for production. While, googleing found some complaints about stability, many were from 2006. Push comes to shove, if mono/mod_mono fail to live up to stability, you could always deploy from windows/iss.
It's a bit of a calculated risk at this point, but if you run into any issues, I'm sure the mod_mono mailing list would help sort out any issues.

mono in production websites?

I'm investigating the use of mono in real world high traffic web applications. There are some references on the mono site (companies using mono), but I couldn't find a high traffic website sample other than Deki powered ones. And I've read some mailings about mod_mono stability problems because of inexistence of compacting GC.
Please reference your app and give some info, if is there anyone using mono in production.
...or do I have to look at Java ?
Regards,
sirmak
Wikipedia is using Mono for search (also listed on the companies using Mono page)
A ton of people use Mono in production and development. I'm sure this page will change dramatically over the next year or so, but look at http://www.mono-project.com/Companies_Using_Mono. This is a good reference, but projects using Mono are popping up every day, so we'll see more soon.
Lunchwalla.com uses Mono for its website. It receives fairly high traffic. There is also a little blog item regarding the set up - http://blog.lunchwalla.com/2010/04/23/the-tech-behind-lunchwalla/
Go for it. Beyond the initial setup work and tuning you can have a very stable and fast server with all the advantages of low-resource required do the the job, at least with nginx/lighttpd. mod_mono (Apache) resources will go way faster according to a lot of feedback I've been reading on the all the major places this topic is discussed
From #mono (IRC)
<ruionwriting> ahall: in apache what is your feel about the performance compared with nginx?
<ahall> the fastcgi implementation is just a bit buggy and buy sending few concurrent requests to it it hogged 99% cpu and didn't get out of it. I will switch to nginx + fastcgi as soon as its suitable for me in production
<ahall> buy = by
<ahall> but yeah i always use nginx instead of apache whenever possible, but with mono i dont recommend it
This last part I don't have to agree based on the setup I have.
This question on stack overflow must me included here.