One of the best takeaways from Tuesday’s Writing Code for Many Clouds session was Sam Ramji (of Sonoa Systems) ’s ten tips for a platform agnostic approach to cloud development (based on his experiences creating apigee):
1. Get comfortable with virtualization
This means both your developers and your admins.
2. Limit dependency on provider specific APIs
This is how you avoid lock-in.
3. Refuse to use unique services
In other words, use abstraction layers like RightScale or even better, the open source libcloud – so you don’t have to write infrastructure level handles yourself, leaving your developers free to focus on building your application.
4. There are no SLAs on your provider’s APIs.
Build that into your design. Handle failure gracefully.
5. Understand the different strengths of different clouds.
For example, Amazon may be better for scalability, or Rightscale may be better for control over networking topology.
6. Anticipate your needs for data replication and design accordingly
You’re putting data all in one place – a worldwide singleton of data – but what about if you’re using multiple clouds, what goes where?
7. Pay attention to network topology and networking requirements
For example, you can’t do multicasting with amazon, so apigee used another product called VPNcubed – giving service across Rackspace and Amazon. This is closely related to the data replication consideration.
8. Consider the granularity of the requests that you will load balance
API level granularity makes your ability to run on multiple clouds much greater
9. You’ll still overbuy compute power
You still have to tell Amazon ahead of your need. But the waste ratio is less, and the racking and stacking problem is gone.
10. Monitor the monitors!
There are no SLAs on your APIs so you should have at least one box to monitor your monitor.
Another highlight of the Cloud Development track was Jinesh Varia (of Amazon Web Services) ’s excellent session on Design Patterns for Cloud Architecture. He has written a whitepaper on this, and his slides will be available soon.