Re: [Openstack] Canonical AWSOME

2012-04-25 Thread Joshua Harlow
So if what u are talking about is anything RPC/MQ based, then I would say those 
are not internal API's.

Once a RPC/MQ mechanism is introduced they don't really become internal API's 
anymore (if we are talking about the same API's, haha).

Since other stuff can be reading those messages on the MQ its very useful to 
have a schema to know exactly what to read :-)

On 4/24/12 11:46 AM, Russell Bryant rbry...@redhat.com wrote:

On 04/24/2012 01:25 PM, Joshua Harlow wrote:
 I'm more in favor of just having a schema, I don't care if that compiles
 to protocol buffers, json, NEWAWESOMEhipsterMSGFORMAT.

 That schema will force people to think a little more when they add
 messages, and it will automatically document the messages that are being
 sent around.

 That's a big win I think and is a step to getting those schemas
 versioned...

I'm not sure a schema is really necessary aside from the Python classes
themselves.  They're internal APIs, so they shouldn't be used from
outside of Nova.  A schema would be useful if we had to define the
interfaces in some language neutral-format, but I don't think that
really matters here.

I'm going to work on a proposal / prototype for how we can handle
versioning, though.  The big goal here is making sure that we can
maintain compatibility with the previous release.

--
Russell Bryant

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-25 Thread Eric Windisch
I've heard a few people mention pulling messages off the queue, or 
communicating via RPC outside of the project, or outside of Python. In theory, 
this sounds nice, but the RPC implementations are strictly making sure that A 
can execute calls on target B and that responses get back to A.

This has little to do with message queues, other than that message queues are 
optionally supported. You shouldn't be peeking behind that curtain. This is 
specific to each RPC mechanism and enforcing something this early might be more 
problematic than you expect.

I think that in the Folsom time frame, if not beyond, we should suggest a best 
practice of using the OpenStack RPC modules if you intend to communicate with 
Nova services. They're moving into OpenStack common, so this will become more 
friendly to use. It will require Python, but I don't see a reasonable 
alternative at the moment.

Additionally, each RPC driver can provide a guide to complying with their 
protocol, which extends beyond simply the transport (i.e. AMQP or ZeroMQ). This 
might be harder than it sounds and might vary between, or even within, releases.

--  
Eric Windisch


On Wednesday, April 25, 2012 at 1:24 PM, Joshua Harlow wrote:

 Re: [Openstack] Canonical AWSOME So if what u are talking about is anything 
 RPC/MQ based, then I would say those are not internal API’s.
  
 Once a RPC/MQ mechanism is introduced they don’t really become internal API’s 
 anymore (if we are talking about the same API’s, haha).
  
 Since other stuff can be reading those messages on the MQ its very useful to 
 have a schema to know exactly what to read :-)
  
 On 4/24/12 11:46 AM, Russell Bryant rbry...@redhat.com wrote:
  
  On 04/24/2012 01:25 PM, Joshua Harlow wrote:
   I’m more in favor of just having a schema, I don’t care if that compiles
   to protocol buffers, json, NEWAWESOMEhipsterMSGFORMAT.
  
   That schema will force people to think a little more when they add
   messages, and it will automatically document the messages that are being
   sent around.
  
   That’s a big win I think and is a step to getting those schemas
   versioned...
   
  I'm not sure a schema is really necessary aside from the Python classes
  themselves.  They're internal APIs, so they shouldn't be used from
  outside of Nova.  A schema would be useful if we had to define the
  interfaces in some language neutral-format, but I don't think that
  really matters here.
   
  I'm going to work on a proposal / prototype for how we can handle
  versioning, though.  The big goal here is making sure that we can
  maintain compatibility with the previous release.
   
  --
  Russell Bryant
   
  ___
  Mailing list: https://launchpad.net/~openstack
  Post to : openstack@lists.launchpad.net
  Unsubscribe : https://launchpad.net/~openstack
  More help   : https://help.launchpad.net/ListHelp
   
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net (mailto:openstack@lists.launchpad.net)
 Unsubscribe : https://launchpad.net/~openstack
 More help : https://help.launchpad.net/ListHelp
  
  


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Soren Hansen
23. apr. 2012 17.15 skrev Justin Santa Barbara jus...@fathomdb.com:
 What's the advantage of replacing the native EC2 compatibility layer with
 AWSOME from a user / operator point of view?
 Although I wasn't able to attend the design summit session, right now we
 have two native APIs, which means we have two paths into the system.

Yes. This is good. It keeps the layers of separation honest. Multiple
consumers of internal API's helps in making it more obvious at which
layer functionality belongs. Just like having multiple hypervisor
drivers (at least supposedly) makes it more obvious what sort of stuff
belongs in the drivers and what sort of stuff belongs in the compute
manager.

 That is poor software engineering, because we must code and debug
 everything twice.

