Today we announced that Heroku is using our Load Manager in its Ruby cloud deployment infrastructure. We are of course very happy to be associated with an innovative PaaS vendor like Heroku, specifically since it demonstrates the unique capabilities of our Load Manager for monitoring and managing the use of server resources in multi-tenant applications. These are applications that serve potentially large numbers of users through each instance of the application, where each user may belong to a group (or “tenant”). A tenant is a “customer” of the application service and could be a company that uses a cloud PaaS platform like Heroku, or a department that uses a multi-tenant application service inside a company.
The rationale for structuring applications in this manner is usually that running separate application instances for each of potentially many users can be very inefficient, specifically in a cloud environment where the smallest server instance is typically one or a half core and 1-2GB of memory. Although the multi-tenant approach addresses the efficiency and economic issues associated with supporting large numbers of users, a drawback is that it is not possible to monitor how much resource is consumed by each user (e.g. for charge-back) or to control resource consumption on a per-user basis (e.g. to manage Quality of Service). It’s of course possible to build these capabilities into the application itself, but this adds significant complexity. Using our Load Manager it is possible to associate workload containers with individual users or tenants, using an interface through which the process or processes associated with individual users (or tenants) can be identified and resource quota can be specified. Heroku's use of Load Manager is a good example of how it can be used to enhance and extend the range of applications that can make efficient use of infrastructure clouds.
Powered by Blogger.