0 votes
in Azure by

What is difference between Cloud Service "Role Instance VM" and "Cloud Service VM"?

1 Answer

0 votes
by

1 This is PaaS offering This is IaaS offering 2 Changes made to VM settings, data storage on drives etc. are not persistent. Changes made to VM settings, data storage on drives etc. are persistent. 3 VMs provisioned for Role instances have IIS, .Net framework etc. standard pre-requisites pre-configured. VMs provisioned have only OS with no addition standard application configured and it is user's responsibility. 4 Vertical scalability is not supported for role instance VMs. RE-deployment of entire application is required for achieving vertical scalability. VMs can be scaled vertically without any re-deployment or re-creating the VMs. 5 Horizontal scalability configuration is easy and no need to create pre-configured VM in advance. Horizontal scalability configuration is driven by no. of pre-configured VMs. 6 Being PaaS based offering, very limited control over underlying VMs. Being IaaS based offering, user has full control over VMs. 7 Underlying VMs OS disks are not accessible. Underlying VMs OS, data disks are stored in Azure Blob storage and are accessible for user. 8 Being PaaS and less dependency on VM, there is no need to perform backup of these VMs. Being IaaS, management is entirely user's responsibility. So user has to take regular backups of underlying OS and data disks. 9 Pre-configured software templates can't be used and OS option is only limited Windows OS based versions. Pre-configured software template images based VMs can be provisioned supporting various flavors of Linux and Windows OS versions. 10 The use of VMs is limited to only one purpose -- running and hosting web applications and background jobs through worker roles. Not limited to only running web applications.

PaaS means you focus only on Application and Data. Rest is taken care by cloud computing platform. In case role instance VMs user only deploys its application and rest is managed by underlying cloud platform.

IaaS means you get support only virtualization and after everything is your responsibility.

Changes made to VM are not persistent. For example, if we create a text file on C drive, then if cloud service role is recycled due to hardware failure then new VM gets allocated to Role instance and earlier save Text file will not be present.

For example, if we create a text file on C drive, then if hardware failure occurs then new VM gets allocated to automatically and earlier saved Text file will be present.

VM provisioned in role instances already have all pre-requisites installed and configured for running an application.

However, in case of IaaS VM we only get VM with OS. Everything after that is user's responsibility. So for running web application in IaaS .NET framework installation, IIS installation etc. will be required to be done by user.

Vertical scalability means increasing the capacity of existing VM. For example, if you are running your web application on A2 sized VM then to make application run on A4 size, you will need to redeploy the application; which will create entirely new VM. The size of role instance VM can't be changed from portal.

In case of IaaS VM it can be directly changed from Portal and that's it.

As role instances being PaaS offering and VM management is done by cloud platform, horizontal scalability in unlimited and user don't have to create VMs in advance to support scalability. For example, if user is running application on 2 instance and due to heavy demand if he/ she wishes to run the same application on 4 instances then it is just matter if changing the instance count on Azure portal. Automatically new VMs with IIs and .NET framework will get created as well as the application will also be deployed on it and made available for serving the user request and everything happen automatically.

On the other hand, the no. of VM to be scaled horizontally is limited by pre-configured VMs. So if user wants to scale the IaaS VM horizontally then he/ she will have to create the VM with same configuration in advance and then at runtime it can scale only to no. of VMs created by user in advance. This is because VM management is entirely user's responsibility in IaaS offering.

AS Role instance VMs are not persistent as stated in points 2, you can't really use it for any other work whereas IaaS VM can be used to perform any task, run any standard software along with your web site like SQL server and so on.

In case of IaaS VMs the underlying OS disk [which may be making up C drive in VM], attached data disk [which may be making other drive than C and D] are .vhd files and those are saved in Page blob under Azure storage account. So this fact opens up the opportunities of "Image mobility". Means you can take these .vhd files on premise and provision VMs out of it or vice versa.

In case role instance VMs underlying OS disks are managed by azure platform and we don't access to it at all.

As role instance VM management is not user's responsibility there is no need to configure backup, anti-virus, OS upgrades etc. traditional managed services task as they are taken care by Azure platform only.

In case Azure IaaS VMs all types of managed services tasks are user's responsibility as you are the owner of that VM.

As of today role instance VMs can only have Windows OS flavors to run the web applications. The fact that Azure web roles and worker roles can run java based applications, there might be requirement of having Linux OS for Java application. As of today such type of scenarios are not supported.

Today you can have any type of OS version and standard software VM provisioned from Azure Marketplace for IaaS VMs. Azure provides pre-configure template images through which all standard Microsoft stack software such as SharePoint, SQL server, Dynamics AX, CRM VMs images are readily available for consumption.

This point is self-explanatory.

What is the best practice for achieving the High availability of applications running on Azure VM having web tier and DB tier?

For achieving high availability in case of Azure IaaS VMs -- Availability sets should be used along with at least 2 instances of VMs and implement this redundancy at every web tier and DB tier.

Related questions

0 votes
asked Nov 18, 2023 in Azure by rajeshsharma
0 votes
asked Mar 9, 2023 in Azure by Robindeniel
...