I beg to differ. If we need to fix things twice, it's because we've
violated the layers of separation somewhere. For the record, I'm
fully prepared to believe that we've done so. I also fully believe that
the fact that we haven't done so *more* is because we have two API's to
consider. Eric Day went through all the calls from the frontends into
the various backend managers a long time ago, ensuring this separation
was clear. I'm convinced that the result was a massive improvement.

 Some developers will naturally favor one API over the other, and so
 disparities happen.  Today, both APIs are effectively using an
 undocumented private API, which is problematic.

Yes. This is a problem. However, as I understand it, there was a session
at the summit about versioning the internal API's. I'm not sure how we
can usefully version the API's without also documenting them, so that
problem should be adressed in the relatively near future.

 We also can't really extend the EC2 API, so it is holding us back as
 we extend OpenStack's capabilities past those of the legacy clouds.

If EC2 API is limiting what we can do, that's not going to change just
because you move the EC2 API implementation into a proxy in front of the
OpenStack API. The only difference is that it's suddenly the AWSOME
development team's problem.

 With one native API, we can focus all our energies on making sure that API
 works.  Then, knowing that the native API works, we can build other APIs on
 top through simple translation layers, and they will work also.  Other APIs
 can be built on top in the same way (e.g. OCCI)

Sorry, I'm having trouble here.. Are you suggesting that having two
sibling frontend API's talking to a shared backend API is poor software
engineering, but layering similar purposed API's on top of each other
like this is good software engineering?

-- 
Soren Hansen             | http://linux2go.dk/
Senior Software Engineer | http://www.cisco.com/
Ubuntu Developer         | http://www.ubuntu.com/
OpenStack Developer      | http://www.openstack.org/

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Mark McLoughlin
On Tue, 2012-04-24 at 13:26 +0200, Soren Hansen wrote:
 23. apr. 2012 17.15 skrev Justin Santa Barbara jus...@fathomdb.com:

  With one native API, we can focus all our energies on making sure that API
  works.  Then, knowing that the native API works, we can build other APIs on
  top through simple translation layers, and they will work also.  Other APIs
  can be built on top in the same way (e.g. OCCI)
 
 Sorry, I'm having trouble here.. Are you suggesting that having two
 sibling frontend API's talking to a shared backend API is poor software
 engineering, but layering similar purposed API's on top of each other
 like this is good software engineering?

Yeah, I'm with you here.

I think the frustration about the native EC2 support boils down to:

  a) we haven't (yet) got the clean separation of layers that we'd like

  b) not enough people are working on EC2 support

  c) there's a concern that OpenStack providers may not enable it

And my reaction to those is:

  a) we can fix that

  b) starting a new project doesn't help

  c) adding an EC2 frontend to deltacloud is a much more sane way of 
 addressing this

Cheers,
Mark.


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Justin Santa Barbara

 If EC2 API is limiting what we can do, that's not going to change just
 because you move the EC2 API implementation into a proxy in front of the
 OpenStack API. The only difference is that it's suddenly the AWSOME
 development team's problem.


I think it's actually the EC2 API caller's problem.  It's easy to map a
subset to a superset, but you can't cover the superset with the subset.
 Suppose Quantum defines e.g. Layer 2 security groups, which I think has no
parallel in EC2.  If you want to use L2 security groups, you'd have to use
the OpenStack API.

A nice AWSOME developer might treat it as their problem, but it's not
really.

 With one native API, we can focus all our energies on making sure that API
  works.  Then, knowing that the native API works, we can build other APIs
 on
  top through simple translation layers, and they will work also.  Other
 APIs
  can be built on top in the same way (e.g. OCCI)

 Sorry, I'm having trouble here.. Are you suggesting that having two
 sibling frontend API's talking to a shared backend API is poor software
 engineering, but layering similar purposed API's on top of each other
 like this is good software engineering?


Obviously not when you put it like that :-)

The difference that I see is whether the 'service' layer is documented and
kept stable (i.e. subject to API evolution rules).  Right now, we do that
work for the OpenStack API only.

I think it's great if someone is going to document and stabilize our
internal APIs.  However, unless you're willing to do it personally, I don't
think anyone should assume it'll be done.

So my viewpoint is that, while it would be great to have interface
contracts on all our internal interfaces, I'll believe it when I see it.
 Until then, we have one stable interface, and so using that stable
interface as the service layer seems like a sensible approach.

I can see us using ProtocolBuffers or JSON schema for messages that go over
the message bus, maybe even in Folsom.  I can't see us locking down the
other code interfaces before we give up on this Python thing and port to
Java, i.e. it's not going to happen.

Actually, I think JSON schema for our message-bus messages might be a
really good idea (tm).  Violations could just be warnings until we get
things locked down... maybe I should propose a blueprint? (Although I have
enough of a blueprint backlog as it is...)

