Giving continuity to my recent Desktop-as-a-Service series it’s time to tackle those components that make a true DaaS solution be able to dynamically provision and de-provision resources on-demand, near real-time, without users having to engineer for peak loads.
This article is built on top of my previous DaaS articles:
DaaS Identity Management, Federation & Multi-Tenancy
DaaS Mobility and Portability
Wasn’t until September 2011 that the US National Institute of Standards and Technology published The NIST definition of Cloud Computing. The document outlines Cloud Elasticity as “Rapid elasticity. Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.”
Cloud elasticity is a core component of cloud-based environments in the sense that every application should get additional resources, or release resources when needed. These additional resources may be provided by virtual pool of resources or by physical resources.
Cloud-based resources are commonly automatically triggered in two ways:
- Application Request
- Infrastructure Performance Analysis.
In the infrastructure analysis method the cloud infrastructure monitoring systems look at several different performance metrics for a given pool of resources in use by the application. In our scenario this pool of resources and applications are defined by DaaS brokers, engines, gateways and virtual desktops. Cloud infrastructure reacts based on resource utilization or contention in a resource pool.
With this approach the cloud infrastructure supporting DaaS will increase or decrease available resources, while it will also interact with the applications to increase and decrease application instances as required.
For that end both the cloud platform and the application should be able to interact with each other’s API’s (Application Programmatic Interface). This all sounds very much like PaaS (Platform-as-a-Service). Yes, it’s PaaS, and there will be no true DaaS solution without utilizing some sort of PaaS solution,such as Cloud Foundry and AWS, or at least having a strong automation and integration between the cloud infrastructure layer (IaaS) and the application layer (DaaS).
A Forrester Research defines an Elastic Application Platform (EAP) as “a platform that automates the elasticity of application transactions, services, and data, delivering high availability and performance using elastic resources.”
Off course, service providers and vendors can host VDI brokers and gateways in public or private clouds and instantiate few desktops. However, there is a large gap between doing that and saying that they are delivering cloud-based desktops. They are offering VDI from a remote datacenter, not doing DaaS.
The application request method to provide elasticity is what we will probably see the most moving forward because it would be very difficult to get cloud platforms to interact with every application (unless all applications follow a common design method and API implementation). This is known as Application Elasticity and is driven by elastic software applications.
For Application Elasticity to work correctly DaaS engines and gateways must be developed with the ability to analyze key application performance metrics and end-user experience; and based on resulting factors decide what actions to take on the infrastructure and application instances. Those DaaS applications must be developed specifically to work on application platforms.
These actions generated by the application layer is then converted into API calls to the cloud infrastructure, that in action will take care of provisioning additional resources such as storage and networke. Once infrastructure is provisioned DaaS engines and gateways should be able to multiply or expand as required. The same mechanics apply to de-instantiate or reduce DaaS workload on the cloud.
Developing DaaS for Elastic Application Platforms is a paradigm shift for the existing VDI solution developed for enterprise datacenters. However, the benefits of Elastic Applications range from large scalability and redundant hot copies spread across zones, to load balancing and design for large failure domains.
Sound simple, but it is not. To this date, as far as I know, there is no true DaaS solution on the market that can fully utilize the power of Cloud Application Platforms, embracing secure multi-tenancy, elasticity, identity management federation etc… So, next time someone tells you that they deliver cloud desktops, make sure it’s not VDI served from remote datacenter.