
Although clients frequently asked, I generally don't recommend particular cloud computing platforms on which they should build their SaaS. The big 4: Amazon AWS, Google App Engine, Force.com, and Microsoft Azure, as well as many smaller players, all offer scalability, performance, security, and reliability. Some offer more comprehensive and targeted development environments then others. Which one you choose should be based on your own research through the lens or your development resources, estimates of growth and your unique SaaS life-cycle application strategy.
Since choice of platform is as much of a bet-the-farm decision, as designing the right user experience, you should be diligent in your research. To help, we've started a Cloud Computing section in our SaaS Application Design Resource Center, where we try to point you to useful articles. In particular check out this top four article or a more comprehensive list of top providers.
As for high-level recommendations, as you look through these articles and evaluate vendors, consider these issues carefully.
- Portability: Are you locked into the provider once you move your data? Is there an API to integrate with other applications offering value-add opportunities to "re-mix" applications? Is there a proprietary API that ties you to that platform and is the advantage that 'IDE-ness' worth the lock-in?
- Ramp-up time: Do your developers already know the basics of API or development language. If for example, you are a . NET shop already, then there are obvious advantages to working in a .NETplatform. If your developers live and breathe Python, then Google App Engine is worth a look.
- Flexibility: Will the service meet your needs after you roll out v1.0? Does it offer extensibility and integration with other services, enterprise mashups and data sharing? Plan for at least one full release in the future and re-evaluate the service from that angle.
- Multi-tenancy and metadata-based configurability: Do not overlook this. If you are moving to SaaS, you want an infrastructure that supports multi-tenancy - one code base that can be customized via meta-data. Multi-tenant may seem like a philosophical argument, but it is based on simple dollars and cents economics.
- Terms of Service: Can they expel you from their platform if they decide you are competitor or an "inappropriate" business?
- Service Level Agreements: What are their up-time and support guarantees?
- Track record: What is their track record with security? How have they responded to mistakes they have made in the past (and they have all made mistakes).
- User reports: What do other developers say? Other users will give you the lowdown on their experiences without the marketing hype. Use community.
The above list of questions is certainly not comprehensive, but it does give you a begining framework as you evaluate each of the offerings. Catalyst Resources' developers have designed SaaS applications that run on top of each of the major cloud platforms, so we know there is no right or wrong choice overall. It is always specific to your project and growth strategy.
Always keep in mind that the behind the scenes technological infrastructure is only one small part of your SaaS application. Your customers don't care about the underlying hardware or code. They are buying enhancement and improvement of their business, which means you need to focus on streamlining business processes, designing for high value scenarios, maximizing perceived control, and innovating to give people a reason to try your service in a crowded marketplace.
Categories: SaaS