Justin
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Eric Windisch
 
 Actually, I think JSON schema for our message-bus messages might be a really 
 good idea (tm).  Violations could just be warnings until we get things locked 
 down... maybe I should propose a blueprint? (Although I have enough of a 
 blueprint backlog as it is...) 

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Eric Windisch
 
 Actually, I think JSON schema for our message-bus messages might be a really 
 good idea (tm).  Violations could just be warnings until we get things locked 
 down... maybe I should propose a blueprint? (Although I have enough of a 
 blueprint backlog as it is...)

This was discussed at the summit in (I believe) the API versioning talk. There 
is a strong bias toward JSON inside RPC messages. However, this is actually 
transparent to Nova as the RPC implementations do the decoding and encoding. It 
is also hard to test and trigger such warnings as, as far as Nova knows, all 
the interfaces pass python data types, not JSON.  Some RPC mechanisms could 
transparently serialize.  As long as there is an abstraction layer, it should 
be oblivious to the serialization and we should not care too strongly.

There was a patch a few weeks ago that has enforced using a common RPC 
exception serializer using JSON, which I'm not sure is, or is not, a good 
thing. I haven't yet updated the ZeroMQ driver to use this, but am in the 
process of making these changes as I update for Folsom.

All that said, I do intend that the ZeroMQ driver will use JSON when it lands 
in Folsom.   (it currently Pickles, but only because there was a bug in Essex 
at one point, breaking  JSON serialization)

-- 
Eric Windisch
 

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Russell Bryant
On 04/24/2012 11:39 AM, Eric Windisch wrote:

 Actually, I think JSON schema for our message-bus messages might be a
 really good idea (tm).  Violations could just be warnings until we get
 things locked down... maybe I should propose a blueprint? (Although I
 have enough of a blueprint backlog as it is...)
 
 This was discussed at the summit in (I believe) the API versioning talk.
 There is a strong bias toward JSON inside RPC messages. However, this is
 actually transparent to Nova as the RPC implementations do the decoding
 and encoding. It is also hard to test and trigger such warnings as, as
 far as Nova knows, all the interfaces pass python data types, not JSON.
  Some RPC mechanisms could transparently serialize.  As long as there is
 an abstraction layer, it should be oblivious to the serialization and we
 should not care too strongly.
 
 There was a patch a few weeks ago that has enforced using a common RPC
 exception serializer using JSON, which I'm not sure is, or is not, a
 good thing. I haven't yet updated the ZeroMQ driver to use this, but am
 in the process of making these changes as I update for Folsom.

The change was just to the fake rpc backend to help catch more errors in
unit tests where non-primitive types are getting passed into rpc.

 All that said, I do intend that the ZeroMQ driver will use JSON when it
 lands in Folsom.   (it currently Pickles, but only because there was a
 bug in Essex at one point, breaking  JSON serialization)

There may still be some datetime related problems lurking in there, but
we need to fix them as they come up.  If it causes a problem for you,
it's likely a problem for the other drivers, as well.

-- 
Russell Bryant

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Justin Santa Barbara
Thanks for the pointer.  I found the etherpad:
http://etherpad.openstack.org/VersioningNovaRPCAPIs

Is there a blueprint that came / is coming out of that?

I think the data representation is orthogonal e.g. in theory, we could even
use XML schemas:
PyDict -- XML -- XML Schema Validation -- Warn / Throw
   \- JSON - Rabbit

As it sounds like we are using JSON, it makes most sense to use JSON
schemas.  But doing so doesn't preclude us from using e.g. a binary format
in future.

I'd imagine that the RPC mechanism would simply select the relevant schema
based on a few attributes of the dict (likely the queue  method name).  So
this would remain transparent to the caller.

A basic RPC mechanisms might validate and warn against a JSON schema,
another might use the schema to build a compact binary representation.  But
I think we can achieve this without changing nova.



On Tue, Apr 24, 2012 at 8:39 AM, Eric Windisch e...@cloudscaling.comwrote:


 Actually, I think JSON schema for our message-bus messages might be a
 really good idea (tm).  Violations could just be warnings until we get
 things locked down... maybe I should propose a blueprint? (Although I have
 enough of a blueprint backlog as it is...)


 This was discussed at the summit in (I believe) the API versioning talk.
 There is a strong bias toward JSON inside RPC messages. However, this is
 actually transparent to Nova as the RPC implementations do the decoding and
 encoding. It is also hard to test and trigger such warnings as, as far as
 Nova knows, all the interfaces pass python data types, not JSON.  Some RPC
 mechanisms could transparently serialize.  As long as there is an
 abstraction layer, it should be oblivious to the serialization and we
 should not care too strongly.

 There was a patch a few weeks ago that has enforced using a common RPC
 exception serializer using JSON, which I'm not sure is, or is not, a good
 thing. I haven't yet updated the ZeroMQ driver to use this, but am in the
 process of making these changes as I update for Folsom.

 All that said, I do intend that the ZeroMQ driver will use JSON when it
 lands in Folsom.   (it currently Pickles, but only because there was a bug
 in Essex at one point, breaking  JSON serialization)

 --
 Eric Windisch



