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
-
Identification
Identifying the resource requirements of the user.
-
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.
-
Brokering
Negotiation of resources, availability, usage policies and more with cloud consumers to meet SLA.
-
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.
-
Selection
Choose best available resource among available resources
-
Mapping
Map virtual resources onto physical ones
-
Allocation
Allocate / Distribute resources to the consumers
Resource Optimization
-
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.
-
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.
-
Brokering
Negotiation of ongoing resource availability and utilization with the cloud consumer to meet SLA
-
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
-
Allocation
Locate and redistribute resources to consumers
Provide QoS according to SLA
-
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