resource maps

Kapil Thangavelu kapil.thangavelu at canonical.com
Thu May 10 18:46:30 UTC 2012


Excerpts from William Reade's message of 2012-05-08 10:53:10 -0700:
> Hey all
> 
> Following on from the UDS discussion on Monday morning [0], I footnote
> an example of how I might expect a resource map to look for us-east-1 on
> AWS [1].
> 
> It's very clearly AWS-focused, but I'm not sure that it's *necessarily*
> AWS-*specific* -- that is, I don't think that there's anything in there
> that couldn't translate to other cloud providers. If I'm wrong about
> that in particular, please complain loudly [2].
> 
> Specific things to notice:
> 
> * The images' "hvm" field defaults to "false", and "ebs" defaults to
> "true", but on reflection I think I'd prefer to eschew default values
> entirely and require that all values be explicit.
> 
> * The instance-type fields which need to be cross-referenced with image
> fields (arch, ebs-image, hvm-image) are all lists rather than naked
> values. In the first two cases, this is clearly necessary because Amazon
> itself already allows for variation in those fields per instance-type; 
> and in the final case, it seems sensible because I don't believe there's 
> anything fundamentally different about HVM to lead it to be classified
> differently (that is, I can readily imagine a cloud provider that
> allowed you to run a particular instance-type either with or without
> HVM).
> 
> * The "cost" field happens to mean dollars-per-hour -- as published by
> Amazon, excluding considerations of EBS storage cost, etc -- but doesn't
> *necessarily* have that meaning: on a private cloud, for example, it may
> be very difficult to come up with precise costs, but one will still want
> some means of ranking instance types. (Note: I don't believe it makes a
> great deal of sense for Juju to impose a computed "cost" ranking on
> different instance types: while it's pretty easy to assume that larger
> cpu and mem values cost more, it's not really sensible to globally
> impose our own assumptions about the relative cost weighting of those
> two constraints.)
> 
> * instance-store defaults to 0, but t1.micro is the only instance type 
> that doesn't have instance storage, so that's not immediately obvious.
> 
> * As discussed, Juju would expect a "resource-uri" environment setting
> to point to something like this; in EC2, and potentially other public
> clouds, you'd leave it blank to get the standard data (that would be)
> published by Canonical, but you'd provide your own data for private
> clouds.
> 
> * I'm not sure that libcloud is going to be as helpful as we'd hoped. It
> seems to be missing some important information, such as valid-arches-per-
> instance-type and required-image-kinds-per-instance-type; and I'm a little 
> confused about what exactly "disk" is meant to mean (t1.micro has no instance 
> storage, but has a "disk" of 15; m1.small has a "disk" of 160, which apparently 
> refers to its instance storage...). Can someone who knows libcloud better
> than me confirm that it's not offering what I'm suggesting here? (Or perhaps, 
> ofc, point out where I'm crackful ;).)
> 
> I hope this helps to crystallise the discussion a little bit...
> 
> Cheers
> William
> 
> [0]
> http://summit.ubuntu.com/uds-q/meeting/20509/servercloud-q-juju-resource-map/ 
> 
> [1]
> 
> -------------------------------------------------------------
> images:
>   ami-4bad7422: {arch: i386, ubuntu-series: oneiric}
>   ami-4dad7424: {arch: amd64, ubuntu-series: oneiric}
>   ami-4fad7426: {arch: amd64, hvm: true, ubuntu-series: oneiric}
>   ami-61ea3408: {arch: i386, ebs: false, ubuntu-series: precise}
>   ami-8baa73e2: {arch: amd64, ebs: false, ubuntu-series: oneiric}
>   ami-b5ea34dc: {arch: amd64, ubuntu-series: precise}
>   ami-b7ea34de: {arch: amd64, hvm: true, ubuntu-series: precise}
>   ami-bdea34d4: {arch: i386, ubuntu-series: precise}
>   ami-e1aa7388: {arch: i386, ebs: false, ubuntu-series: oneiric}
>   ami-ebea3482: {arch: amd64, ebs: false, ubuntu-series: precise}
> instance-types:
>   c1.medium:
>     arch: [i386, amd64]
>     cost: 0.165
>     cpu: 5
>     ebs-image: [true, false]
>     hvm-image: [false]
>     instance-store: 358400
>     mem: 1740
>   c1.xlarge:
>     arch: [amd64]
>     cost: 0.66
>     cpu: 20
>     ebs-image: [true, false]
>     hvm-image: [false]
>     instance-store: 1730560
>     mem: 7168
>   cc1.4xlarge:
>     arch: [amd64]
>     cost: 1.3
>     cpu: 33.5
>     ebs-image: [true, false]
>     hvm-image: [true]
>     instance-store: 1730560
>     mem: 23552
>   cc2.8xlarge:
>     arch: [amd64]
>     cost: 2.4
>     cpu: 88
>     ebs-image: [true, false]
>     hvm-image: [true]
>     instance-store: 3450880
>     mem: 61952
>   cg1.4xlarge:
>     arch: [amd64]
>     cost: 2.1
>     cpu: 33.5
>     ebs-image: [true, false]
>     hvm-image: [true]
>     instance-store: 1730560
>     mem: 22528
>   m1.large:
>     arch: [amd64]
>     cost: 0.32
>     cpu: 4
>     ebs-image: [true, false]
>     hvm-image: [false]
>     instance-store: 870400
>     mem: 7680
>   m1.medium:
>     arch: [i386, amd64]
>     cost: 0.16
>     cpu: 2
>     ebs-image: [true, false]
>     hvm-image: [false]
>     instance-store: 419840
>     mem: 3840
>   m1.small:
>     arch: [i386, amd64]
>     cost: 0.08
>     cpu: 1
>     ebs-image: [true, false]
>     hvm-image: [false]
>     instance-store: 163840
>     mem: 1740
>   m1.xlarge:
>     arch: [amd64]
>     cost: 0.64
>     cpu: 8
>     ebs-image: [true, false]
>     hvm-image: [false]
>     instance-store: 1730560
>     mem: 15360
>   m2.2xlarge:
>     arch: [amd64]
>     cost: 0.9
>     cpu: 13
>     ebs-image: [true, false]
>     hvm-image: [false]
>     instance-store: 870400
>     mem: 35020
>   m2.4xlarge:
>     arch: [amd64]
>     cost: 1.8
>     cpu: 26
>     ebs-image: [true, false]
>     hvm-image: [false]
>     instance-store: 1730560
>     mem: 70040
>   m2.xlarge:
>     arch: [amd64]
>     cost: 0.45
>     cpu: 6.5
>     ebs-image: [true, false]
>     hvm-image: [false]
>     instance-store: 430080
>     mem: 17510
>   t1.micro:
>     arch: [i386, amd64]
>     cost: 0.02
>     cpu: 0.1
>     ebs-image: [true]
>     hvm-image: [false]
>     mem: 613
> -------------------------------------------------------------
> 
> Note also that this was generated from (1) cloud-images.ubuntu.com and
> (2) a handwritten list of instance-types and costs per region. There's
> nothing stopping me from collecting the data from those sources at
> runtime (and so there would be nothing stopping us from writing custom
> code per provider to dynamically collate whatever's available from the
> local APIs with whatever can't be got from them); but that feels to me
> like a potential future enhancement rather than a strict necessity at
> this stage.
> 
> [2] Ofc, please complain about anything else I may also be wrong about;
> but I'm most concerned with exposing a sensible set of
> image/instance-type properties that make some sort of sense across
> providers. For example, I'm not bothered if some particular cloud *only*
> handles EBS images -- we can accommodate that -- but I very much am
> bothered if I'm exposing properties that are just plain crazy (in some
> way, in some cloud).
> 


Something to consider, there is ongoing work already in progress on cloud query 
2

http://cloud-images.ubuntu.com/query2/

cheers,

Kapil



More information about the Juju mailing list