___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Joshua Harlow
I'm more in favor of just having a schema, I don't care if that compiles to 
protocol buffers, json, NEWAWESOMEhipsterMSGFORMAT.

That schema will force people to think a little more when they add messages, 
and it will automatically document the messages that are being sent around.

That's a big win I think and is a step to getting those schemas versioned...

Just don't do pickling, pleasee (for other language users).

On 4/24/12 8:39 AM, Eric Windisch e...@cloudscaling.com wrote:



Actually, I think JSON schema for our message-bus messages might be a really 
good idea (tm).  Violations could just be warnings until we get things locked 
down... maybe I should propose a blueprint? (Although I have enough of a 
blueprint backlog as it is...)

This was discussed at the summit in (I believe) the API versioning talk. There 
is a strong bias toward JSON inside RPC messages. However, this is actually 
transparent to Nova as the RPC implementations do the decoding and encoding. It 
is also hard to test and trigger such warnings as, as far as Nova knows, all 
the interfaces pass python data types, not JSON.  Some RPC mechanisms could 
transparently serialize.  As long as there is an abstraction layer, it should 
be oblivious to the serialization and we should not care too strongly.

There was a patch a few weeks ago that has enforced using a common RPC 
exception serializer using JSON, which I'm not sure is, or is not, a good 
thing. I haven't yet updated the ZeroMQ driver to use this, but am in the 
process of making these changes as I update for Folsom.

All that said, I do intend that the ZeroMQ driver will use JSON when it lands 
in Folsom.   (it currently Pickles, but only because there was a bug in Essex 
at one point, breaking  JSON serialization)
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Eric Windisch
 
 The change was just to the fake rpc backend to help catch more errors in
 unit tests where non-primitive types are getting passed into rpc.
 
 


My current code should still work, but the tests seem to have eliminated the 
more generic exception handling case with the assumption that testing the 
exceptions and the exception serialization/deserialization is sufficient.

That said, I'd rather utilize *more* stuff from rpc.common, so won't complain 
too badly. I know that the ZeroMQ driver could be thinned a bit, by better 
using some of the primitives available in rpc.common and we might be able to 
refactor some of the stuff in ampq.py to be more generically useful (maybe).  
Right now, none of that is a huge concern to me, we can get it integrated and 
do the DRY later.

-- 
Eric Windisch

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-24 Thread Russell Bryant
On 04/24/2012 01:25 PM, Joshua Harlow wrote:
 I’m more in favor of just having a schema, I don’t care if that compiles
 to protocol buffers, json, NEWAWESOMEhipsterMSGFORMAT.
 
 That schema will force people to think a little more when they add
 messages, and it will automatically document the messages that are being
 sent around.
 
 That’s a big win I think and is a step to getting those schemas
 versioned...

I'm not sure a schema is really necessary aside from the Python classes
themselves.  They're internal APIs, so they shouldn't be used from
outside of Nova.  A schema would be useful if we had to define the
interfaces in some language neutral-format, but I don't think that
really matters here.

I'm going to work on a proposal / prototype for how we can handle
versioning, though.  The big goal here is making sure that we can
maintain compatibility with the previous release.

-- 
Russell Bryant

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Thierry Carrez
Philipp Wollermann wrote:
 What's the advantage of replacing the native EC2 compatibility layer with 
 AWSOME from a user / operator point of view?

One thing that was mentioned is that the proxy could be run on top of a
public cloud that chose to only deploy OpenStack API support.

-- 
Thierry Carrez (ttx)
Release Manager, OpenStack

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Doug Hellmann
On Mon, Apr 23, 2012 at 8:39 AM, Thierry Carrez thie...@openstack.orgwrote:

 Philipp Wollermann wrote:
  What's the advantage of replacing the native EC2 compatibility layer
 with AWSOME from a user / operator point of view?

 One thing that was mentioned is that the proxy could be run on top of a
 public cloud that chose to only deploy OpenStack API support.


It also makes project management easier, as the people interested in
maintaining it can focus on the separate repository.

Doug
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Nick Barcet
On 04/23/2012 02:39 PM, Thierry Carrez wrote:
 Philipp Wollermann wrote:
 What's the advantage of replacing the native EC2 compatibility layer with 
 AWSOME from a user / operator point of view?
 
 One thing that was mentioned is that the proxy could be run on top of a
 public cloud that chose to only deploy OpenStack API support.

Another reason why we started this project is that we believe this
architecture would be easier to use and maintain than what currently
exists in Nova. This is why we are proposing this work as a longer term
solution for EC2 compatibility.

Nick



signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Justin Santa Barbara

 What's the advantage of replacing the native EC2 compatibility layer with
 AWSOME from a user / operator point of view?


Although I wasn't able to attend the design summit session, right now we
have two native APIs, which means we have two paths into the system.
 That is poor software engineering, because we must code and debug
everything twice.  Some developers will naturally favor one API over the
other, and so disparities happen.  Today, both APIs are effectively using
an undocumented private API, which is problematic.  We also can't really
extend the EC2 API, so it is holding us back as we extend OpenStack's
capabilities past those of the legacy clouds.

