Deploying is a big part of the lives of most GitHub employees. We don't have a release manager and there are no set weekly deploys. Developers and designers are responsible for shipping new stuff themselves as soon as it's ready. This means that deploying needs to be as smooth and safe a process as possible.
The best system we've found so far to provide this flexibility is to have people deploy branches. Changes never get merged to master until they have been verified to work in production from a branch. This means that master is always stable; a safe point that we can roll back to if there's a problem.
Sunday, October 14, 2012
Deploying at GitHub
Saturday, June 16, 2012
Atop
Saturday, June 2, 2012
What are some time-saving tips that every Linux user should know? - Quora
What are some time-saving tips that every Linux user should know?
Friday, May 18, 2012
Monday, May 7, 2012
Mosh
Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes.
Mosh is a replacement for SSH. It's more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.
Monday, April 23, 2012
apt-file and finding Ubuntu packages
apt-file can find which packages include a specific file. Ubuntu Packages Search also provides a web UI.
Monday, March 7, 2011
Chef - Opscode
Sunday, February 27, 2011
Varnish: Notes from the Architect
Monday, February 14, 2011
Graphite - Enterprise Scalable Realtime Graphing
Graphite is a highly scalable real-time graphing system. As a user, you write an application that collects numeric time-series data that you are interested in graphing, and send it to Graphite's processing backend, carbon, which stores the data in Graphite's specialized database. The data can then be visualized through Graphite's web interfaces.
Used by Etsy.
Etsy also has StatsD (blog post) which is a daemon that increments/times can be sent to, which aggregates them and sends them to Graphite.