A couple of weeks ago I wrote a blogpost about designing and building a Windows Server 2012 Remote Desktop Services environment on Microsoft Azure IaaS. In this blogpost I want to focus on comparing Azure RemoteApp against a Remote Desktop Services Deployment on Azure IaaS. I will start with explaining how both solutions are placed in the NIST cloud models. This is very important to keep in mind when comparing both solutions.
So let’s start with explaining the different cloud models we have based on the picture below:
In a traditional IT environment (Private Cloud) you’re responsible for managing all components in the environment. Both the Datacenter components like Networking and Storage and the Applications components need to be managed. Looking to the first cloud model ‘Infrastructure-as-a-service’ you don’t have to manage the datacenter components like Storage and Networking. Your management responsibility starts at the Operating System Level; in a IaaS environment the Operating System is a combined responsibility since the deployment of the Operating System can be used from your Cloud Provider. But from a management perspective you’re responsible for the management. In a IaaS environment you’re also responsible for building and managing the Application components. In a ‘Platform-as-a-Service’ cloud model you’re only responsible for managing the application and the data of the application. Management of all other components of the environment is done by the Cloud Provider. And lastly in a ‘Software-as-a-Service’ model the Cloud Provider is responsible for managing all components.
Now let’s look to both RDS and Azure RemoteApp. Windows Server Remote Desktop Services can only be implemented as a ‘Traditional IT’ and Public/Private ‘IaaS’ Cloud model. Azure RemoteApp can be implemented as a PaaS solution but also in combination between IaaS and PaaS. Let me explain this last sentence. In the basis Azure RemoteApp is a PaaS solution. When using a Cloud collection, you’re only responsible for managing the applications and data published with Azure RemoteApp. When using a Hybrid collection, you’re responsible for the Operating System and above but not for the Azure RemoteApp platform itself. So it’s not completely IaaS and not completely PaaS, it’s more a combination between both models. Looking to the Azure RemoteApp platform you’re always using this as a PaaS solution because you don’t have to manage the Azure RemoteApp platform. So now this is described let’s compare both RDS on Azure IaaS and Azure RemoteApp.
Azure RemoteApp platform is PaaS
One of the big advantages of using Azure RemoteApp compared to RDS on IaaS is the fact that Azure RemoteApp is a PaaS platform delivered and maintained by Microsoft. This means that you don’t have to build and maintain your own RDS environment. Improvements to the platform is done continuously by Microsoft, so you will receive updates of the platform all the time. Since Microsoft is providing the Azure RemoteApp platform is a PaaS solution you’re also solving the ‘cons’ of deploying RDS on Azure IaaS. Microsoft is taking care of providing shared storage for saving the User Profile Disks and Microsoft is also taking care of Scheduled Maintenance of the platform. So those cons are solved with using Azure RemoteApp
Pricing model is based on Users and not on the number of servers/resources
Another advantage is the fact that Azure RemoteApp has a pricing model based on the number of users which are using the solution. So you’re only paying for the number of users which are actually using Azure RemoteApp. Compared to RDS on Azure IaaS where you pay for Resources independently the number of users using the solution. This can greatly reduce the costs of the solution since Azure RemoteApp is only billing you the usage of the platform based on a user. In the pricing model all licenses needed to use the environment are included. So no extra licenses are needed.
Different Clients for Azure RemoteApp and a HTML5 web interface
Azure RemoteApp is providing more client options for connecting to the published applications. On Microsoft Windows 7 and later a special client is needed to connect to Azure RemoteApp. This client is under development by the Azure RemoteApp team itself and can therefore be updated continuously. Beside clients for Windows, Apple and Android Microsoft also provides an HTML5 interface from where applications can be started. With this HTML5 portal Azure RemoteApp can be used on almost all client platforms. This HTML5 portal is not available for RDS environments hosted on Microsoft Azure IaaS.
Only Apps can be published, no desktop can be published
With RDS hosted on Azure IaaS we can publish both applications and desktops to end users. With Azure RemoteApp we can only publish applications and not a desktop, so this is a limitation compared to RDS on Azure IaaS. More and More companies focusing on delivering applications instead of desktops. So this limitation could go away in the future but for now publishing a desktop is a limitation in Azure RemoteApp.
Apps can only be published to All Users instead of groups of users
At this moment applications can only be published to all users of a collection. There is a private preview where we can publish applications to a group of users, but this is only in private preview. More information about this private preview functionality can be found here and here. So for now this limitation still applies to Azure RemoteApp, but in the coming months this should be solved. With RDS hosted on Azure IaaS we can publish application based on groups of users.
File Type Associations
With RDS on Microsoft Azure we can control File Type Associations so that files are opened with RemoteApp applications hosted on RDS. With Azure RemoteApp we don’t have this functionality yet. So compared to RDS on Azure IaaS this is also a limitation.
Personally I think Azure RemoteApp is a great addition to the current RDS solutions we have. If you want to publish applications to users, I personally think that Azure RemoteApp is a good stable solution. If based on your requirements Azure RemoteApp is not a fit, you can always revert to hosting your own RDS environment on Azure IaaS. Azure RemoteApp is solving some infrastructural ‘cons’ you will face when you design and build your RDS environment on Microsoft Azure.