Many software solution companies are being asked by their customers to provide performance metrics and scalability options for their solutions. To meet the growing demand of this type of request, Product Management teams often turn to Dev and IT teams to understand how their solutions can scale. A seemingly simple request can have many elements to consider which require coordination and an alignment on the required outcome. In this case, they need to scale their transactions per minute (TPM) and are looking for a way to fulfil.
What are the options? The most common route, and probably the easiest from a traditional IT perspective, would be to ramp up servers that host the application and see what kind of numbers can be produced. This is a grossly over simplified statement though, as we know there are numerous elements at play when performance tuning. Keeping to this simple approach, the elements that affect performance can be:
• # of CPU’s and utilization
• Amount of RAM, configuration and architecture
• Disk IO and configuration
• Database access and configuration
• Network performance
• Application performance
To properly performance tune a solution, a precise methodology, along with data to expose performance blockers, is necessary. Utilization, configuration, hardware and software architecture all contribute to the performance tuning process. This is often what needs to be understood by a PM team before proceeding.
Let’s assume the metrics are available and the performance blockers at a certain TPM have been addressed. The question of how to scale remains and again, the answer is likely to add hardware. Aside from cost, this has its own elements of concern; procurement process, time to configure and capital budgets are just a few. What is this hardware going to do when not being utilized for performance testing? If purchased for this project, can it be easily reallocated (temporarily) until the next performance testing cycle? The long and short of this approach is that there are many variables to consider and ultimately purchasing hardware may not be the most effective or efficient route to the scale TPM.
Now let’s consider this scenario in the cloud and simplify the options to just Infrastructure as a Service (IaaS). The work effort to setup the hardware and application environment is relatively the same, regardless of on premise or the cloud. In our case, what differentiates the performance tuning exercise is the expediency of changing the hardware configuration. While scaling the transactions per minute, addressing the variables of CPU, RAM and disk I/O become very simple. When compared to procurement and hardware upgrades in traditional bare metal environments, spinning up and migrating a new hardware instance, increasing storage or RAM, are completed in hours not weeks.
Customers are expecting higher performance solutions and your competitive advantage might just hinge on your ability to scale. Migrating your performance tuning environment to the cloud will allow you to expediently tune the variables that will enable scaling to hundreds, thousands and tens of thousands of transactions per minute.