Daemon Kit - RubyKaigi 2009

15
  Facing your daemons

description

My RubyKaigi 2009 lightning talk on daemon-kit

Transcript of Daemon Kit - RubyKaigi 2009

Page 1: Daemon Kit - RubyKaigi 2009

  

Facing your daemons

Page 2: Daemon Kit - RubyKaigi 2009

  

Ruby daemons are a PITA

Tired of brittle daemons ? Tired of running blind ? Tired of setting up monitoring ? Tired of worrying about logging ? Tired of missing pid files ?

Page 3: Daemon Kit - RubyKaigi 2009

  

daemon­kit

http://github.com/kennethkalmer/daemon-kit

Kenneth Kalmer@kennethkalmer

http://opensourcery.co.za

Page 4: Daemon Kit - RubyKaigi 2009

  

daemon­kit ?

Opionated Framework for Ruby daemons Keep things DRY Generators to help make things simple Rake tasks to help keep things simple

Page 5: Daemon Kit - RubyKaigi 2009

  

Multiple environments

Development Be noisy, break early, break hard

Testing Staging Production

Be quiet, stay alive, recover easily

Page 6: Daemon Kit - RubyKaigi 2009

  

Don't worry about pid files

Managed for you Infered or explicit files Great for controlling clusters Handles stale pid files

Page 7: Daemon Kit - RubyKaigi 2009

  

Don't worry about logging

Multiple levels Syslog support Log rotation friendly (HUP)

Page 8: Daemon Kit - RubyKaigi 2009

  

Don't worry about configuration

Simple YAML config files On­demand hashes

Environment­aware configuration Defaults and environment specific overrides

Page 9: Daemon Kit - RubyKaigi 2009

  

Don't worry about monitoring

Generate monit/god configuration files via rake

Page 10: Daemon Kit - RubyKaigi 2009

  

Don't worry about silent death

Safety nets for threads Hoptoad integration Exception emails Change logging levels with SIGUSR1/SIGUSER2

Page 11: Daemon Kit - RubyKaigi 2009

  

Generators accelarate

AMQP consumer Nanite agent XMPP bot Cron daemon Ruote remote participants

$ daemon_kit mydaemon ­i amqp

Page 12: Daemon Kit - RubyKaigi 2009

  

Easy deployment

Custom capistrano recipe tailored for daemons Awaiting vlad contribution :)

$ daemon_kit mydaemon ­d capistrano $ ./script/generate deploy_capistrano

Page 13: Daemon Kit - RubyKaigi 2009

  

Suitable for networking

EventMachine is a dependency AMQP uses EM Scheduler uses EM XMPP to use EM (under construction)

Page 14: Daemon Kit - RubyKaigi 2009

  

Looking forward

RobustThread support Bundled thread/fibre pool implementation Sys V Init script generation Bleakhouse support Privilege dropping & chroot'ing

Page 15: Daemon Kit - RubyKaigi 2009

  

Arigato gozaimasu !

http://github.com/kennethkalmer/daemon­kit http://kit.rubyforge.org/daemon/rdoc #daemon­kit on Freenode

http://opensourcery.co.za @kennethkalmer