2
0

design_goals.rst 1.3 KB

12345678910111213141516171819202122232425
  1. Design Goals
  2. ~~~~~~~~~~~~
  3. 1. Create a cloud abstraction layer which minimises or eliminates the need for
  4. cloud specific special casing (i.e., Not require clients to write
  5. ``if EC2 do x else if OPENSTACK do y``.)
  6. 2. Have a suite of conformance tests which are comprehensive enough that goal
  7. 1 can be achieved. This would also mean that clients need not manually test
  8. against each provider to make sure their application is compatible.
  9. 3. Opt for a minimum set of features that a cloud provider will support,
  10. instead of a lowest common denominator approach. This means that reasonably
  11. mature clouds like Amazon and OpenStack are used as the benchmark against
  12. which functionality & features are determined. Therefore, there is a
  13. definite expectation that the cloud infrastructure will support a compute
  14. service with support for images and snapshots and various machine sizes.
  15. The cloud infrastructure will very likely support block storage, although
  16. this is currently optional. It may optionally support object storage.
  17. 4. Make the CloudBridge layer as thin as possible without compromising goal 1.
  18. By wrapping the cloud provider's native SDK and doing the minimal work
  19. necessary to adapt the interface, we can achieve greater development speed
  20. and reliability since the native provider SDK is most likely to have both
  21. properties.