You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jclouds.apache.org by Everett Toews <ev...@RACKSPACE.COM> on 2013/12/16 23:58:55 UTC

The Historical Context of Zone, Region, and Location

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

Re: The Historical Context of Zone, Region, and Location

Posted by Andrew Phillips <ap...@qrmedia.com>.
I sense a Wiki page coming up..? ;-)

Thanks for the questions, Everett - looking forward to learning more  
about the background to these, too!

ap