Those who face cloud computing performance issues are quick to simply increase the number of resources that an underperforming workload has available. This means adding more storage to deal with storage I/O performance, adding more cores/CPUs to deal with processor-bound workloads, or increasing available memory so that virtual storage I/O is avoided altogether.
The cloud providers would give the same advice. I’m sure they have good intentions, but they also make more money if resources to workloads are increased.
In some instances it’s not about just tossing money and resources at a poorly performing workload. Cloud performance engineering is becoming more finessed these days. Here are three things to consider:
Check the application first. Poor cloud workload performance is often blamed on insufficient resources, but at the heart of the matter is a poorly designed, poorly programmed, and poorly deployed application. Simple code and design changes do wonders to solve most of the performance issues you’ll find, and all while using minimal viable cloud-based resources, meaning your cloud bill won’t go up.
Check intracloud network latency. Although we assume that intracloud network bandwidth will exceed any workload requirements, that’s not always the case. Many times when the workload is decoupled from the data source, the performance issue is the bandwidth between the machine instance hosting the workload and the data source, whether it be intracloud or intercloud.
It’s complex to check bandwidth intracloud, but not impossible. Lean how to diagnose issues with the cloud-native tools from your cloud provider. Also, make sure to keep an eye on the bandwidth to the user interfaces as well. The open Internet can have bursty speeds.
Check the database. Much like applications, most database performance issues, cloud-based or not, come from a poorly designed database, not a slow one. What you do to improve database performance, or tuning, will depend largely on the database, but most consider index utilization and caching schemes go-tos in increasing response to the workload.
These are only three tricks to remember; there is much more to cloud performance engineering. Indeed, I see that as an upcoming job role for those who operate cloud-based systems longer term.