You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@libcloud.apache.org by Peter Amstutz <pe...@curoverse.com> on 2015/08/20 19:55:46 UTC

[dev] Azure Resource Manager compute support

Hello everyone,

Libcloud 0.18 that shipped recently contains a Microsoft Azure compute
driver.  However, it is for the Azure Service Manager (ASM) API, which
is effectively deprecated in favor of the newer Azure Resource Manager
(ARM) API.  Unfortunately resources created through each API are
incompatible with the other -- it seems that they are actually two
entirely different systems.

I have developed an initial compute driver for the ARM API, with the
following features:
 * Authentication
 * List locations, sizes, images, nodes, networks, subnets, public ips, NICs
 * Create, destroy and reboot nodes

This baseline feature set is sufficient for our application, which
manages creating/destroying ephemeral compute nodes on demand from a
job queue.

I would like to contribute this work back to the libcloud community.
Going by the workflow at
https://libcloud.readthedocs.org/en/latest/development.html#contribution-workflow
the first step is to email the mailing list (done) and file a JIRA
ticket (done, https://issues.apache.org/jira/browse/LIBCLOUD-734).  I
have also pushed my development branch to
https://github.com/curoverse/libcloud/tree/azure_arm

It's not quite ready for a pull request (need to write tests) however
I invite anyone interested to preview the code and give feedback.

Thanks!
Peter

Re: [dev] Azure Resource Manager compute support

Posted by Richard Conway <ri...@elastacloud.com>.
Hi Peter,

Thanks. 

1. There's no irony there but yes more people use Windows on Azure than Linux so maybe I can help add this given that we span workloads on both operating systems.
2. Can you explain this a little more. Not sure what you mean by attaching block storage. Do you mean data disks?
3. Will check this create and delete is fairly trivial now with ARM
4. There's nothing like IAM in Azure - all authentication now centres around Azure AD.

I'm going to start taking a look over the next few days and running some short tests and should be able to give you some feedback by the weekend.

All the best,

Richard 

 
________________________________________
From: Peter Amstutz <pe...@curoverse.com>
Sent: 21 August 2015 15:58
To: dev@libcloud.apache.org
Subject: Re: [dev] Azure Resource Manager compute support

Hi Richard,

A few other notes that perhaps you could help with:

* Somewhat ironically given this is Azure, but currently it only
supports Linux VMs and not Windows VMs
* For our use case we only need ephemeral storage, so the APIs for
attaching block storage are not implemented
* It supports listing VM images but not creating or deleting them
* The APIs for key management are not implemented either, I'm not
clear what the equivalent feature is on Azure
* libcloud has "dns" and "loadbalancer" modules but not a general
purpose networking module for managing virtual networks, subnets,
virtual NICs, public IP addresses, etc so right now my compute driver
includes extensions for managing those resources.

I still need to put together a test framework for testing the existing
set of functions.  It would be very helpful if you could give some
feedback as to whether the existing feature set makes sense and
whether it addresses some of your use cases.  However I can't commit
to implementing features that we don't intend to use in our own
product.

Thanks,
Peter

On Fri, Aug 21, 2015 at 5:04 AM, Richard Conway <ri...@elastacloud.com> wrote:
> Hi Peter,
>
> That's great. I helped write the Azure RDFE compute driver and was planning on looking at this over the next couple of months. Really glad you built this and happy to plan out how to extend with a ARM v2 networking driver for libcloud if you're up for it.
>
> Happy to help write unit tests. Will take a look at the source this weekend.
>
> All the best,
>
> Richard Conway
> Azure and Big Data Architect/Developer | Elastacloud Limited |
Microsoft Regional Director, Azure MVP and Insider
> T. 0208 530 3999 (office) | 07590333990 (mobile)
> W. Web Site | My Linked In | My Blog | My Twitter | UK Azure User Group Twitter
>
>
> ________________________________________
> From: Peter Amstutz <pe...@curoverse.com>
> Sent: 20 August 2015 18:55
> To: dev@libcloud.apache.org
> Subject: [dev] Azure Resource Manager compute support
>
> Hello everyone,
>
> Libcloud 0.18 that shipped recently contains a Microsoft Azure compute
> driver.  However, it is for the Azure Service Manager (ASM) API, which
> is effectively deprecated in favor of the newer Azure Resource Manager
> (ARM) API.  Unfortunately resources created through each API are
> incompatible with the other -- it seems that they are actually two
> entirely different systems.
>
> I have developed an initial compute driver for the ARM API, with the
> following features:
>  * Authentication
>  * List locations, sizes, images, nodes, networks, subnets, public ips, NICs
>  * Create, destroy and reboot nodes
>
> This baseline feature set is sufficient for our application, which
> manages creating/destroying ephemeral compute nodes on demand from a
> job queue.
>
> I would like to contribute this work back to the libcloud community.
> Going by the workflow at
> https://libcloud.readthedocs.org/en/latest/development.html#contribution-workflow
> the first step is to email the mailing list (done) and file a JIRA
> ticket (done, https://issues.apache.org/jira/browse/LIBCLOUD-734).  I
> have also pushed my development branch to
> https://github.com/curoverse/libcloud/tree/azure_arm
>
> It's not quite ready for a pull request (need to write tests) however
> I invite anyone interested to preview the code and give feedback.
>
> Thanks!
> Peter

Re: [dev] Azure Resource Manager compute support

Posted by Peter Amstutz <pe...@curoverse.com>.
Hi Richard,

A few other notes that perhaps you could help with:

* Somewhat ironically given this is Azure, but currently it only
supports Linux VMs and not Windows VMs
* For our use case we only need ephemeral storage, so the APIs for
attaching block storage are not implemented
* It supports listing VM images but not creating or deleting them
* The APIs for key management are not implemented either, I'm not
clear what the equivalent feature is on Azure
* libcloud has "dns" and "loadbalancer" modules but not a general
purpose networking module for managing virtual networks, subnets,
virtual NICs, public IP addresses, etc so right now my compute driver
includes extensions for managing those resources.

I still need to put together a test framework for testing the existing
set of functions.  It would be very helpful if you could give some
feedback as to whether the existing feature set makes sense and
whether it addresses some of your use cases.  However I can't commit
to implementing features that we don't intend to use in our own
product.

Thanks,
Peter

On Fri, Aug 21, 2015 at 5:04 AM, Richard Conway <ri...@elastacloud.com> wrote:
> Hi Peter,
>
> That's great. I helped write the Azure RDFE compute driver and was planning on looking at this over the next couple of months. Really glad you built this and happy to plan out how to extend with a ARM v2 networking driver for libcloud if you're up for it.
>
> Happy to help write unit tests. Will take a look at the source this weekend.
>
> All the best,
>
> Richard Conway
> Azure and Big Data Architect/Developer | Elastacloud Limited |
Microsoft Regional Director, Azure MVP and Insider
> T. 0208 530 3999 (office) | 07590333990 (mobile)
> W. Web Site | My Linked In | My Blog | My Twitter | UK Azure User Group Twitter
>
>
> ________________________________________
> From: Peter Amstutz <pe...@curoverse.com>
> Sent: 20 August 2015 18:55
> To: dev@libcloud.apache.org
> Subject: [dev] Azure Resource Manager compute support
>
> Hello everyone,
>
> Libcloud 0.18 that shipped recently contains a Microsoft Azure compute
> driver.  However, it is for the Azure Service Manager (ASM) API, which
> is effectively deprecated in favor of the newer Azure Resource Manager
> (ARM) API.  Unfortunately resources created through each API are
> incompatible with the other -- it seems that they are actually two
> entirely different systems.
>
> I have developed an initial compute driver for the ARM API, with the
> following features:
>  * Authentication
>  * List locations, sizes, images, nodes, networks, subnets, public ips, NICs
>  * Create, destroy and reboot nodes
>
> This baseline feature set is sufficient for our application, which
> manages creating/destroying ephemeral compute nodes on demand from a
> job queue.
>
> I would like to contribute this work back to the libcloud community.
> Going by the workflow at
> https://libcloud.readthedocs.org/en/latest/development.html#contribution-workflow
> the first step is to email the mailing list (done) and file a JIRA
> ticket (done, https://issues.apache.org/jira/browse/LIBCLOUD-734).  I
> have also pushed my development branch to
> https://github.com/curoverse/libcloud/tree/azure_arm
>
> It's not quite ready for a pull request (need to write tests) however
> I invite anyone interested to preview the code and give feedback.
>
> Thanks!
> Peter

Re: [dev] Azure Resource Manager compute support

Posted by Richard Conway <ri...@elastacloud.com>.
Hi Peter,

That's great. I helped write the Azure RDFE compute driver and was planning on looking at this over the next couple of months. Really glad you built this and happy to plan out how to extend with a ARM v2 networking driver for libcloud if you're up for it. 

Happy to help write unit tests. Will take a look at the source this weekend.

All the best,

Richard Conway
Azure and Big Data Architect/Developer | Elastacloud Limited |
 Microsoft Regional Director, Azure MVP and Insider
T. 0208 530 3999 (office) | 07590333990 (mobile)
W. Web Site | My Linked In | My Blog | My Twitter | UK Azure User Group Twitter


________________________________________
From: Peter Amstutz <pe...@curoverse.com>
Sent: 20 August 2015 18:55
To: dev@libcloud.apache.org
Subject: [dev] Azure Resource Manager compute support

Hello everyone,

Libcloud 0.18 that shipped recently contains a Microsoft Azure compute
driver.  However, it is for the Azure Service Manager (ASM) API, which
is effectively deprecated in favor of the newer Azure Resource Manager
(ARM) API.  Unfortunately resources created through each API are
incompatible with the other -- it seems that they are actually two
entirely different systems.

I have developed an initial compute driver for the ARM API, with the
following features:
 * Authentication
 * List locations, sizes, images, nodes, networks, subnets, public ips, NICs
 * Create, destroy and reboot nodes

This baseline feature set is sufficient for our application, which
manages creating/destroying ephemeral compute nodes on demand from a
job queue.

I would like to contribute this work back to the libcloud community.
Going by the workflow at
https://libcloud.readthedocs.org/en/latest/development.html#contribution-workflow
the first step is to email the mailing list (done) and file a JIRA
ticket (done, https://issues.apache.org/jira/browse/LIBCLOUD-734).  I
have also pushed my development branch to
https://github.com/curoverse/libcloud/tree/azure_arm

It's not quite ready for a pull request (need to write tests) however
I invite anyone interested to preview the code and give feedback.

Thanks!
Peter