With one native API, we can focus all our energies on making sure that API
works.  Then, knowing that the native API works, we can build other APIs on
top through simple translation layers, and they will work also.  Other APIs
can be built on top in the same way (e.g. OCCI)

Which is a long way of saying the external approach will result in _all_
APIs (OpenStack, EC2, OCCI etc) becoming more reliable, more secure and
just more AWSOME.

Justin
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Joshua Harlow
We just have to be careful here to make sure that lots and lots of tests are 
done to ensure that the EC2 response is valid as well as to ensure the 
performance is not de-graded by having this proxy layer. If it does get 
de-graded then there needs to be some work done to ensure that this does not 
happen (ie new features in the openstack-api). Hopefully this proxy layer can 
also remain stateless, for as long as possible (for everyone's sanity).

On 4/23/12 7:57 AM, Nick Barcet nick.bar...@canonical.com wrote:

On 04/23/2012 02:39 PM, Thierry Carrez wrote:
 Philipp Wollermann wrote:
 What's the advantage of replacing the native EC2 compatibility layer with 
 AWSOME from a user / operator point of view?

 One thing that was mentioned is that the proxy could be run on top of a
 public cloud that chose to only deploy OpenStack API support.

Another reason why we started this project is that we believe this
architecture would be easier to use and maintain than what currently
exists in Nova. This is why we are proposing this work as a longer term
solution for EC2 compatibility.

Nick


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Eric Windisch
Creating a contract on the private API will allow the external APIs to be 
created and tested without needing a translation layer, even if contributory 
APIs were developed outside of the project (such as in AWSOME).

It is clearly better, architecturally, if the EC2/OCCI apis can access the 
internal apis directly. The RPC and database can be made to scale in Nova, but 
a REST endpoint won't be as reliable or scale as well. 

-- 
Eric Windisch


On Monday, April 23, 2012 at 11:15 AM, Justin Santa Barbara wrote:

  What's the advantage of replacing the native EC2 compatibility layer with 
  AWSOME from a user / operator point of view?
 
 Although I wasn't able to attend the design summit session, right now we have 
 two native APIs, which means we have two paths into the system.  That is 
 poor software engineering, because we must code and debug everything twice.  
 Some developers will naturally favor one API over the other, and so 
 disparities happen.  Today, both APIs are effectively using an undocumented 
 private API, which is problematic.  We also can't really extend the EC2 API, 
 so it is holding us back as we extend OpenStack's capabilities past those of 
 the legacy clouds.  
 
 With one native API, we can focus all our energies on making sure that API 
 works.  Then, knowing that the native API works, we can build other APIs on 
 top through simple translation layers, and they will work also.  Other APIs 
 can be built on top in the same way (e.g. OCCI) 
 
 Which is a long way of saying the external approach will result in _all_ APIs 
 (OpenStack, EC2, OCCI etc) becoming more reliable, more secure and just more 
 AWSOME.
 
 Justin
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net (mailto:openstack@lists.launchpad.net)
 Unsubscribe : https://launchpad.net/~openstack
 More help : https://help.launchpad.net/ListHelp
 
 


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Russell Bryant
On 04/23/2012 10:42 AM, Doug Hellmann wrote:
 
 
 On Mon, Apr 23, 2012 at 8:39 AM, Thierry Carrez thie...@openstack.org
 mailto:thie...@openstack.org wrote:
 
 Philipp Wollermann wrote:
  What's the advantage of replacing the native EC2 compatibility
 layer with AWSOME from a user / operator point of view?
 
 One thing that was mentioned is that the proxy could be run on top of a
 public cloud that chose to only deploy OpenStack API support.

This makes sense.

 It also makes project management easier, as the people interested in
 maintaining it can focus on the separate repository.

I'm not sure I buy into this, though.  Why is it harder for people that
are interested in EC2 support to work in the existing nova repo?  If
people want to collaborate before pushing into mainline, that can be
done via feature branches, too.

It risks making EC2 development harder, as well.  Pulling it out of nova
completely risks allowing the people that don't care about EC2 to care
even less.  It could make it easier for people to make changes that make
EC2 compatibility harder to maintain.

-- 
Russell Bryant

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Doug Hellmann
Martin Packman mentioned that there are some other groups interested in
creating a separate AWS validation test suite, and that AWSOME would
probably be using that. I think Joshua Harlow from Yahoo! was working in
that area, too.

On Mon, Apr 23, 2012 at 1:38 PM, Joshua Harlow harlo...@yahoo-inc.comwrote:

  We just have to be careful here to make sure that lots and lots of tests
 are done to ensure that the EC2 response is valid as well as to ensure the
 performance is not de-graded by having this proxy layer. If it does get
 de-graded then there needs to be some work done to ensure that this does
 not happen (ie new features in the openstack-api). Hopefully this proxy
 layer can also remain stateless, for as long as possible (for everyone's
 sanity).


 On 4/23/12 7:57 AM, Nick Barcet nick.bar...@canonical.com wrote:

 On 04/23/2012 02:39 PM, Thierry Carrez wrote:
  Philipp Wollermann wrote:
  What's the advantage of replacing the native EC2 compatibility layer
 with AWSOME from a user / operator point of view?
 
  One thing that was mentioned is that the proxy could be run on top of a
  public cloud that chose to only deploy OpenStack API support.

 Another reason why we started this project is that we believe this
 architecture would be easier to use and maintain than what currently
 exists in Nova. This is why we are proposing this work as a longer term
 solution for EC2 compatibility.

 Nick



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Joshua Harlow
Ya, we should figure out how to organize to make this happen.

It seems to provide many benefits (not just for openstack).

Maybe setup a little working group around this...

On 4/23/12 12:01 PM, Doug Hellmann doug.hellm...@dreamhost.com wrote:

Martin Packman mentioned that there are some other groups interested in 
creating a separate AWS validation test suite, and that AWSOME would probably 
be using that. I think Joshua Harlow from Yahoo! was working in that area, too.

On Mon, Apr 23, 2012 at 1:38 PM, Joshua Harlow harlo...@yahoo-inc.com wrote:
We just have to be careful here to make sure that lots and lots of tests are 
done to ensure that the EC2 response is valid as well as to ensure the 
performance is not de-graded by having this proxy layer. If it does get 
de-graded then there needs to be some work done to ensure that this does not 
happen (ie new features in the openstack-api). Hopefully this proxy layer can 
also remain stateless, for as long as possible (for everyone's sanity).


On 4/23/12 7:57 AM, Nick Barcet nick.bar...@canonical.com 
http://nick.bar...@canonical.com  wrote:

On 04/23/2012 02:39 PM, Thierry Carrez wrote:
 Philipp Wollermann wrote:
 What's the advantage of replacing the native EC2 compatibility layer with 
 AWSOME from a user / operator point of view?

 One thing that was mentioned is that the proxy could be run on top of a
 public cloud that chose to only deploy OpenStack API support.

Another reason why we started this project is that we believe this
architecture would be easier to use and maintain than what currently
exists in Nova. This is why we are proposing this work as a longer term
solution for EC2 compatibility.

Nick



___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp



___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Eric Windisch



On Monday, April 23, 2012 at 3:42 PM, Justin Santa Barbara wrote:

 I didn't realize people were willing to do so.
 

Ah yes, well, that problem might still remain.  There are certainly seem to be 
volunteers to work on the versioning code, but defining, tagging, and adhering 
to API contracts are another matter...

-- 
Eric Windisch___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Joshua Harlow
How are REST endpoints not reliable or scalable ;-)

I'd like to know, seeing as the web is built on them :-)

It is clearly better to access the internal API's if performance is an issue, 
from an abstraction point of view if the EC2 apis are a view on top of the OS 
apis then that seems to make sense (if it can be done). Although a 
counter-point I will accept is that if u have 2 apis that openstack supports 
internally, ie the EC2/OS apis this does force u to think more about the APIs 
that u are building (to ensure it will work with the 2 external apis), which 
does help force better thinking as to how your API's will be designed. When u 
have 2+ entrypoints using an API, then u know that 3+ will be pretty easy, but 
if u only have 1 entrypoint using your API, then u might just have screwed 
yourself.

On 4/23/12 11:01 AM, Eric Windisch e...@cloudscaling.com wrote:


 Creating a contract on the private API will allow the external APIs to be 
created and tested without needing a translation layer, even if contributory 
APIs were developed outside of the project (such as in AWSOME).

It is clearly better, architecturally, if the EC2/OCCI apis can access the 
internal apis directly. The RPC and database can be made to scale in Nova, but 
a REST endpoint won't be as reliable or scale as well.

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Doug Davis
+1 if you want people to care about something then it should be part of 
the main repo and part of the regular regression testing. 

thanks
-Doug
__
STSM |  Standards Architect  |  IBM Software Group
(919) 254-6905  |  IBM 444-6905  |  d...@us.ibm.com
The more I'm around some people, the more I like my dog.



Russell Bryant rbry...@redhat.com 
Sent by: openstack-bounces+dug=us.ibm@lists.launchpad.net
04/23/2012 02:16 PM

To
openstack@lists.launchpad.net
cc

Subject
Re: [Openstack] Canonical AWSOME






On 04/23/2012 10:42 AM, Doug Hellmann wrote:
 
 
 On Mon, Apr 23, 2012 at 8:39 AM, Thierry Carrez thie...@openstack.org
 mailto:thie...@openstack.org wrote:
 
 Philipp Wollermann wrote:
  What's the advantage of replacing the native EC2 compatibility
 layer with AWSOME from a user / operator point of view?
 
 One thing that was mentioned is that the proxy could be run on top 
of a
 public cloud that chose to only deploy OpenStack API support.

This makes sense.

 It also makes project management easier, as the people interested in
 maintaining it can focus on the separate repository.

I'm not sure I buy into this, though.  Why is it harder for people that
are interested in EC2 support to work in the existing nova repo?  If
people want to collaborate before pushing into mainline, that can be
done via feature branches, too.

It risks making EC2 development harder, as well.  Pulling it out of nova
completely risks allowing the people that don't care about EC2 to care
even less.  It could make it easier for people to make changes that make
EC2 compatibility harder to maintain.

-- 
Russell Bryant

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Eric Windisch



On Monday, April 23, 2012 at 4:00 PM, Joshua Harlow wrote:

 Re: [Openstack] Canonical AWSOME How are REST endpoints not reliable or 
 scalable ;-)
  
 I’d like to know, seeing as the web is built on them :-)
