Application deployment for cloud

For PaaS, you upload a package and configuration (cspkg and cscfg from your build) to the cloud service, this is deployed by Azure automatically, you can specify how many (and size) machines you want your application to be deployed over, and it's configurable via the Portal (and outside using PowerShell/REST) if you want to.

Application deployment for cloud

For PaaS, you upload a package and configuration (cspkg and cscfg from your build) to the cloud service, this is deployed by Azure automatically, you can specify how many (and size) machines you want your application to be deployed over, and it's configurable via the Portal (and outside using PowerShell/REST) if you want to.

In your solution you specify the size in the csdef:

<ServiceDefinition name="MyWebRole.CloudService" <WebRole name="MyWebRole" vmsize="Small">

And the number of instances in the cscfg:

<Role name="MyWebRole" vmName="WebRole"> <Instances count="2" />

You should make sure you have a minimum of 2 instances running for your app, if one goes down then your app won't fail straight away. Microsoft may need to tear it down or update it without telling you (and you shouldn't notice apart from any logs etc), if your app cannot cope on a single instance then make sure you have 3 (so in the event of a server going down you still have a minimum of 2).

Via the Azure Portal you can both reboot and reimage (deploy your package/config to a completely new machine), the package/config are retained in Azure so you don't need to deploy them again, the same thing happens when you scale your service up/down, the package/config already exist in Azure so it "just does it" (expecting a busy day? Add some machines to your service, or set it to auto scale based on a metric).

IaaS is very much the same as your usual VM scenario, you spin them up, remote onto them and do whatever is necessary! You can turn them on and off via the portal. Installations, OS issues/config, patching, are your own problems (potentially joined to a domain so policies/DSC can be used if that's what your familiar with), so if you have something that needs to be installed via an exe etc or used with a GUI, then VM's work for this scenario. As a side note, I've only every once seen an issue in Azure with a VM getting knackered (blue screen -> insert cd error), if you think you have a problem with the platform you can do things like delete the VM (but keep the disks!) and create a new one with the same disks.

Another thing to look into is WebApps/AppServices, they are kind of like Cloud Services, except they take away some of the issues such as having actual underlying VMs.