IMDEA Software researchers Georgia Christofidi, Konstantinos Papaioannou and Thaleia Dimitra Doudali raise this intriguing question in their most recent publication at the 14th ACM Symposium on Cloud Computing (SoCC 2023). The answer is very insightful and promising.
The researchers performed an extensive analysis of public datasets from various cloud providers (Google, Microsoft Azure, Alibaba, Bitbrains. Their study reveals that cloud workloads and servers utilize hardware resources (compute, memory, disk) across time in a very predictable way, because the values persist over time. This means that the levels of resource usage change very little over short time windows (e.g., every 5 minutes). This unlocks the opportunity for very simple and lightweight forecasting methods to deliver sufficiently accurate predictions for cloud resource management systems to be effective.
And in the cases of more unpredictable resource usage patterns, where machine learning could be used to potentially deliver highly accurate forecasts, the researchers debunk the effectiveness of the popular LSTMs (a type of neural network used for time series forecasting). What seems to be a highly accurate prediction, is nothing but a shifted version of the input. Something they validate with extensive experimentation, as well as observation of related works.
So what is the answer to the question? Is Machine Learning Necessary for Cloud Resource Usage Forecasting?
No. At least for the most part!
With this paper publication, the researchers aim to highlight the importance of revisiting simple mechanisms and better understanding the data, before resulting to the use of machine learning methods in the context of cloud resource management. And when using machine learning, thoroughly validating and evaluating its effectiveness. Is it truly learning? Is it practical to use?
More information, analysis and experimental results can be found in our research paper. The codebase of the experimental evaluation is open sourced. The paper was also featured in a podcast episode of “Disseminate: the Computer Science Research Podcast”.