The resiliency of the internet is actually built on BGP. REST endpoints fall 
over constantly. Look no further than Google 500 errors, the fail-whale, etc. 
Even the EC2 API has been known to fall-over.  Making HTTP services reliable is 
not as trivial as it should be. The reason is because they are single points.

It is possible, through running many services and doing intelligent load 
balancing and failover, to make REST reasonably reliable. However, I'd rather 
not broker my requests through a questionably reliable REST broker, and send 
messages directly to their destinations to RPC consumers which are already 
running (and required) on those machines.  If the destination is offline, it 
doesn't need my message.  If the REST broker is offline, the recipient on the 
other end of that broker should still be guaranteed delivery…

The problem can be simplified as:
* How many REST endpoints do you need to service 100 compute machines? How many 
REST endpoints do you need to service 100 compute machines? How many points 
of failure exist?
* How many compute machines do you need to service 100 compute machines? How 
many compute machines do you need to service 100 compute machines?  How 
many points of failure exist?

It is unclear how many REST endpoints you'll need. The compute machines scale 
as they scale, they're not dependent on a REST broker. Every compute machine 
itself can fail, although this failure is likely trivial (messages to a dead 
machine are generally vain).  Meanwhile, the REST service has to deal with dead 
compute machines *and* the death of REST services supporting the architecture.

