# Containerised Application Profiling and Classification Using Benchmarks
## 8 Conclusions, Limitations, and Future Research  
Application profiling and generally effectively characterising and categorising applications is a research field with various approaches and solutions. The main focus of this research was to generalise the features that characterise an application as well as create a system that can profile containerised benchmarks and applications with relative ease. In order to achieve this generalisation, a lot of effort was put into the creation of the profile vector, both in terms of creating a complete characterisation of an application by considering all the hardware resource usage and also by creating features that are not affected by the computational capabilities of the underling hardware. If the profiles were not hardware agnostic, then the already established models would have very little to no accuracy if they were to classify profiles conducted on different hardware. This task was proven to be challenging, and when the testing with an external dataset (with very diverse hardware specifications) was conducted, a drop of 7% in accuracy was observed (92% with the validation dataset, 85% with the external dataset), showcasing the difficulty of the endeavour and the room for improvement. Creating the profiling system presented some challenges, particularly the process of running the benchmarks and collecting their profiles in order to train the ML model. To be useful, this model should include profiles from a wide range of benchmarks, and it should do so in multiple iterations. Node-RED framework aided the process a lot with the communication nodes and the predefined scheduling modules to automate the profiling procedure for multiple iterations. Due to the heterogeneity of the benchmarks, the automation of the profiles was not feasible, making the data collection a hectic procedure, creating some limitations on the process of training or retraining the model with new benchmarks. On the other side of the profiling system development spectrum was the profiling and classification of applications. Although the profile collection process is the same as the one for benchmarks, applications differ in nature from benchmarks in terms of workload specification (benchmarks have a strict predefined workload) and execution time. To tackle the execution time issue, a strict time window in which the profiler collects the resource usage metrics was defined for both benchmarks and applications. As for the workload specification, it is a big limitation due to the fact that it is very difficult to capture with only one profile the general classification of the application, multiple iterations are needed in order to decide on a specific classification, which is time-consuming. Apart from addressing the already established challenges and limitations, there is also future research that can be pursued on the subject at hand. Further research can be conducted on the profile features and application characteristics, in terms of improving the existing ones or introducing others. A particularly interesting scope of this research direction is the incorporation of features that regard energy consumption to create an energy profile for an application. These energy profiles can ultimately help the energy optimisation of the application and also aid the IaaS on the energy resource management process. Another interesting research direction is the expansion of the classification models and the incorporation of different profile classes. In its already-established form, the classification model contains 63 different benchmark-workload combinations. When this model is expanded further, it can be fragmented into further subcategories. This fragmentation can allow the user to select e specific group of benchmarks with a similar nature to the application to correlate it with, creating a more refined classification process.