Growing a popular web product is hard work and a lot of fun. With Beanstalk we’ve attracted tons of attention, which means we constantly face server and performance issues. We’re designers and coders, so when it comes to managing servers its not the thing we enjoy most.
When we decided to partner with Engine Yard, I can say it was one of the best things that happened to Beanstalk. We let them take care of our infrastructure while we worked on strategy, design, usability, code, and improving the product overall. When it comes to Rails, no one does it better than Engine Yard. The problem is, Beanstalk is a lot more than just a Rails app, we’re a hosting service on our own. As we’ve grown, our need for a unique hosting environment became more apparent.
Making the decision
I have to admit, it was really freaking hard to move away from Engine Yard. They literally take care of everything and their support team is awesome (and a cool group of people). At the same time, we needed more control and a specific configuration for things like svn, storage, apache, virtualization, and so on. So, we decided to go with the leader, Rackspace. They are well known for their network, support, and are able to deliver the managed complex hosting environment that we needed.
Getting help where it is needed
Like I said, we know how to build web apps, but we are not server admins. Moving the amount of data and configurations we have to a new host is a scary process. To make it smoother, we reached out to the experts. For help with setting up our Rackspace environment, we contacted Tom Copeland at InfoEther. He’s been a big part of the process for setting up our new environment, tuning our servers, and understanding our current bottlenecks. It’s obviously a big help that he already runs RubyForge. When it comes to Subversion, we contacted Blair Zajac from Orcaware. Blair has provided some advice for us in the past. This time around, we had him review our Apache and Subversion setup to make sure we covered everything.
Better performance and stability
Beanstalk has had its share of performance problems in the past. The majority of these problems were due to our storage and IO performance. In our environment at Rackspace, we have invested heavily in the best hardware and storage options available. This should reduce most of the headaches when it comes to the speed of checkouts and commits in Subversion. I’m sure we’ll have some kinks to work out after the migration, but the new environment will benefit all of our customers (free and paid).
Planning the migration was tricky, but we’re confident we have it figured out. Over the next couple weeks we will be migrating groups of accounts over to the new Rackspace environment. We’ll have plenty of notices before it happens and we expect little downtime for each account. With the migration, we also have some really nice improvements like Subversion 1.6 support.
Want to know more about our setup?
This has been a really detailed and exhausting process, so I’d like to share more about the actual server architecture in a future post. Once we get through the migration process, I will post some more details about the new environment. We’re really excited about it.