Cloud migration is no easy feat, and the challenges posed by the physical-virtual server shift can lead to loss of time and money. Luckily, this has not been the case for Wordnik, a site that provides example sentences, punctuation, and user comments for millions of English language words. Tony Tam, CTO and VP of Engineering at Wordnik, recently told the story of the company's move to AWS and how they dealt with some common challenges.
According to Tam, the company actually started on Amazon Web Services Elastic Compute Cloud and then switched over to what he describes as "really fast, dedicated servers -- with lots of storage, RAM and very impressive CPU + 1/O." The move was due to a range of factors, including architectural/business choices. After some time working with MongoDB (mainly) on dedicated servers, the team decided to return to EC2. Moving back to the cloud required that the team come up with creative solutions for dealing with lower performance.
After testing performance of disk seeks on EC2, the team found that they were working at 1/10th the expected performance. To solve this problem, the team turned to a solution first provided by Netflix, known as Micro Servers. Tam describes the idea behind Micro Servers well in his post
The idea is simple — take the library (jar) analogy and push it to the nth degree. If you consider your “distributable” software artifact to be a server, you can better manage the reliability, testability, deployability of it, as well as produce an environment where the performance of any one portion of the stack can be understood and isolated from the rest of the system. --Tony Tam
So, ultimately, the company now works with a lot of smaller servers than they use to. This change in approach to an issue of communication between servers; an issue they solved by developing Swagger, a framework which allows for the describing and visualizing RESTful web services. In order to deal with the challenge of versioning, the company also built Caprica, a provisioning and configuration management tool.
This story of one company's move away from and then back to the cloud reveals a couple interesting points. First of all, as a recent post on Giga OM claimed, the Cloud is still in its teenage years, and platforms as a service have yet to provide the tools and processes required for a smooth transition to the cloud. Second, this transition often requires initiative on the part of an enterprise that can go so far as to creating tools and frameworks as Wordnik has with Swagger and Caprica, in order to cope with the transition.
You can read Tony Tam's entire post about Wordnik's move to the cloud here.