Sitemap

Resource Provisioning in Cloud Computing

Cloud computing is built on the idea of flexibility, efficiency, and scalability. A central component that makes this possible is resource provisioning.

7 min readApr 18, 2025

--

Press enter or click to view image in full size

This tutorial explains what resource provisioning is, how it works, the methods involved, and how major cloud platforms like Amazon Web Services (AWS) implement it. You can visit the detailed tutorial on cloud computing here.

What is Resource Provisioning?

Resource provisioning is the process of allocating computing resources on need. In simple terms, it means getting the right amount of computing power at the right time.

Press enter or click to view image in full size

The main types of resources involved in provisioning include:

  • Computing Resources: These refer to the processing capabilities required to run applications. They include central processing units (CPUs), graphics processing units (GPUs), memory (RAM), and containers. These components ensure the execution and performance of software services.
  • Storage Resources: These include block storage, object storage, and file systems that store data such as files, logs, and user-generated content.
  • Network Resources: These encompass bandwidth, IP addresses, load balancers, and firewalls. They handle the movement of data between services, users, and systems.
  • Application Services: These are higher-level services such as databases, machine learning models, analytics platforms, and serverless functions that support application logic and functionality.

To understand it better, let us take an example. Imagine you are running a website on a cloud server. On normal days, it receives about 1,000 visitors per day. However, during a flash sale or exam result day, this number can shoot up to 50,000 visitors. If your server is not prepared, it may crash or slow down. Resource provisioning solves this problem by allowing cloud platforms to automatically provide additional servers or resources to handle the traffic and remove them when no longer needed.

Importance of Resource Provisioning

Without proper provisioning, two major issues can arise. The first is under-provisioning, where not enough resources are allocated, leading to system crashes or slowdowns. The second is over-provisioning, where too many resources are allocated unnecessarily, leading to high costs and wastage. Effective resource provisioning ensures high availability, fast response time, cost-efficiency, and a better user experience.

To illustrate this in a real-world context, consider a scenario where a single bus is scheduled to travel from Karachi to Peshawar. Suppose the bus has 50 seats and each passenger pays a fare of 10,000 PKR. If fully occupied, the total revenue would be 500,000 PKR. However, if only 25 seats are filled, the earnings drop to half, while operational costs remain the same. This reflects under-provisioning in cloud computing, where underused resources lead to inefficiency and financial loss, leading to financial inefficiency.

Conversely, if the bus attempts to carry 70 passengers, exceeding its safe capacity, it may earn more temporarily, but risks safety violations and mechanical failures. This is similar to over-provisioning in cloud environments, where pushing systems beyond capacity may cause instability and long-term damage, exceeding its designed capacity, the buses may experience mechanical stress, safety concerns, or regulatory violations. While the revenue might temporarily increase, the long-term risks and consequences outweigh the immediate gains. This is analogous to over-provisioning in cloud environments, where overloading systems can result in degraded performance, increased maintenance needs, and potential system failures.

Therefore, resource provisioning must strike the right balance to maintain service quality, ensure system stability, and optimize both performance and cost.

Types of Resource Provisioning

Press enter or click to view image in full size

There are two primary types of provisioning strategies: static and dynamic.

Static Provisioning

Static provisioning involves allocating resources before execution, based on expected load. It does not adapt to changes in demand during runtime and is best suited for predictable workloads. For instance, you may launch an application and manually assign four virtual machines from AWS EC2. Even if the traffic increases or decreases, the application continues to use only four VMs. The problem with this approach is that if demand increases, the application may fail. On the other hand, if demand is low, you end up paying for unused resources.

Dynamic Provisioning

Dynamic provisioning, in contrast, allows resources to be allocated or removed automatically during execution. This strategy is based on real-time monitoring and workload analysis and supports auto-scaling. A good example is AWS Auto Scaling, which automatically increases the number of EC2 instances during high traffic and reduces them during off-peak times. This approach is highly beneficial as it saves cost, handles load efficiently, and ensures service availability.

How Resource Provisioning Works

