What's the Azure story with Octopus?

If I have some parts of my app on Azure, how can I work them into my Octopus deployments?

Same for me, I found Octopus very valuable but the support for Azure is kind of a mandatory requirement for a NET saas app.
I can imagine to have a worker on Azure that acts as a Tentacle and port the commands to Azure API where you can deploy: workers, websites, services, dbs

That would be really nice!

Hi Sean,

Currently we support Tentacle running on Windows Azure VM roles. Deployment of web and worker roles is possible through PowerShell scripts and others are doing it, but we’re going to improve this in a future release.

Paul

Hi Paul

That’s good news, thanks for the reply.

Cheers

Sean

We’re about to POC Azure and keen to see how you support web and worker roles.

Hi,

In the next release we’re going two new deployment step types:

  • Deploy via FTP
    In this step we’ll extract a NuGet package on the Octopus server, then “sync” it to an FTP/FTPS server. This will also make it possible to deploy Azure Websites as they support FTP.
  • Deploy an Azure cloud service package
    In this step, we’ll extract a NuGet package on the Octopus service which should contain an Azure cloud service package (.cspkg) (we’ll extend Octo.exe or OctoPack to make it easy to re-pack a .cspkg as a .nupkg). We’ll then upload the cspkg to blob storage, and then deploy it to Azure.

A few notes:

  • Both of these step types are run directly on the Octopus server instead of on Tentacles.
  • Both support the usual XML updates and transforms that we currently do, plus the execution of the usual PowerShell scripts (on the Octopus server). So you could, for example, use PowerShell to update the files prior to FTP or prior to being uploaded to Azure.

For Azure cloud service packages, we’re also going to provide two options to manage the instance count:

  • Use the instance count settings in the CSCFG
  • Keep the instance count settings in the currently deployed service when updating

So for example, if you originally deployed to production with two instances, then scaled it using the Azure management portal to 4, we can either use 2 (specified in the cscfg) or 4 (which we’ll fetch from the management API).

We’ll also support variable substitution in the Azure cscfg file. For example:

<Role name="WorkerRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <Setting name="MyConnectionString" value="blah blah" />
  </ConfigurationSettings>
</Role>

We’ll replace the “value” attribute of that setting if you have an Octopus variable named WorkerRole1/MyConnectionString. Note that the setting is prefixed with the name of the role to allow different settings for different roles.

I’d love to hear any feedback on these two features as I’m currently in the middle of building them out.

Paul

That sounds like everything I’m going to want - nice one!

Hi,
Has the octopack been extended to create a nuget package with cloudservice package? —

Deploy an Azure cloud service package
In this step, we’ll extract a NuGet package on the Octopus service which should contain an Azure cloud service package (.cspkg) (we’ll extend Octo.exe or OctoPack to make it easy to re-pack a .cspkg as a .nupkg). We’ll then upload the cspkg to blob storage, and then deploy it to Azure.

Thanks

This email account has been disabled.
You message has been forwarded to raffaeu@gmail.com.
If the message is not “Spam”, “Scam” or something like that, you will get
an answer within few days.

Thank you,
Raffaeu

Also wanting to know if octoPack is about to support azure cloud services? Any news on this?