The speed with which cloud computing vendors are adding new features and services is overwhelming. How do you know when it's safe to use a new service?
Cloud technologies are always moving very fast. Things you may be working on implementing yourself are often provided as a service later. Cloud vendors such as Amazon tend to implement services as they see the need in the community; common problems that are difficult to solve are where they thrive. Unfortunately, it can be very hard to determine when it's better to implement yourself, and when it's time to move to a hosted solution.
The answer for every situation is different, but the general rule is to only switch if it will save resources. That could mean that it will be cheaper for you to run, or it could mean that it frees up your time to work on other developments.
As an example, at Newstex we were implementing a service-based full-text indexing solution. We needed to provide complex metadata indexing, as well as full-text searching with a robust query language. We began implementing a solution based on Xapian, but after we were about 90% completed, Amazon announced CloudSearch. We didn't switch over immediately after it was announced because we were so close to finishing our own solution. We determined that we could have our search system completed quicker then we could integrate CloudSearch. Eventually, as CloudSearch matured, more information came out about new features they were offering that we simply couldn't implement ourselves. While continuing our own development, we simultaneously started research into integrating CloudSearch.
The best time to integrate or begin investigating any new cloud service is after there is a decent amount of community activity. That way, when you do run into issues or questions, you will be able to turn to the community, people who use the service -- not people who built the service -- for support and questions.
This was first published in January 2013