New Azure Resource Manager provider
Andrew Wilkins
andrew.wilkins at canonical.com
Fri Nov 6 10:14:21 UTC 2015
Hi everyone,
I've been working on a new Juju provider for Microsoft Azure over the last
few weeks, making use of the new Azure Resource Manager (ARM) APIs. The
existing Azure provider is based on the older Service Management APIs.
There's a few interesting things about this provider which I'd like to
share.
The new ARM APIs are much more flexible, and mean we will no longer have to
give up the ability to use unit placement in Azure. By default your units
will be deployed to new machines, and those machines will be placed in an
Availability Set along with the rest of the units of the service. Azure
provides SLAs when you have two or more machines (i.e. units) in an
Availability Set. So any service that supports automatic fail-over will
benefit from this.
Storage is supported, as it was in the old Azure provider. The only
difference is that the new provider's storage supports persistent volumes,
whereas the old one did not. There is not currently support for network
spaces, but I do not anticipate it to be difficult to add.
There is provisional support for running multiple Azure environments in the
one Juju controller. In the new Azure, resources are grouped under (aptly
named) Resource Groups. We represent each environment/model as a separate
resource group; each of these has its own VMs, storage, etc. All machines
in all environments are connected to a single "internal" virtual network,
so that machines can communicate with one another and to the controllers.
Finally, we'll not be using cloud-images.canonical.com to select images,
but instead we'll use Azure's built-in image catalogue. Canonical publishes
Ubuntu Server images, so we're using effectively using
cloud-images.canonical.com by proxy for Ubuntu. What's most interesting
about using the Azure catalogue is that we can trivially start Windows VMs.
So with the new provider, you can do:
juju add-machine --series=win2012
... and it'll just work. No custom image metadata up my sleeve.
(If you're developing and need to upload Windows agent binaries, look out
for my next email.)
Real deployment of a Powershell charm based on
https://github.com/cloudbase/windows-charms-boilerplate:
http://paste.ubuntu.com/13123095/
The code for the provider is all here:
https://github.com/axw/juju/tree/azure-arm/provider/azure
And there's a wiki page describing some of the details here:
https://github.com/juju/juju/wiki/Azure-provider-design-implementation-notes
There's one piece left to do before this can be proposed for merging, which
is backwards-compatibility for existing Azure environments. That should be
completed by end of next week.
Cheers,
Andrew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju-dev/attachments/20151106/18de23b6/attachment.html>
More information about the Juju-dev
mailing list