These are the calls Capistrano is going to make to handle our Unicorn daemon. Look that at the :restart call we do not send a restart to Unicorn but a "reload".
Why this?
When you setup a Unicorn server there are two parts involved, the "master" and the "worker" processes. The master process is the one that handles the workers, starting, stopping and restarting them.
The master process usually doesn't need to be "restarted", only the workers …
For you Unicorn users, we are now bundling our config.ru rackup file with the RubyGems packages for chef-server-api and chef-server-webui.
Sharing is Caring
In this release we have also integrated knife with our cookbook sharing site, cookbooks.opscode.com . To use this feature, just sign up for an account with opscode , then configure your knife.rb with your username and private key . Once you're all set up, uploading a cookbook to share is as easy as: …
The leg warmers on the unicorn is what really made the slide for me. Why would a Unicorn need leg warmers!?! That's just silly.
pubsubhubbub - is webhooks with standards. you can subscribe to events @ mbleigh # RubyMidwest
superfeedr provides a free hub server for public stuff @ mbleigh # RubyMidwest
webfinger takes this point of view: "email = identity" And hooks everything up through that @ mbleigh # RubyMidwest
redfinger is a ruby wrapper for webfinger @ mbleigh…
…Rails, JQuery, Redis, homebrew, Django, Unicorn, Linux, Git... @ defunkt # RubyMidwest
Chris Wanstrath - @ defunkt always delivers an great talk. He has a style that feels conversational but gets points across # RubyMidwest Good talk - Chris is always an engaging speaker.
" Ruby Techniques by Example" Jeremy Evans is up next at # RubyMidwest
"Singleton class" has been said 20 times in the first 5 minutes of this talk @ jeremyevans0 # rubymidwest…
Unlike Mongrel, Thin and Unicorn, Phusion Passenger Lite can be directly exposed to the Internet. It can serve static files at blazing speeds thanks to the Nginx core. Mongrel and Thin can serve static files but they aren't very good at it. Unicorn doesn't even try.
Easy migration from existing reverse proxy app servers
Because the interface is so similar, you can easily swap Mongrel, Thin or Unicorn in your existing reverse proxy setup and replace it with Phusion Passenger Lite…
Mongrel, Phusion Passenger and Unicorn all use a "traditional" multi-process model in which multiple Ruby processes are spawned, each process handling a single request per second. Thus, concurrency is (assuming that the load balancer has infinite concurrency) limited by the number of Ruby processes: having 5 processes allow you to handle 5 users concurrently.
Threaded servers, where the server spawns multiple threads, each handling 1 connection concurrently, allow more concurrency …
…the deployment, and made the resource allocation story moderately better. To complete the picture, Unicorn recently rediscovered the * nix IPC worker model, and is currently in use at Twitter . Problem is, none of this is new (at best, we are iterating on the Apache 1.x to 2.x model), nor does it solve our underlying problem.
Turns out, while all the components are separate, and its great to treat them as such, we do need to look at the entire stack as one picture when it comes …
Pipemaster — Pre-forking server for commands. Think Unicorn (and much of the same code base) but for requests that don't come through the Web: cron jobs, command line, inbound emails, etc. I also use it to manage my Resque workers, since it's able to hot-deploy new code with a kill -USR2 .
Padrino — A Web framework based on Sinatra. If you like fast, simple and less layers of abstraction between you and HTTP, you ought to check it out.
JSON/ JQT…
…clients, but there have been similar tools like it floating around privately for years, including the Unicorn author's own " David" tool, which he ( David) only made public after Slowloris :
Clients that sit around with idle keepalive connections is also huge problem for simple servers like Unicorn (and traditional Apache prefork), so Unicorn does not support keepalive.
The Unicorn author also works on the Rainbows! server, which is designed specifically …
…including setting up the deployment and actually deploying the application. The unicorn recipe sets up Unicorn for the application and starts it as a Runit service, utilizing the Opscode Unicorn and Runit cookbooks. "server_roles": [ "my_app" ], "type": { "my_app": [ "rails", "unicorn" ] },
The database_master_role is used to determine who the database server is. This can be a role on the application server or a role on another …