Fastly's tech stack


Our philosophy on toolsets is “the right tool for the job.” Mostly, we’re a Unix shop, and the languages and frameworks we have in production are the following:

  • Varnish (obviously) for caching, which is developed in C
  • Ubuntu OS with some heavy modifications to better optimize SSD usage
  • BGP for network routing
  • Apache for serving web objects and terminating SSL
  • Perl for our control plane and VCL deployment
  • Assembly in our control plane for an extra boost
  • Go for our streaming logs and stats, our video handling, and more
  • Ruby/Sinatra for our public API
  • Python for purging/cache invalidation and system health
  • Backbone.js for our front end app
  • Coffeescript/Sass on the front end
  • Epoch for data visualization
  • Chef for deployment automation and config management
  • Jekyll for our site
  • Jenkins for job scheduling and automation
  • Ganglia for system monitoring

In addition, most tools in our stack have been altered and optimized for a distributed, highly performant environment. If we need something improved or changed, we do it. If another tool, language, or framework solves the job better, we use it.