To understand how resource provisioning works, let us consider the process using Amazon EC2 as an example. First, the system monitors performance using AWS CloudWatch, which keeps an eye on metrics such as CPU usage, memory load, and the number of user requests. When a defined threshold is crossed, such as CPU usage exceeding 80 percent, a scaling policy is triggered. At this point, AWS Auto Scaling adds more EC2 instances to the group. The AWS Elastic Load Balancer then distributes the incoming traffic among the newly provisioned instances. When the traffic decreases, AWS automatically stops and removes the unnecessary EC2 instances. This dynamic cycle ensures that the application continues to run smoothly without manual intervention.

Tools and Services Used in Provisioning (AWS Example)

The following table summarizes the key tools and services used by AWS in the resource provisioning process, along with their respective roles:

ServiceFunctionAmazon EC2Provides virtual machines (instances) to run applications and servicesAWS Auto ScalingDynamically adds or removes EC2 instances based on traffic or usage patternsElastic Load BalancerDistributes incoming traffic across multiple EC2 instancesAWS CloudWatchMonitors system performance and triggers scaling actionsAmazon S3 / Amazon EBSProvides object and block storage for applications and virtual machines

Several tools and services are used in the resource provisioning process in AWS. Amazon EC2 is responsible for providing virtual machines. AWS Auto Scaling takes care of automatically adding or removing EC2 instances based on current needs. The Elastic Load Balancer ensures that incoming traffic is evenly distributed across all active instances. AWS CloudWatch is used to monitor system metrics and trigger provisioning actions when required. Additionally, services like Amazon S3 and Amazon EBS are used for provisioning storage.

Resource Provisioning Policies

Press enter or click to view image in full size
Scheduling polices

Provisioning can follow different policies depending on the behavior of the application and the user requirements.

On-Demand Provisioning

On-demand provisioning allows resources to be created instantly when needed and is suitable for unpredictable workloads.

Scheduled Provisioning

Scheduled provisioning starts or stops resources at specific times, which is useful for operations that occur during regular business hours or for running batch jobs.

Predictive Provisioning

Predictive provisioning is more advanced and uses machine learning and historical trends to forecast future demand. AWS offers predictive scaling capabilities that analyze past data to anticipate resource needs.

Example Scenario: Online Learning Platform

To illustrate how dynamic resource provisioning works in a real-world scenario, consider an online learning platform. During exam weeks, the number of users logging in increases significantly. AWS Auto Scaling detects this increase in load and provisions additional servers, say ten more, to handle the demand. After the exams are over, the system automatically de-provisions these extra servers. The organization only pays for the time those additional servers were in use. This example clearly shows how dynamic resource provisioning contributes to both efficiency and cost-effectiveness.

Advantages of Dynamic Resource Provisioning

Press enter or click to view image in full size
Benefits of dynamic provision

Dynamic resource provisioning offers multiple advantages. It provides elasticity by allowing the system to easily adapt to changes in workload. It ensures scalability by enabling the system to add or remove resources without interrupting the service. It enhances reliability by preventing system failure due to overload. Lastly, it improves efficiency by ensuring that resources are used optimally without unnecessary waste.

Challenges in Resource Provisioning

Despite its benefits, resource provisioning does come with certain challenges.

Provisioning Delays

Some resources, such as virtual machines or large data volumes, may take time to launch. This delay can affect performance, especially when immediate scaling is required.

Dependency Issues

Applications may rely on services that are not provisioned simultaneously, causing delays or failures in execution. This challenge often arises in distributed or service-oriented architectures.

Misconfiguration of Thresholds

Improperly defined thresholds for scaling decisions can lead to either over-provisioning or under-provisioning. Over-provisioning wastes resources, while under-provisioning leads to degraded performance and potential service interruptions.

These challenges can usually be addressed through careful monitoring, stress testing, and refinement of provisioning policies to ensure responsive and efficient system behavior.

--

--

Afzal Badshah, PhD
Afzal Badshah, PhD

Written by Afzal Badshah, PhD

Dr Afzal Badshah focuses on academic skills, pedagogy (teaching skills) and life skills.

No responses yet