--  
Eric Windisch___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Andy Edmonds
+1 on this. Implementing adapter style code may also introduce additional
state maintenance within the proxy/adapter to the eventual target API and
if not at a minimum more complexity. Also care would be needed to avoid
leaky abstractions [1]. However, I don't necessarily agree that a REST
endpoint (esp. stateless ones like OSAPI) can't be scaled easily.

Justin makes a very interesting point with regard to the non-extensible
nature of the EC2 API (unlike that of OSAPI or OCCI). Perhaps it is an 'API
parity' challenge ( i.e. where API X is functionally equivalent to OSAPI)
and solution (having the ability and maintaining parity) that is key to the
discussion?

.2c

Andy
andy.edmonds.be

[1] http://www.joelonsoftware.com/articles/LeakyAbstractions.html

On Mon, Apr 23, 2012 at 19:01, Eric Windisch e...@cloudscaling.com wrote:

  Creating a contract on the private API will allow the external APIs to
 be created and tested without needing a translation layer, even if
 contributory APIs were developed outside of the project (such as in AWSOME).

 It is clearly better, architecturally, if the EC2/OCCI apis can access the
 internal apis directly. The RPC and database can be made to scale in Nova,
 but a REST endpoint won't be as reliable or scale as well.

 --
 Eric Windisch

 On Monday, April 23, 2012 at 11:15 AM, Justin Santa Barbara wrote:

 What's the advantage of replacing the native EC2 compatibility layer with
 AWSOME from a user / operator point of view?


 Although I wasn't able to attend the design summit session, right now we
 have two native APIs, which means we have two paths into the system.
  That is poor software engineering, because we must code and debug
 everything twice.  Some developers will naturally favor one API over the
 other, and so disparities happen.  Today, both APIs are effectively using
 an undocumented private API, which is problematic.  We also can't really
 extend the EC2 API, so it is holding us back as we extend OpenStack's
 capabilities past those of the legacy clouds.

 With one native API, we can focus all our energies on making sure that API
 works.  Then, knowing that the native API works, we can build other APIs on
 top through simple translation layers, and they will work also.  Other APIs
 can be built on top in the same way (e.g. OCCI)

 Which is a long way of saying the external approach will result in _all_
 APIs (OpenStack, EC2, OCCI etc) becoming more reliable, more secure and
 just more AWSOME.

 Justin

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help : https://help.launchpad.net/ListHelp



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-23 Thread Michael J Fork

+1 - this is important for both incubated projects and vendor
implementations.  I seem to recall one of the sessions talking about gating
commits to passing an upgrade test from the previous stable release and
these interfaces are an obvious candidate.  Identifying the specific
interfaces will take some work, but the plugin points (e.g. scheduler, rpc,
etc) are a good starting point.

Michael

