Flexera Cloud Report 2021 reveals that cost optimization is the top cloud initiative for most enterprises, consecutively for the fifth year. Interestingly, leading cloud providers such as Azure are constantly bringing their prices down, but the cloud expenses of enterprises are ramping up due to the increased consumption. Therefore, having an in-depth understanding of cloud economics will be an advantage as it enables you to optimize expenditure and maximize benefits.
Private and public clouds have vastly different cost structures. To understand them, we will explore the major factors contributing to cloud expenses in private and public clouds.
The main component of cloud spendings in any enterprise would be the cost of cloud infrastructure.
In a private cloud owned and operated by an enterprise, the infrastructure cost consists of hardware, software, and services.
Hardware
An enterprise building a private cloud has to invest in compute, network, and storage hardware which are the essential building blocks of the cloud. Hardware cost will be a CapEx investment at the initial stage of building the private cloud and at the later stages when doing capacity expansions.
The compute hardware consists of servers in all clouds. The network hardware will vary according to the cloud architecture, but it will typically include switches, Date Center Gateway router (DCGW), and Firewalls.
While the amount of hardware will depend on the capacity of the cloud that you are planning to build, certain hardware components will be independent of capacity. An example would be the DCGW and Firewall, which may be dimensioned, keeping provisions for future expansions. Therefore, for each private cloud you build, there will be a fixed CapEx investment at the start.
The lifetime of hardware is typically considered as five years, so their value can be depreciated over that period. While extending their life beyond five years will be possible by negotiating with the suppliers, it will not be economical as maintenance costs will be higher. Also, after five years, new hardware with more capacity and better power efficiency would be available in the market, so investing in new hardware will be more economical.
Software
The software contributes to a considerable portion of private cloud costs.
Essentially, all clouds should have either virtualization or container runtime software. The cost of this software will increase linearly with the capacity as most suppliers license this software based on CPU sockets or the amount of vCPUs and memory used.
Performance and alarm monitoring, backup management, hardware management, and service orchestration are additional necessary software needs depending on the use cases. In addition to this mandatory software, a private cloud may require optional software components. These software components may have different licensing models and impact the Total Cost of Ownership (TCO) of the cloud.
Software cost could be either CapEx or OpEx, or both, and will increase proportionately with capacity growth. To ensure economic scalability, a pricing model should be developed such that the unit price of software licenses decreases with scale.
Services
This is the cost of installation and commissioning provided by the supplier or the system integrator. After the initial installation, the subsequent capacity expansions will also have specific services costs.
Maintenance
Suppliers usually provide a warranty period for the hardware and software. Depending on the supplier, this could be 2-3 years. After that, there will be an annual maintenance cost for each unit of hardware and software. This would contribute to the OpEx in cloud expenses. Fault rectification, bug fixes, security fixes, and software updates are some of the services covered under maintenance costs.
There is an increasing trend in public cloud usage, where some enterprises are moving all their workloads to the public cloud. The public cloud does not require an initial CapEx investment since all the services in the public cloud are provided on demand. This pure OpEx model is one of the major driving factors of increased public cloud adaptation.
Cloud infrastructure in the public cloud could be purchased as IAAS, PAAS, or serverless.
IAAS includes the elementary cloud services such as virtual machines and storage buckets. These services are charged based on the number of allocated resources and the period the resource was kept allocated.
PAAS lets you host an application without provisioning virtual machines or storage separately. Azure App Service, Azure Static Web Apps, and Azure Cosmos DB are examples of such PAAS offerings from Azure. They are priced in bundles or packages where each bundle is associated with a certain amount of fixed resources.
The newest addition to public cloud is the serverless services. These services allow the application developers to deploy code to the cloud without pre-provisioning any capacity. Since capacity is not pre-provisioned, the serverless services are charged based on the actual consumption. The serverless services have maximum cost efficiency, but it makes your application dependent on a specific cloud provider, so that migrating to a different provider requires code rewrite.
Network Bandwidth Cost in Public Cloud
Most public cloud providers charge the network bandwidth separately and do not bundle it with the primary services. For example, if you purchased some virtual machines and deploy an application, your virtual machines and the bandwidth consumed by the application are billed separately.
Network bandwidth rates in the public cloud differ according to the direction (data transferred into the cloud and out from the cloud) and the regions, so that estimating the actual cost of data transfer may be tricky. The cost of network bandwidth should be specially considered for bandwidth-intensive applications such as streaming media and use cases such as backup transfers, which involve moving large volumes of data.
This is an often-overlooked cost associated with the cloud. Migrating an application from one cloud to another has some costs that include rewriting some parts of the code and repackaging the application according to the architecture of the target cloud.
Migrating a database also requires similar considerations. Depending on the database application you intend to use, you may have to reformat the existing data for migrating.
Migrating an application between clouds may not be something you would have to do regularly, but you may encounter a situation that demands a migration. Therefore, when designing the application architecture, possible future migrations should be taken into consideration as it can help you minimize migration costs.
Each public and private cloud has very different cost models in operations and DevOps. In a private cloud, the IT operations team in the enterprise is responsible for the management of hardware, Operating System, and application software.
The public cloud eliminates the requirement of managing the hardware so it relieves certain workloads from the operations teams. However, it would be a mistake to assume that the public cloud eliminates the operations work. From managing the cloud infrastructure such as the virtual machines, Kubernetes clusters, CI/CD pipelines, etc., the public cloud also involves a lot of operations work.
Public clouds also offer many additional services for automating the operations and the DevOps workloads. Azure Log Analytics and Azure Pipelines are two such services. While automation tools incur costs, they can help you scale your cloud infrastructure without scaling your operations teams.
Total Cost of Ownership (TCO) is a key consideration when planning a migration from private to the public cloud. Due to their completely different cost models and the number of parameters involved, cloud TCO calculation and comparison is a tedious task. Azure TCO Calculator is a tool that can help you in this regard.
The Azure TCO Calculator has two types of inputs. First, you have to provide the details of the current workloads in your private cloud. This includes the number of physical servers and virtual machines and their CPU/memory parameters, databases, storage, network bandwidth utilization, etc.
In the next step, you are presented with a range of assumptions. These include the cost components for hardware, software licensing, electricity, human resources, etc. Azure suggests default values for these parameters, but you must update them based on the actual values for your private cloud.
When these two sets of parameters are provided, the tool calculates the 5-year TCO of the private cloud and the corresponding 5-year TCO of Azure services for migrating the total workload to Azure.
Forecasting Private Cloud Costs
Public cloud providers such as Azure offer a multitude of services, including compute, networking, storage, security, and databases, etc. If you plan to build and scale a complex cloud infrastructure setup, you may be interested in forecasting your future cost for estimating Revenue on Investment (ROI). Azure Pricing Calculator is the tool you need for that.
Azure Pricing Calculator includes the comprehensive list of services offered by Azure. For each service, you can set the parameters according to your actual or planned usage. Then, the calculator presents you with the estimated monthly cost.
In a cloud financial plan, more often than not, the first phase is a Cloud migration, the second phase is a run and maintains phase with a focus on Total Cost of Ownership, and third, is the phase that is focused on cost optimization. The third phase is typically the phase where one would get a full ROI on cloud deployments such as reserved instances, asset tagging Azure monitoring, and serverless services.