The only thing that worries me about the SDK vs REST api is the
uncertainity of "when" that change (required for promotion) will be
made.

We have always stated and made efforts to make it clear that providers
in labs are not production ready. We can make non-backwards compatible
changes there, completely refactor the interfaces, or even drop
providers if there is no hope they can be promoted. However, despite
all these well-known statements, people still uses providers in labs,
and we have to (up to a certain level) care about that. As Andrea
said, Apache Brooklyn will use the Azure support and, as other users,
it will need it to be "jclouds compliant"; it will expect to provide
the same feature set and architecture than other providers.

We can live without this while in labs, but... when would the
change/refactor to the rest API happen? This uncertainity is my only
worry. As you said, in X months the initial contributors might not be
active maintainers (it is ok, we can maintain and evolve it as long as
we have a testing account), but if at that point the provider still
uses the SDK, we'll be at a difficult position: we might not be able
to assume the effort to rework the provider but there might be active
users of it. We'll have a provider with very little hope to be
promoted, but users depending on it, and would be bad for everyone.

Experience shows that we should work on the tough parts when everyone
is full of energy, and that moment is now, when starting the
development.

Also there are being active contributions to the existing Azure
compute, and Andrea and Bhathiya are working on it now. They're doing
a good job and I think we have to take that into account too, so I
would propose the following:

* Raise a pull request to add your provider to labs. This way we can
see the ComputeService implementation and discuss it.
* Use that implementation as a reference of "what we want", and the
API calls that are needed to implement it.
* Then implement those REST api calls in the existing azure compute provider.
* And finally migrate the existing ComputeService implementation to
use those rest api calls.

This way I think we can join efforts: Andrea and Bhathiya already have
good knowledge of how jclouds works, and them (and I) can start
building the rest api calls based on the discussions of the
ComputeService implementation. With your knowledge of how Azure works
and how it should be used we can build the requirements for the
ComputeService implementation, and join forces to build the underlying
layer.

Does this sound like a good plan?

On 5 February 2015 at 19:18, Andrew Phillips <aphill...@qrmedia.com> wrote:
>> Eduard (who has also joined this list) will work on the initial
>> contribution in the coming days and we can start doing concrete stuff.
>
>
> Great! Looking forward to seeing the code doing the talking ;-)
>
> Regards
>
> ap

Reply via email to