-
Michael Fork
Cloud Architect, Emerging Solutions
IBM Systems  Technology Group



From:   Justin Santa Barbara jus...@fathomdb.com
To: Eric Windisch e...@cloudscaling.com,
Cc: openstack openstack@lists.launchpad.net
Date:   04/23/2012 05:43 PM
Subject:Re: [Openstack] Canonical AWSOME
Sent by:openstack-bounces+mjfork=us.ibm@lists.launchpad.net




On Mon, Apr 23, 2012 at 12:31 PM, Eric Windisch e...@cloudscaling.com
wrote:
  There seemed to be a strong agreement at the summit regarding the need
  for contracts on those private apis. This is because those APIs are no
  longer really private, they're shared amongst incubated projects.
  Furthermore, it seems this may be required to support version
  heterogeneity during upgrades with versioned RPC calls.

  The incubated projects could use REST APIs, but we're talking of
  introducing artificial scaling and reliability constraints to do that.
  It seems far better to me, if we can have contracts on those internal
  APIs and use them between the incubated projects.  There is a strong
  enough push to maintain these versions *anyway*.

Ah - thanks for explaining that.  I'm all for locking down these internal
interfaces.  I didn't realize people were willing to do so.
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp
inline: graycol.gif___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-19 Thread Alisson Soares Limeira Pontes
I have the same doubt as you Philipp.

By the way, some days ago I read Citrix takes cloudstack to apache,
abandons openstack [
http://www.pcworld.com/businesscenter/article/253084/citrix_takes_cloudstack_to_apache_abandons_openstack.html
]

They said that one of the reasons was that they believe supporting Amazon's
API is crucial to the success of cloud platforms and While OpenStack
supports some Amazon APIs, it appears more interested in backing its own
APIs.

I could not understand, since I can use euca2ools without problem with
openstack.

+1


2012/4/17 Philipp Wollermann wollermann_phil...@cyberagent.co.jp

 Hi,

 I just saw the announcement of Canonical's AWSOME (
 https://launchpad.net/awsome), providing a translation proxy from the EC2
 API to the OpenStack API.

 I'm definitely not an expert regarding OpenStack, but… doesn't OpenStack
 already support an EC2 compatibility API?
 At least, I can use the euca2ools without problems on OpenStack Nova
 Diablo. I haven't tried Swift yet.

 What's the advantage of replacing the native EC2 compatibility layer with
 AWSOME from a user / operator point of view?

 Thanks :)
 Philipp


-- 
Alisson Pontes
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Canonical AWSOME

2012-04-19 Thread Joshua Harlow
Please see:

http://etherpad.openstack.org/FolsomEC2Compatibility

Euca2ools is a a start, but there is more than meets the eye that is 
missing/lacking/incorrect in the EC2 layer.

And there are many ways of solving it, but I think one of the key take-aways 
from that session is that we need a validation suite in order to figure out 
even where to begin (ie how can u fix something if u do not know how broken it 
is in the first place).

On 4/19/12 10:58 AM, Alisson Soares Limeira Pontes apon...@cpqd.com.br 
wrote:

I have the same doubt as you Philipp.

By the way, some days ago I read Citrix takes cloudstack to apache, abandons 
openstack 
[http://www.pcworld.com/businesscenter/article/253084/citrix_takes_cloudstack_to_apache_abandons_openstack.html]

They said that one of the reasons was that they believe supporting Amazon's API 
is crucial to the success of cloud platforms and While OpenStack supports some 
Amazon APIs, it appears more interested in backing its own APIs.

I could not understand, since I can use euca2ools without problem with 
openstack.

+1


2012/4/17 Philipp Wollermann wollermann_phil...@cyberagent.co.jp
Hi,

I just saw the announcement of Canonical's AWSOME 
(https://launchpad.net/awsome), providing a translation proxy from the EC2 API 
to the OpenStack API.

I'm definitely not an expert regarding OpenStack, but... doesn't OpenStack 
already support an EC2 compatibility API?
At least, I can use the euca2ools without problems on OpenStack Nova Diablo. I 
haven't tried Swift yet.

What's the advantage of replacing the native EC2 compatibility layer with 
AWSOME from a user / operator point of view?

Thanks :)
Philipp
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


[Openstack] Canonical AWSOME

2012-04-17 Thread Philipp Wollermann
Hi,

I just saw the announcement of Canonical's AWSOME 
(https://launchpad.net/awsome), providing a translation proxy from the EC2 API 
to the OpenStack API.

I'm definitely not an expert regarding OpenStack, but… doesn't OpenStack 
already support an EC2 compatibility API?
At least, I can use the euca2ools without problems on OpenStack Nova Diablo. I 
haven't tried Swift yet.

What's the advantage of replacing the native EC2 compatibility layer with 
AWSOME from a user / operator point of view?

Thanks :)
Philipp

-- 
Philipp Wollermann

Infrastructure Engineer
CyberAgent, Inc. (Tokyo)
https://github.com/philwo



___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp