Monday, May 11, 2009

It's Not Always Sunny in the Clouds

At RailsConf last week I gave a talk called "It's Not Always Sunny in the Clouds" where I shared all of our lessons learned with OtherInbox and cloud computing.  I tried my best to go beyond the hype and talk about our real world experiences.  The slides are below, but here's the raw list of lessons:
  • “Everything needs to be automated”

  • Autoscaling is the easiest part

  • Think carefully about credential management

  • You really could use internal DNS

  • It's maybe not that cheap

  • Launching servers is not that fast

  • You will become dependent on “glue” services

  • You will depend on a distant faceless provider

  • Use DVCS

  • You will spend a lot of time on monitoring

  • Your logs will runneth over

  • Write lots of “in-process tests”

  • Snapshots are slow

  • Rails will be the least of your worries

  • Cloud services involve subtle-yet-massive tradeoffs

  • SQS guarantees delivery at least once

  • Queue lengths inaccurate for <>
  • SQS not necessarily FIFO

  • So you may not want a cloud queue

  • SimpleDB optimized for writes, not reads

  • You must code defensively

  • There are no good "cloud sandboxes"

  • Pay attention to MySQL timeouts

  • "User account management is -not- ideal."

  • You are locked-in to your provider

  • Relational DB may not be the best choice

  • Is there a benefit?

    • Changes the way you write code

    • You can start right away

    • Pretty awesome redundancy