Hi Adrian,

Emailing you directly because I think that's the best way to get some 
historical context around Zone, Region, and Location. To make good design 
decisions going forward, I'd like to understand the past a bit better.

I've read the doc on the Location Metadata API [1] but there are no comments on 
REGION or ZONE in LocationScope [2] so I'd like to start with some definitions.

It seems to me that the Region and Zone concepts in jclouds are analogous to 
the Regions and Availability Zones [3] in AWS.

Questions 1. Is that accurate? Could we reasonably use those definitions (as 
comments) in jclouds?

The NovaApi [4] was originally written using Zone for everything and the 
associated NovaApiMetadata and CloudServersUSProviderMetadata use the 
ZoneModule. The use of Zone in NoveApi has propagated to the other OpenStack 
APIs. However, the way Zone is used in these APIs is really more like Region. 
It's actually called Region in OpenStack and that's where you get the endpoint 
[5]. Much like an AWS Region above. There is a concept of Availability Zone in 
OpenStack but I haven't seen it commonly used and it's similar to AWS anyway. 

I noticed the recent SwiftApi [6] work you did uses Region instead. This makes 
a lot of sense.

Questions 2. Why did NovaApi use Zone? Could we reasonably switch the OpenStack 
APIs to use Region (following a proper period of deprecation)?

Location is the cloud provider neutral term across compute and object storage. 
I noticed the recent work you did on RegionScopedBlobStoreContext [7].

Question 3. Considering Location is a BlobStore level concept, should this be 
LocationScopedBlobStoreContext or am I missing something?

Thanks!
Everett


[1] http://jclouds.apache.org/documentation/reference/location-metadata-design/
[2] 
https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/domain/LocationScope.java
[3] 
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
[4] 
https://github.com/jclouds/jclouds/blob/master/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/NovaApi.java
[5] 
http://kimizhang.wordpress.com/2013/08/26/openstack-zoning-regionavailability-zonehost-aggregate/
[6] 
https://github.com/jclouds/jclouds-labs-openstack/blob/master/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/SwiftApi.java
[7] 
https://github.com/jclouds/jclouds-labs-openstack/blob/master/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedBlobStoreContext.java

Reply via email to