Resource Management in Cloud Computing

Overview of Resource Management in Cloud Computing

Cloud Computing

Cloud computing is a system where a service provider โ€” AWS, Google, Azure, internal-provider โ€” allows the consumer to access their IT resources over a computer network usually the Internet.

More specifically National Institute of Standards and Technology defines it as

Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. 1

Resources in the Cloud

In the cloud a resource is anything that can be consumed by the users or the customers.

But in general these resources are categorized as

Physical & virtualized resources.

  • Physical Resources

    Physical resources are actual tangible resources, such as CPUs, storage devices, network switches/routers, power supplies, etc.

    Users of a cloud service seldom interact with physical resources directly.

  • Virtualized Resources

    Most of the cloud relies on the paradigm of sharing physical resources between users.

    As an example a physical server can run multiple virtual servers that are in use by different users with differing use cases. Similarly for storage devides and network resources. It is also called the Virtual Resource Layer.

Types of resources

Within the physical and virtualized categorization; resources fall into semi-well defined categories depending on the type and utility

  • Compute Resources

    These include anything from high-performance compute cores, virtual servers, serverless, to technologies or algorithms for numerous tasks โ€” like, machine learning, CI, CD, media transcoding, etc.

  • Storage

    File Storage, Databases, Backups or Archives, File Servers or Content Distribution Networks.

  • Network Resources

    Serves as the backbone for all of the other resources, as the cloud is a networked model. These resources include extremely high-speed low latency internet, high bandwidth capable hosts, support for different network/communication protocols.

  • Power or Energy

    UPS for 24/7 uninterrupted high quality electricity, cooling utilities.

  • Security

    Securing physical or virtual servers from bad actors, encryption for user data, sandboxing of different users, firewalls etc.

  • Physical Space

    Often the most overlooked resource in a cloud providers services. A cloud based infrastructure allows companies to outsource the requirement of owning additional office space to house massive servers.

Resource Management

Users turn to the cloud because of reliability, availability, cost, and ease of maintenance. Making sure resources are readily available and deployable is essential. Users also have SLA with the cloud provider. Assuring QoS equal or greater than the SLA is paramount, as any lapse in service could prove costly, and may also lead to loss of trust.

Optimal management of the resources becomes an indispensible part of running a cloud service. Although as the number of resources under a cloud providerโ€™s portfolio increase so do the complexities involved in efficiently and optimally managing these resources.

Resource Management Algorithms

There are many different types of resource management algorithms, some examples are listed below โ€”

  • Power Aware Load Balancing Algorithm
  • Market-Driven Resource Allocation
  • Priority Based Dynamic Resource Allocation
  • Resource Monitoring Model
  • Dynamic Resource Pricing on Federated Clouds

A general principal for resource management includes two different techniques working in tandem.

Resource Assignment

  1. Identification

    Identifying the resource requirements of the user.

  2. Formation

    To gather and form the resources required by the user, cloud providers identify available resources that are currently available and not required for other users.

    Note: Cloud providers can also prepare custom resources as needed by different users during this step.

  3. Brokering

    Negotiation of resources, availability, usage policies and more with cloud consumers to meet SLA.

  4. Discovery

    Logically grouping various resources as per requirements of the consumer helps deliver on the SLA. Since usage requirements of the user can have a significant impact on the resources required.

    For example a machine learning task can benefit from AWS Inferentia or a big data analysis task can benefit from an FPGA accelerator.

  5. Selection

    Choose best available resource among available resources

  6. Mapping

    Map virtual resources onto physical ones

  7. Allocation

    Allocate / Distribute resources to the consumers

Resource Optimization

  1. Monitoring

    • Most crucial step
    • Monitor and analyze resource utilization, and availability of free resources.
    • Hard to define metrics / parameters due to uncertainty of resource usage by consumers.
  2. Modelling / Prediction

    Itโ€™s a complex step where the cloud provider has to model a userโ€™s future resource usage based on past indicators and also account for additional requirement and or new users. Predicting resource requirement for peak and off-peak periods is also necessary. And given that cloud resources are not uniformly located throughout the globe, the task becomes harder.

  3. Brokering

    Negotiation of ongoing resource availability and utilization with the cloud consumer to meet SLA

  4. Adaptation

    Scaling of resources according to requirements, use case and also the actual resource usage. The user may not require all the resources throughout the day or the user simply overestimated their resource usage.

    This affects the cost incurred to the cloud consumer

  5. Allocation

    Locate and redistribute resources to consumers

    Provide QoS according to SLA

  6. Pricing

    Pricing the resources used and also pricing the available resources based upon demand.

    Prices vary based on resource usage as well as the type of SLA and service โ€” Iaas, Saas, PaaS

Further Study

This article doesnโ€™t do any justice to the topic of resource management in cloud computing, as such I highly encourage interested individuals to go read more about the different algorithms and techniques used by major cloud providers and or read the book Cloud Computing: Theory and Practice by Dan C. Marinescu2