# Containerised Application Profiling and Classification Using Benchmarks
###### Abstract  
Along with the rise of cloud and edge computing has come a plethora of solutions that regard the deployment and operation of different types of applications in such environments. Infrastructure as a service (IaaS) providers offer a number of different hardware solutions to facilitate the needs of the growing number of distributed applications. It is critical in this landscape to be able to navigate and discover the best-suited infrastructure solution for the applications, taking into account not only the cost of operation but also the quality of service (QoS) required for any given application. The proposed solution has two main research developments: (a) the creation and optimisation of multidimensional vectors that represent the hardware usage profiles of an application, and (b) the assimilation of a machine learning classification algorithm, in order to create a system that can create hardware-agnostic profiles of a vast variety of containerised applications in terms of nature and computational needs and classify them to known benchmarks. Given that benchmarks are widely used to evaluate a system's hardware capabilities, having a system that can help select which benchmarks best correlate to a given application can help an IaaS provider make a more informed decision or recommendation on the hardware solution, not in a broad sense, but based on the needs of a specific application. application profiling and classification; containerised applications; machine learning classification methods; supervised learning; infrastructure as a service management +
Footnote †: journal:  
performance of resources easy, given that they are easy to install and have well-defined workloads to simulate different resource needs for a given hardware set up. Due to this fact, there is significant industry and research adaptation of benchmarks as the means of hardware resource evaluation [4; 5; 6; 7; 8]. Benchmarks by nature simulate different types of tasks and processes that an application can perform, so given the heterogeneity of application as well as the processes they perform existing in this day and age, there was a need for different benchmarks that simulate tasks of different nature and intensity. The variety of benchmark types and workloads stretch from simple operations, such as computing mathematical problems, to very specific operations, such as compression simulations. Although the number of benchmarks that exist and are available to the users is substantial and includes benchmarks that can cover almost any type of application, there is no formal way for an application owner to know which benchmark simulates best the hardware impact their application will produce, in order to use it in the hardware-selection process. Application owners can narrow down the useful benchmarks only by the information on the application nature (i.e., if an application is a database there are specific benchmarks to simulate databases such as YCSB, MongoDB, Cassandra, etc.). This paper presents a way to profile the hardware/resource footprint of a containerised application and classify it to known benchmark profiles with the usage of machine learning (ML) classification algorithms. This process aims to aid the application (container-based application) owner in selecting the most suited benchmark to use for their hardware-evaluation process. The research-and-development approach in order for the application profiling system to achieve this goal, has two main pillars. * Application hardware profile: An application profile in essence is a multidimensional vector, with each feature of this vector representing a specific hardware resource metric. This profile, and more specifically the features it has, should adhere to specific rules in order to have any value for the classification process. These rules fall into three main categories: (a) stability of value for every given feature, (b) value differentiation of a feature for different application or benchmark profiles, (c) every feature must be hardware agnostic.