How do you change the size of web/worker roles by environment?

rajindersingh's Avatar


27 Mar, 2015 06:16 PM

Azure cloud service configuration only allow us to change things like app settings and number of role instances that are provisioned. However the size of roles is defined in servicedefinition.csdef file.
How are folks handling different size roles in different azure environment.
For example we may run 2 small web servers but in production we want to run 3 large web roles. We can change the number easily but how can one change the size of role from small to large.

One thought I had was to have different deployment projects for each environment.
DeployToDev will contain the same web/worker roles but it will define the size of roles and other development environment related appSettings.
DeployToProd will contain the same web/worker roles but it will define the size of roles and other production environment related appSettings.

Other option I was considering was define different projects in AppVeyor for each environment. I can update servicedefinition before the deployment package is created.

Just wanted to see how others are doing this.


  1. 1 Posted by Malyngo on 28 Mar, 2015 02:40 PM

    Malyngo's Avatar

    This is what I do: I run a pre-build powershell script on my development branch that will change the ServiceDefinition file to another size:
    So for development, where I only want a small instance, I use this to change the definition to use a small one:

    $xml = xml
  2. 2 Posted by Malyngo on 28 Mar, 2015 03:13 PM

    Malyngo's Avatar

    Markup has messed up my code, the first line should look like this:
    $xml = [xml](Get-Content 'C:\projects\gitreponame\cloudserviceprojectname\ServiceDefinition.csdef')

  3. Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 01:55 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac