Azure Cost 2024: Building HR Management Portal
Microsoft Azure, a leading cloud services provider, presents an array of offerings encompassing storage, networking, computing, and analytics. These Azure services are accessible through the Azure public cloud, on-premises deployments, and hybrid setups.
The article explains the minimum cost of necessary Azure services and includes a sample scenario to show projected expenses.
Understanding the Need for Automation
Let’s say you are running a small agency. Eventually, you observe that overseeing operational processes has become considerably more complex than it was before. It was smooth as a year ago, and everybody was quiet, not sharing any complaints. Typically, this implies that your scale has grown, signaling the need to implement automation in your operations.
After a couple of brainstorming sessions with your colleagues, the first version of the requirements is ready. You found that having a basic HR Management Portal would be great for streamlining and automating various human resources processes within the organization—functions like employee information management, time and attendance tracking, and document management.
You explore a bit more and see that many web-based products are available. However, you are still determining if they will cover your future needs. What if we build our custom one? How much will it cost then?
Let’s analyze what we need from a technical perspective. We need some UI application; let it be the app built using React.
Components of the Azure Cloud Solution
For the backend API layer, we will use Azure Cloud with the following parts:
- Database solution
We aim to utilize the Azure Cosmos database for secure and scalable data storage to ensure efficient functioning.
- Notification module
Azure Functions is suitable for implementing a notification module, including sending automated emails based on schedule. Azure Functions provides a serverless architecture that allows you to pay only when executing a specific workload.
- Document Management Service
This service must enable the secure and organized uploading and storage of documents like CVs and hiring proposals. Azure Blob Storage is what we need here; it provides scalable and secure file storage.
- Reliable Logging System
Something that is needed in any product for the dev/support team to understand, troubleshoot, and quickly react to issues. Azure Application Insights offers detailed telemetry for effective application monitoring.
- Secrets storage
Yes, we wouldn’t want to hard-code sensitive information in configuration files; losing this will cost you more. With Azure Key Vault we can securely store and manage sensitive information like API keys, passwords, and certificates.
And remember the major component – the hosting platform. Backend API and Frontend layers require the infrastructure and tools to serve end-user requests. Different hosting options are available in Azure Cloud, depending on the type of workload and application-specific requirements.
However, one of the simplest ones to choose from in the ‘we need to start from something’ case is Azure App Service. Azure App Service comes along with Azure App Service Plan, which you can think of as a physical store of your app (a set of resources that determine the computing power, storage, and capabilities), and this is the main infrastructure you are paying for.
Let’s talk about costs now.
Breaking Down the Costs
Azure App Service Plan & App Service
Azure Cloud provides App Service Plans for two workloads: less demanding (for dev/test purposes) and production.
The cheapest production plan that makes sense to start from is Standard S1, with a cost per month $69.35 (≈$70).
The good news is that we can share this plan across Frontend Apps, Backend API Apps, and even Azure Functions. Yes, we previously mentioned that with Azure Functions, you can pay only for code execution (when you are on a serverless plan), but why pay more if you are unsure about the workload so far?
So, $70 per month for now.
Azure Cosmos DB
With Azure Cosmos DB as a main application database, you pay for two components: database operations and storage.
With database operations, you can either buy Provisioned Throughput or go Serverless (similar Azure Functions, we will calculate the monthly cost based on the number of Request Units consumed by your database operations).
The main rule of thumb here will be choosing the minimum available database Provisioned Throughput (min = 400 Request Units with a monthly cost $23.36) and then increasing it if the application workload requires more.
Regarding storage, 1 GB of data will cost $0.25/month.
To summarize, the selected throughput and, let’s say 10 GB of storage will cost you $23.36 + $2.5 ≈ $26/month.
The notification module, which will be part of Azure Functions (we already touched it from a cost perspective), will require a third-party service capable of email delivery.
One such service is Twilio SendGrid, which also provides different pricing plans.
If you are confident 100 emails daily are enough, choose the Free plan.
Paid plans start from $19.95/month, which gives you more emails and additional features that you may or may not need.
Let’s stick to the Free plan for now.
Azure Blob Storage
The next dependency our app requires is Azure Blob Storage which will let us store and manage big amounts of unstructured data like images, videos, documents, or even database backups.
What you pay for are the following things:
- Storage Capacity (how much data is stored)
- Data Transfer (cost associated with moving data in or out of the storage)
- Operations (uploading, downloading, and deleting items)
The selected plan (Standard, Premium), access tier (Hot, Cool, Cold, Archive), and Redundancy level (how many copies of the same data will be stored across different physical locations) will also determine the cost of this.
For example, Blob Storage with Standard plan, Hot access tier, and ZRS redundancy (zone redundant storage) will cost $3-$4 per month for 100 GB of data, which is quite cheap.
Today, storage is not expensive compared to other services mentioned above.
Two things left: Azure Application Insights and Azure Key Vault.
Azure Application Insights
Azure Application Insights costs are based on the amount of telemetry data ingested, the data retention period, and additional advanced features.
A pay-as-you-go pricing model is available, meaning you pay for the data volume consumed and the storage used.
To be more specific, 1 GB of injected data costs $3.29.
So, suppose you don’t require any custom configuration/metrics and want the application to send and store logs. In that case, 1-2 GB per month should be enough.
Hence, the amount is approximately $5/month.
Azure Key Vault
Azure Key Vault pricing model is based on several operations against all keys, secrets, and certificates.
The cost is $0.03 per 10,000 transactions. So, it will all depend on how often the application will send requests to Azure Key Vault, but the overall cost should be manageable; 1M of operations will cost just $3.
The approximate monthly cost for the current setup is
$70 + $26 + $4 + $5 + $3 = $108.
Please note that the costs provided are accurate as of the time of writing and may be subject to change.
This is a cost estimate for the production environment alone. Also, you’ll require a dev/test environment during development, which can be obtained at a much lower cost through limited basic plans or even for free.
In most cases, one more UAT or staging environment is needed for the PO team to test/accept newly built features and present demos for end clients.
Also, as you can see, the cost depends on many inputs, so the actual cost can vary based on that.
Azure Pricing Calculator
To predict the cost at the very beginning of product development, you can use Azure Pricing Calculator, which can provide cost estimation for any Azure service by different parameters that must come from yourself or your development team.
If the application is already in production, daily/they can easily monitor monthly costs via Azure Portal. Additionally, cost limitations can be set up for the product owners to receive emails in case the configured threshold is close to being reached.
And yes, there is a good reason we mentioned your development team here. We only covered the cost of infrastructure from a cloud perspective, but for sure, your dev team brings the costs for the actual development and support of the product.
Reenbit team is ready to guide our clients through the entire cloud engineering cycle seamlessly, ensuring it is efficient and cost-effective.
Let us help you address your challenges and needs, while helping your business adapt to the cloud environment in no time.