Methods and apparatuses for determining a configuration data set for deployment of an artifact

EP4702511A1Pending Publication Date: 2026-03-04TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-04-25
Publication Date
2026-03-04

AI Technical Summary

Technical Problem

Human users face challenges in determining optimized configuration files for diverse operator environments without access to large historical data sets, requiring expertise in various syntaxes and being time-consuming and inconsistent in striking a balance between performance goals like security and resource efficiency.

Method used

A computer-implemented method using a machine learning model to determine a configuration data set for artifact deployment, receiving a request with a performance profile and outputting configuration values that meet the desired performance goals, automating the creation and optimization of configuration data sets across different file types and environments.

Benefits of technology

The method enables efficient and consistent determination of configuration data sets that meet specific performance profiles, reducing the need for human expertise and automating the creation of complex deployment description files, enhancing deployment efficiency and quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure SE2023050384_31102024_PF_FP_ABST
    Figure SE2023050384_31102024_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments described herein relate to methods and apparatuses for using a first machine learning, ML, model to determine a configuration data set for deployment of an artifact. A method comprises receiving (101) a request for the configuration data set from an entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; obtaining (102) a first structure comprising ordered selected configuration parameters, wherein the first structure is associated with the first type; inputting (103) the first structure into a first ML model associated with the first type; and outputting (104), from the first ML model, the configuration data set, wherein the configuration data set comprises one or more configuration values for one or more of the selected configuration parameters, wherein either: the first ML model is associated with a second performance profile that corresponds to the first performance profile, or the step of inputting comprises inputting the first performance profile into the first ML model.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] METHODS AND APPARATUSES FOR DETERMINING A CONFIGURATION DATA SET FOR DEPLOYMENT OF AN ARTIFACT

[0002] TECHNICAL FIELD

[0003] Embodiments described herein relate to a computer implemented method for determining a configuration data set for deployment of an artifact. Also disclosed are a configuration data generator, an entity, a computer program, a computer program product and a computer implemented method for obtaining configuration data set for deployment of an artifact.

[0004] BACKGROUND

[0005] The existence of diverse operator environments means that different settings for the same artifact may be required in different operator environments since the environments and configurations where artifact is acting may vary case by case. Many of these artifacts (e.g., telecom equipments, Internet of Things (loT) devices, containers, Virtual Machines, databases, microservices, or microfunctions) have predefined deployment configuration files (.yaml, .json, etc.) that are recommended to be used when the artifact is deployed the particular operator environments. Pre-defined values for different configuration parameters within the configuration files are usually defined by human users of the artifact. Herein configuration files may also be referred to as configuration data sets.

[0006] What settings the artifact requires may also typically vary depending on whether security, safety, privacy, efficiency, etc oriented preferences for performance need to be prioritized.

[0007] The patent application PCT / IB2022 / 058475 discloses a method for predicting loT data inconsistency obtained from loT data collected from a plurality of loT devices by a monitoring system.

[0008] SUMMARY

[0009] A problem for human users may be how to determine optimized configuration files for different environments without having access to large historical data sets relating to the operator environment’s specific settings. The syntax and structure of different configuration files (Terraform, CDK, Puluni, Crossplane, yaml, etc.) also varies a lot which requires human users to be experts in all different types of syntaxis.

[0010] Determining the values of the configuration parameters within the configuration files such that the right balance is struck between various performance goals, (e.g., security, resource efficiency), can be very challenging for a human user. For a human user it may also be very demanding to define the values of the configuration parameters such that one performance foal (e.g. security) is prioritized over another (e.g. resource efficiency) whilst still having good enough values of the configuration parameters that provide satisfactory performance for both performance goals.

[0011] Overall human users are not good at making judgements in trade-off situations such as this without being provided with a lot of old fact-based information. Even then, the decision making is very time consuming and inconsistent when performed by a human user.

[0012] An object of the disclosure is to enable an improved determination of a configuration data set for deployment of an artifact.

[0013] According to some embodiments there is provided computer implemented method for using a first machine learning, ML, model to determine a configuration data set for deployment of an artifact. The method comprises receiving a request for the configuration data set from an entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; obtaining a first structure comprising ordered selected configuration parameters, wherein the first structure is associated with the first type; inputting the first structure into a first ML model associated with the first type; and outputting, from the first ML model, the configuration data set, wherein the configuration data set comprises one or more configuration values for one or more of the selected configuration parameters, wherein either: the first ML model is associated with a second performance profile that corresponds to the first performance profile, or the step of inputting comprises inputting the first performance profile into the first ML model.

[0014] According to some embodiments there is provided a computer implemented method for obtaining a configuration data set for deployment of an artifact. The method comprises transmitting a request for the configuration data set to a configuration data generator, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; and receiving the configuration data set.

[0015] According to some embodiments there is provided a configuration data generator for using a first machine learning, ML, model to determine a configuration data set for deployment of an artifact. The configuration data generator comprises a memory comprising instruction data representing a set of instructions; and processing circuitry configured to communicate with the memory and to execute the set of instructions, wherein the set of instructions, when executed by the processing circuitry, cause the configuration data generator to: receive a request for the configuration data set from an entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; obtain a first structure comprising ordered selected configuration parameters, wherein the first structure is associated with the first type; input the first structure into a first ML model associated with the first type; and output, from the first ML model, the configuration data set, wherein the configuration data set comprises one or more configuration values for one or more of the selected configuration parameters, wherein either: the first ML model is associated with a second performance profile that corresponds to the first performance profile, or the step of inputting comprises inputting the first performance profile into the first ML model.

[0016] According to some embodiments there is provided an entity for obtaining a configuration data set for deployment of an artifact. The entity comprises a memory comprising instruction data representing a set of instructions; and processing circuitry configured to communicate with the memory and to execute the set of instructions, wherein the set of instructions, when executed by the processing circuitry, cause the entity to: transmit a request for the configuration data set to a configuration data generator, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; and receive the configuration data set.

[0017] Aspects and examples of the present disclosure thus provide methods and apparatuses that can determine a configuration data set in response to a request for an entity that meets a desired performance profile for the configuration data set.

[0018] For the purposes of the present disclosure, the term “ML model” encompasses within its scope the following concepts: Machine Learning algorithms, comprising processes or instructions through which data may be used in a training process to generate a model artefact for performing a given task, or for representing a real world process or system; the model artefact that is created by such a training process, and which comprises the computational architecture that performs the task; and the process performed by the model artefact in order to complete the task.

[0019] References to “ML model”, “model”, model parameters”, “model information”, etc., may thus be understood as relating to any one or more of the above concepts encompassed within the scope of “ML model”.

[0020] BRIEF DESCRIPTION OF THE DRAWINGS

[0021] For a better understanding of the embodiments of the present disclosure, and to show how it may be put into effect, reference will now be made, by way of example only, to the accompanying drawings, in which:

[0022] Figure 1 illustrates a computer-implemented method for using a first machine learning, ML, model to determine a configuration data set for deployment of an artifact;

[0023] Figure 2 illustrates computer implemented method for obtaining a configuration data set for deployment of an artifact;

[0024] Figure 3 illustrates a high-level view of functional flows utilising a configuration data generator according to some embodiments;

[0025] Figure 4 is a flow chart illustrating an example implementation of step 304 of Figure 3;

[0026] Figure 5 is a signalling diagram illustrating an example implementation of the methods of Figures 2 and 3;

[0027] Figure 6 is a flowchart illustrating an example method for training a first ML model;

[0028] Figure 7 is a flowchart illustrating an example method for training a first ML model;

[0029] Figure 8 is a flowchart illustrating an example method for using a second ML model to obtain a first structure;

[0030] Figure 9 illustrates an example of a shift matrix according to some embodiments; Figure 10 illustrates a configuration data generator comprising processing circuitry;

[0031] Figure 11 is a block diagram illustrating a configuration data generator according to some embodiments;

[0032] Figure 12 illustrates an entity comprising processing circuitry;

[0033] Figure 13 is a block diagram illustrating an entity according to some embodiments; and

[0034] Figure 14 is a block diagram illustrating a computer program product according to some embodiments.

[0035] DETAILED DESCRIPTION

[0036] Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and / or is implied from the context in which it is used. All references to a / an / the element, apparatus, component, means, step, etc. are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any methods disclosed herein do not have to be performed in the exact order disclosed, unless a step is explicitly described as following or preceding another step and / or where it is implicit that a step must follow or precede another step. Any feature of any of the embodiments disclosed herein may be applied to any other embodiment, wherever appropriate. Likewise, any advantage of any of the embodiments may apply to any other embodiments, and vice versa. Other objectives, features and advantages of the enclosed embodiments will be apparent from the following description.

[0037] The following sets forth specific details, such as particular embodiments or examples for purposes of explanation and not limitation. It will be appreciated by one skilled in the art that other examples may be employed apart from these specific details. In some instances, detailed descriptions of well-known methods, nodes, interfaces, circuits, and devices are omitted so as not obscure the description with unnecessary detail. Those skilled in the art will appreciate that the functions described may be implemented in one or more nodes using hardware circuitry (e.g., analog and / or discrete logic gates interconnected to perform a specialized function, ASICs, PLAs, etc.) and / or using software programs and data in conjunction with one or more digital microprocessors or general purpose computers. Nodes that communicate using the air interface also have suitable radio communications circuitry. Moreover, where appropriate the technology can additionally be considered to be embodied entirely within any form of computer- readable memory, such as solid-state memory, magnetic disk, or optical disk containing an appropriate set of computer instructions that would cause a processor to carry out the techniques described herein.

[0038] Hardware implementation may include or encompass, without limitation, digital signal processor (DSP) hardware, a reduced instruction set processor, hardware (e.g., digital or analogue) circuitry including but not limited to application specific integrated circuit(s) (ASIC) and / or field programmable gate array(s) (FPGA(s)), and (where appropriate) state machines capable of performing such functions.

[0039] Embodiments described herein provide methods and apparatuses that utilize historical configuration data sets and machine learning to enable an automated construction of configuration data sets with diverse types (for example, .yaml, .json, etc.), that also consider preferred (e.g. user-given) performance profiles (for example, where the performance goal of high security is more important than the performance goal of resource efficiency in a trade-off situation). The methods and apparatuses described herein may then optimize the values of configuration parameters within the configuration data set to fulfill performance profile. It will be appreciated that a configuration data set may comprise a deployment description file, a configuration parameter within a configuration data set may comprise a line within a deployment description, and the configuration values for each configuration parameter may comprise values assigned to each line in a deployment description file.

[0040] It will also be understood that a configuration data set (e.g. a deployment description file) may be used to deploy an artifact in a particular environment in with particular settings. In some examples, an intelligent description generator is proposed that may be used in configuration data set generation. In some examples, machine learning maybe utilized to find coherent configuration data set structures and importantly the configuration values that fulfill a user-given performance profile. For example, with a security-oriented performance profile, the machine learning may prefer values for configuration parameters that improve security in trade-off where resource efficiency can be reduced if global optimum cannot be found.

[0041] It will be appreciated that complex systems often have multiple deployment description files that have large number of lines. Utilising embodiments described herein automates the creation and maintenance of such complex deployment description files while enhancing best practices of the deployment description file generation, e.g., reducing redundancy.

[0042] Embodiments described herein may be considered to provide a machine learning system that automates deployment description generation for various artifacts (infrastructure, containers, applications, etc.), considering user preference (e.g. a desired performance profile) in a data-driven fashion. Using historic data, embodiments described herein may learn the structure of the wanted deployment description (Terraform, CDK, Puluni, Crossplane, yaml, etc.), and thus, remedies the demand for the expertise on syntax. Furthermore, by using the historic data with a given performance profile, the embodiments described herein may learn to optimize the values of the deployment description based on the given performance profile. For example, if security was selected as a high priority, the embodiments described herein would prefer configuration values that increase security.

[0043] The embodiments described herein enhance and apply best practices of deployment description generation by learning these best practices from the historic data. For instance, embodiments described herein can automatically reduce redundancy in configuration parameters description files and compress the statements. This leads to a higher quality in file structure which has less lines, which is therefore easier for a human to understand, and is more effective.

[0044] The embodiments described herein are scalable as therefore may be various deployments with varying complexity and performance profiles, e.g. in an edge network resource efficiency may be prioritized whereas in a core network security may be prioritised. Embodiments described herein may therefore provide a configuration data generator that can be used in generation of configuration data sets (e.g. deployment description files). A configuration data set may comprise any information that may be used to deploy an artifact. An artifact may be deployed to a container, VM (Virtual Machine), enclave, Hardware, etc.

[0045] The artifacts may comprise infrastructure (compute machines, databases, networking, etc.), software applications, loT (Internet of Things) applications, network functions, microservices, microfunctions, etc., or any combination thereof.

[0046] The configuration data generator may utilise historical description file data (e.g. training data sets) in machine learning that enables an automated way of constructing configuration data sets with diverse file types (.yaml, .json, etc.), considering a performance profile (that may be user-given), for example g., security is more important than resource efficiency in a trade-off situation, and optimizing configuration values to fulfill the performance profile.

[0047] Moreover, it will be appreciated that machine learning (for example as will be described with reference to Figure 8) may also be used enhance the quality of the structure of the configuration data set by reducing redundancy in configuration parameters and inherently learning best practices from historic configuration data sets.

[0048] Figure 1 illustrates a computer-implemented method for using a first machine learning, ML, model to determine a configuration data set for deployment of an artifact.

[0049] The method 100 may be performed by a configuration data generator, which may comprise a physical node, or hardware utilised to implement a virtual node. The configuration data generator may be implemented in a computing device, a server apparatus and / or in a virtualized environment, for example in a cloud, edge cloud or fog deployment.

[0050] In step 101 the method comprises receiving a request for the configuration data set from an entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile. For example, the first type of the configuration data set may comprise a deployment description file type such as for example. yaml or, .json file types. The indication of the first type of configuration data set may comprise an initial configuration data set of the first type. In other words, the entity may provide an initial configuration data set (for example as illustrated in Example Configuration Data Set 1 below), and the configuration data generator may then utilize the initial configuration data set to provide a configuration data set for the entity to use (in step 104).

[0051] The first performance profile may comprise one or more performance goals for the configuration data set. As previously described, a performance goal may, for example, comprise one or more of: high security, resource efficiency or availability, integrity, latency (e.g., application latency which may be defined as how long it takes for an application to give a response when requested), privacy, and a minimum or maximum user authorization privilege.

[0052] Each of the one or more performance goals may be associated with a respective weighting value.

[0053] For example, a performance profile may be expressed using floating-point numbers that depict the weight, for example as follows: security: 0.5, resource efficiency: 0.0, availability: 0.5. This example performance profile indicates that resource efficiency is not prioritised, but security and availability are equally prioritised.

[0054] In step 102, the method comprises obtaining a first structure comprising ordered selected configuration parameters, wherein the first structure is associated with the first type.

[0055] It will be appreciated that a configuration data set such as a deployment description file, comprises lines that are effectively ordered, from the top of the file to the bottom. Each line is a configuration parameter.

[0056] For example, in the following example deployment description file, the configuration parameter “metadata:” is first and the configuration parameter “storage” is the last line.

[0057] Which configuration parameters are within a configuration data set, and their ordering may therefore be considered as the structure of the configuration data set.

[0058] Configuration Data Set 1 metadata: name: nqinx-deployment labels: app: nqinx spec: replicas: 3 template: spec: containers:

[0059] - name: nqinx image: nqinx:1.14.2 ports:

[0060] - containerPort: 80 volumeClaimTemplates:

[0061] — metadata:

[0062] - metadata: name: www spec: accessModes: [ “ReadWriteOnce” ] storageClassName: “my-storaqe-class” resources: requests: storage: 1Gi

[0063] The example configuration data set 1 comprises a yaml-based deployment description file that depicts a nginx deployment.

[0064] The structure of example configuration data set 1 comprises the bolded configuration parameters and their order. In some examples, the first structure may be taken from any historical configuration data set of the same type or from an initial configuration data set sent by the entity with the first performance profile in step 101 . However, in other examples, the first structure may be determined using a second machine learning, ML model as described later with reference to Figures 8 and 9.

[0065] In step 103, the method comprises inputting the first structure into a first ML model associated with the first type. For example, the first ML model may be considered associated with the first type as it has been trained using training data sets comprising historical configuration data sets of the first type.

[0066] In some embodiments, the first ML model is associated with a second performance profile that corresponds to the first performance profile.

[0067] The first ML model may be considered associated with the second performance profile as it has been trained using training data sets comprising historical configuration data sets that met, or were designed by a human expert to meet, third performance profiles that correspond to the second performance profile.

[0068] A performance profile may be considered to correspond to another performance profile when the performance profiles meet a similarity criterion. For example, performance profiles may be required to be exactly the same in order to be considered to correspond, but in other examples there may be a similarity criterion that allows for acceptable differences between performance profiles that are considered to correspond.

[0069] For example, if the first performance profile is: security: 0.5, resource efficiency: 0.0, availability: 0.5.

[0070] A second performance profile may be considered to correspond if security = 0.4 to 0.6, resource efficiency = 0 to 0.1 and availability = 0.3 to 0.5.

[0071] In other words, there may be some set margins associated with the individual performance goals, and the performance profiles may be considered to correspond if the performance goals fall within the same margins. By allowing the training data sets used to train the model to be associated with third performance profiles that are not exactly the same as the second performance profile, the training data available for training the first ML model can be extended.

[0072] It will be appreciated that other ways of comparing the similarity of performance profiles exist, and that it is a matter of design choice to determine the level of similarity required between performance profiles.

[0073] An example in which the first ML model is associated with the second performance profile is described in more detail with reference to Figure 6.

[0074] Alternatively, to the first ML model being associated with the second performance profile, step 103 may further comprise inputting the first performance profile into the first ML model. In this example, the first ML model may be trained to receive both the performance profile and the first structure as inputs, and the training data sets used to train the ML model may therefore comprise training data sets associated with a variety of different performance profiles. An example in which the first ML model is training to receive the performance profile as an input is described in more detail with reference to Figure 7.

[0075] In some examples responsive to the initial configuration data set (received as part of the request in step 101) comprising one or more fixed values for particular configuration parameters, the first structure may be populated with the one or more fixed values for the particular configuration parameters before inputting the first structure into the first ML model. This may then ensure that the fixed values specified in the request are considered by the first ML model.

[0076] In step 104, the method comprises outputting, from the first ML model, the configuration data set, wherein the configuration data set comprises one or more configuration values for one or more of the selected configuration parameters. For example, the first ML model may therefore be trained to populate the configuration parameters that require values with appropriate values that will allow the resulting configuration data set to meet the first performance profile when it is used to deploy the artifact.

[0077] For example, for a security-oriented first performance profile, the first ML model may prefer configuration values that improve security in a trade-off where resource efficiency can be reduced, if a global optimum cannot be found. However, in the example where the first performance profile is security: 0.5, resource efficiency: 0.0, availability: 0.5, the first ML model may increase security and availability equally, and may takes trade-offs where security and availability can be increased at the expense of resource efficiency.

[0078] In another example, if the performance profile is simply to prioritise resource efficiency, the reserved computational resources may be used in a minimized way that fulfils the functionality of the deployment.

[0079] As illustrated in Configuration data Set Example 1 above, it will be appreciated that not all configuration parameters have associated configuration values. It will also be appreciated that in some cases one or more of the configuration values are fixed in the request received in step 101. For example, responsive to the initial configuration data set comprising one or more fixed values for one or more particular configuration parameters, the configuration data set produced in step 104 may comprise the one or more fixed values for the one or more particular configuration parameters.

[0080] In the example configuration data set 1 , the configuration values that are not underlined may be changed an optimised by the first ML model in steps 103 and 104. However, the underlined values may be specified in the request of step 101 and may therefore be user- defined and final.

[0081] In some examples, the method of Figure 1 further comprises step 105 which comprises transmitting the configuration data set to the entity.

[0082] By utilising a first ML model to determine the configuration values in the configuration data set, it may be safely assumed that the configuration data set will meet the requested performance profile, e.g., constrained resources. It would be very laborious to write rule set that would implement identical functionality to utilising the machine learning and moreover it would be very laborious to maintain the rules and create exceptions if the deployment environment introduces special constraints or characteristics.

[0083] The creation and optimization of the configuration data sets is a feasible use-case for machine learning since the structure of configuration data sets and configuration values comprise both visible and hidden correlations to the performance profiles. The correlations may not be obvious for a rule-based systems and also, it would be laborious for a human to identify the correlations.

[0084] Figure 2 illustrates computer implemented method for obtaining a configuration data set for deployment of an artifact.

[0085] The method 100 may be performed by an entity, which may comprise a physical node or hardware utilised to implement a virtual node. The entity may be or comprise a computing device, a server apparatus and / or may, e.g., as a server apparatus be implemented in a virtualized environment, for example in a cloud, edge cloud or fog deployment. The entity may comprise a Digital Twin, a network node or a wireless device (e.g. a user equipment). The entity may comprise any apparatus or device that is capable of utilising a configuration data set to deploy an artifact.

[0086] In step 201 , the method comprises transmitting a request for the configuration data set to a configuration data generator. The configuration data generator may be configured to perform the method as described with reference to Figure 1. The request of step 201 comprises: an indication of a first type of configuration data set, and a first performance profile. In some examples, the indication of the first type of configuration data set may comprise an initial configuration data set which may have been written by a user of the entity. In other example, the user of the entity may just indicate the first type, e.g. .yaml or .json. The first performance profile may be specified as described above with reference to Figure 1 .

[0087] In step 202, the method comprises receiving the configuration data set from the configuration data generator.

[0088] In some examples, the method then further comprises utilizing the configuration data received in step 202 to deploy the artifact.

[0089] It will therefore be appreciated that the methods of Figures 1 and 2 propose to utilize machine learning determine the configuration values for a configuration data set such that a particular performance profile (which may be given be a user) is fulfilled. Embodiments described herein may also utilise machine learning to determine the structure of the configuration data set. Figure 3 illustrates a high-level view of functional flows utilising a configuration data generator according to some embodiments.

[0090] In step 301 the entity 300 transmits a request for a configuration data set to the configuration data generator. Step 301 comprises an example implementation of steps 101 and 201. The request comprises an indication of the first type and the first performance profile.

[0091] In step 302, configuration data generator may fetch historic configuration data sets to use as training data sets for the first ML model. It will be appreciated that the training data sets may be configuration data sets of the first type. In some examples, the training data sets are associated with third performance profiles that correspond to the first performance profile.

[0092] In step 303 the training data sets are returned to the configuration data generator.

[0093] In step 304 the first ML model is trained using the training data sets.

[0094] It will be appreciated that in some examples the configuration data generator may have already trained a first ML model that is suitable for fulfilling the request received in step 301.

[0095] In step 305, the trained first ML model is returned to the configuration data generator.

[0096] In step 306, the configuration data generator inputs the first structure into the trained ML model. In some cases, the first ML model may also receive the first performance profile as an input.

[0097] In step 307 the populated configuration data set is output.

[0098] In step 308, the configuration data set is transmitted to the entity which may then use the configuration data set to deploy an artifact.

[0099] Figure 4 is a flow chart illustrating an example implementation of step 304. The training of the first ML model considers the first performance profile and optimizes configuration values to fulfil the first performance profile.

[0100] As an input, the first ML model may expect one or more of a structure (e.g. an ordering of configuration parameters), one or more fixed configuration values, and a performance profile. During training (as will be described in more detail with reference to figures 6 and 7, historic configuration data sets are used as training data. Historic configuration data sets may be maintained in a database comprising previous successful deployments that have fulfilled their corresponding performance profiles. In step 401 input data is read from a training data set. In step 402 the text values from the input data may bs transformed into vectors.

[0101] In step 403 the first ML model is trained (e.g. as described in more detail with reference to Figures 6 and 7). It will be appreciated that the first ML model, for example, may comprise a decision tree, a random forest classifier, or a neural network.

[0102] In step 404 the first ML model outputs predicted configuration values.

[0103] In step 405, the output predicted configuration values are compared to the actual configuration values used in the training data set. For example, a loss function may be calculated.

[0104] If the comparison of step 405 indicates that the first ML model performs well, the first ML model may be stored in step 406. However, if the first ML model does not perform well the model may be updated in step 407.

[0105] Step 407 may for example comprise performing hyperparameter tuning and optimisation to improve the performance of the first ML model.

[0106] Figure 5 is a signalling diagram illustrating an example implementation of the methods of Figures 2 and 3.

[0107] In step 501 the entity 500 transmits a request to the configuration data generator. The request comprises an indication of the first type (in this case .yaml) and a first performance profile (in this example 0.5 resource efficiency and 0.5 security). Step 501 comprises an example implementation of step 101 of Figrue 1 and step 201 of Figure 2.

[0108] In step 502 the configuration data generator obtains the first structure. Step 502 will be described in more detail with reference to Figure ?. Step 502 comprises an example implementation of step 102 of Figure 1.

[0109] In step 503 the configuration data generator either locates an existing first ML model that is suitable to fulfil the request of step 501 or trains a first ML model. In some examples training the first ML model is performed responsive to receiving the request in step 501.

[0110] In some examples, however the training of the first ML model is performed further responsive to determining that no previously stored ML model meets is ML model is associated with a fifth performance profile that meets a similarity criterion with the first performance profile. In some examples, the step of training the first ML model may be performed responsive to an existing ML model being associated with the first type. To train a first ML model, step 503 may comprise obtaining one or more first training data sets, wherein each first training data set is associated with the first type and a respective third performance profile, and wherein each first training data set comprises configuration parameters with associated training configuration values. For each first training data set step 503 may then further comprise: inputting the configuration parameters into the first ML model; outputting predicted configuration values from the first ML model, and updating the first ML model based on a comparison between the predicted configuration values and the training configuration values. The comparison may comprise a mean squared error between the predicted configuration values and the training configuration values.

[0111] Further examples of how the training of the first ML model may be performed as described with reference to Figures 6 and 7.

[0112] In step 504 the configuration data generator inputs the first structure into the first ML model. Step 504 comprises an example implementation of step 103 of Figure 1.

[0113] In step 505 the configuration data set is output from the first ML model and transmitted to the entity 500. Step 505 comprises an example implementation of step 104 of Figure 1.

[0114] In step 506 the entity 500 utilises the configuration data set to deploy an artifact.

[0115] Figure 6 is a flowchart illustrating an example method fortraining a first ML model. Figure 6 illustrates an example of how step 503 may be implemented. Whilst in Figure 5 the training of the first ML model is illustrated as being performed in response to receiving a request from an entity, it will be appreciated that in some cases the training of the first ML model may be performed before any such request (e.g. containing an indication of the first type and first performance profile) is received.

[0116] In this example, the first ML model is associated with a second performance profile that corresponds to the first performance profile.

[0117] As described above, the training of the first ML model may comprise obtaining one or more first training data sets wherein each first training data set is associated with the first type and a respective third performance profile, and wherein each first training data set comprises configuration parameters with associated training configuration values. In order to obtain the first training data sets, in this example the steps 601 to 603 are performed.

[0118] In step 601 , the method selects a candidate training data set from a pool of available historical configuration data sets. Each candidate training data set comprises configuration parameters and training configuration values.

[0119] In step 602 the method determines whether the candidate training data set is of the first type. The candidate training data set is not of the first type (e.g. a ..json instead of a .yaml), the method returns to step 601. If the candidate training data set is of the first type, the method passes to step 603.

[0120] In step 603 the method comprises determining whether the third performance profile associated with the candidate training data set corresponds to the first performance profile. If the third performance profile does correspond to the first performance profile the method passes to step 604 in which the candidate training data set is added to the first training data sets and is used to train the first ML model.

[0121] If the third performance profile does not correspond to the first performance profile, the method returns to step 601.

[0122] In step 604 the method comprises inputting the configuration parameters of the first training data set into the first ML model. The first ML model may comprise a random forest regression model. For example, the first ML model may be expressed as:. RandomForestRegressor().fit(X,y) where X is the structures of the first training data sets and Y are the configuration values in the first training data sets.

[0123] In step 605 the method comprises outputting predicted configuration values from the first ML model

[0124] In step 606 the method comprises determining a loss function (e.g. MSE) based on the predicted configuration values and the training configuration values. In step 607, the method comprises updating the first ML model based on the loss function. For example, if the first ML model comprises a neural network, weights within the neural network may be adjusted.

[0125] It will be appreciated that the method of Figure 6 may be performed until either no further candidate training data sets meet the requirements to be a first training data set, or the value of the loss function converges to a local or global minimum.

[0126] After performing the method of Figure 6, the training first ML model may be used as follows:

[0127] RandomForestRegressor().predict([‘replicas’])

[0128] Result: {

[0129] 0: 0.0

[0130] 1 : 0.5

[0131] 2: 0.5

[0132] }, where the first value is predicted configuration value (e.g. a predicted number of replicas) and the second value is the probability estimation of how well the associated configuration value would suit the performance profile of the request, e.g., 0.5 (or 50%) when replicas =1 .

[0133] Figure 7 is a flowchart illustrating an example method fortraining a first ML model. Figure 7 illustrates an example of how step 503 may be implemented. Whilst in Figure 5 the training of the first ML model is illustrated as being performed in response to receiving a request from an entity, it will be appreciated that in some cases the training of the first ML model may be performed before any such request (e.g. containing an indication of the first type and first performance profile) is received.

[0134] As described above, the training of the first ML model may comprise obtaining one or more first training data sets wherein each first training data set is associated with the first type and a respective third performance profile, and wherein each first training data set comprises configuration parameters with associated training configuration values.

[0135] In order to obtain the first training data sets, in this example the steps 701 and 702 are performed. Steps 701 and 702 correspond to steps 601 and 602 of Figure 6. However, the candidate training data set is of the first type, the method passes from step 702 to step 703 in which the candidate training data set is added to the first training data sets and is used to train the first ML model.

[0136] Step 703 comprises inputting the configuration parameters and the third performance profile of the first training data set into the first ML model. For example, the first ML model may be expressed as:. RandomForestRegressor().fit(X,y) where X is the structures and performance profiles of the first training data sets and Y are the configuration values in the first training data sets.

[0137] In step 704 the method comprises outputting predicted configuration values from the first ML model.

[0138] In step 705 the method comprises determining a loss function (e.g. MSE) based on the predicted configuration values and the training configuration values.

[0139] In step 706, the method comprises updating the first ML model based on the loss function. For example, if the first ML model comprises a neural network, weights within the neural network may be adjusted.

[0140] It will be appreciated that the method of Figure 7 may be performed until either no further candidate training data sets meet the requirements to be a first training data set, or the value of the loss function converges to a local or global minimum.

[0141] It will be appreciated that when the example illustrated in Figure 7 is utilised to train the first ML model, step 103 of Figure 1 may further comprise inputting the first performance profile into the first ML model. In other words, the ML model is trained to expect both a structure and a performance profile as an input.

[0142] After performing the method of Figure 6, the training first ML model may be used as follows:

[0143] RandomForestRegressor().predict([‘replicas’], [“resource efficiency”])

[0144] Result: {

[0145] 0: 0.0

[0146] 1 : 0.5

[0147] 2: 0.5 }, where the first value is predicted configuration value (e.g. a predicted number of replicas) and the second value is the probability estimation of how well the associated configuration value would suit the performance profile (e.g. “Resource Efficiency”, e.g., 0.5 (or 50%) when replicas =1.

[0148] Figure 8 is a flowchart illustrating an example method for using a second ML model to obtain a first structure. Figure 8 illustrates an example of how step 502 may be implemented.

[0149] In this example, a small sample of historic deployment description files (Descriptions 1 to 3) are considered. Each of the historic deployment description files are associated with a performance profile.

[0150] These historic deployment description files are depicted as ‘pseudo’ files for illustrative purposes. In reality, the deployment description files may be more complex and they may follow various syntaxes depending on the utilized deployment tools and technologies, e.g., Terraform or Puluni.

[0151] Description 1 :

[0152] Performance profile: Increased availability

[0153] Name: nginx-deployment

[0154] Replicas: 10

[0155] Storage: 20 Gi

[0156] Description 2:

[0157] Performance profile: Resource efficiency

[0158] Name: nginx-deployment

[0159] Replicas: 2

[0160] Storage: 2 Gi

[0161] Description 3:

[0162] Performance profile: Increased privacy

[0163] Name: nginx-deployment

[0164] Replicas: 5

[0165] Storage: 4 Gi

[0166] AccessModes: ReadWriteOnce

[0167] In step 801 the method comprises obtaining second training data sets. In this example the second training data sets are the Descriptions 1 to 3. However, it will be appreciated that the second training data sets may comprise the same training data sets utilised to train the first ML model. The second training data sets may be of the first type (e.g. as indicated in step 501).

[0168] In some examples, the second training data sets will be associated with a fourth performance profile that corresponds to the first performance profile indicated in the request received in step 501.

[0169] In step 802, the method comprises creating a shift matric for each second training data set. For example, step 802 may comprises reading description files 1 , 2 and 3, translating the string values of the configuration parameters into numeric values (for example: performance profile = 0, Name: = 1 , Etc.)

[0170] Step 802 may then comprise creating a shift matrix that indicates the structure order for each second training data set. It will be appreciated that utilising a shift matrix is merely an example of how this method may be performed.

[0171] Figure 9 illustrates an example of a shift matrix for Description 3.

[0172] It will be appreciated that in this method each row drops the first element of the previous row (e.g. row two drops the configuration parameter “Name” from row 1) and begins the order from there.

[0173] In this way, the shift matrices for each second training data set can provide more information value to the second ML model, and also the reliability of the lines far from line 1 are more fuzzy due to the fact that there may be differences in the chains considering multiple configuration data sets. In other words, the reliability of the selection of the next probable configuration parameter increases with the number of rows in shift matrices being processed. The reason for this is that, the more rows that are processed, the more information is obtained that can be depicted as a probability distribution of the next line(s). This probability distribution is more meaningful (e.g. is based on more information), the more rows that are processed.

[0174] It will be appreciated that the shift matrix of Figure 9 may replace the string values, e.g., Name and Replicas with their numeric counterparts e.g. 1 and 2. Step 803 comprises setting the values in line 1 of each second training data set matrix as input training samples (X) and lines 2 to N of each second training data set matrix as target values (Y). In other words, each shift matrix may be separated into data sets of X and Y where X is comprises the data from Line 1 and Y comprises the data from Line 2, Line 3, ... Line N.

[0175] In step 804 a second ML model may then be determined. In this example, the second ML model is determining by enacting a multi-class classifier (e.g. a random forest classifier) on the data sets X and Y. In other words the second ML model may be determined as: RandomForestClassifier().fit(X,Y).

[0176] In step 805 the method comprises initializing the first structure, Xs, with a first configuration parameter. For example, the first configuration parameter may be selected as the most common first value in the data set X.

[0177] The method may then comprise determining, utilizing the second ML model and the first structure, a second configuration parameter, adding the second configuration parameter to the end of the first structure; and repeating steps b) to c) until the second ML model indicates that the first structure has ended. In the example illustrated in Figure 8, these steps are performed by performed steps 806 to 809.

[0178] In particular, step 806 may comprise inputting the first structure into the second ML model. For example, step 806 may comprise RandomForestClassifier().predict(Xs).

[0179] The output of this step may comprise, for each of a plurality of candidate second configuration parameters (e.g. every possible value in the data set Y), a probability that the candidate second configuration parameter occurs next after the first structure in the one or more second training data sets.

[0180] In other words, the output at step 806 may comprise { Yi:0%, Y2:50%, Y3: 20% , ...YN:0 %}, where Yj are the possible values in the data set Y, and the associated percentages indicate the probability that the value Yj occurs next in the first structure.

[0181] In step 807 the method then comprises determining whether all probabilities output in step 807 are 0%. If this is true this may indicate that the end of the first structure has been reached and the method may end in step 808. If at least one probability output in step 806 is not 0%, the method passes to step 809 in which the Yj associated with the highest probability value is added to the end of Xs. The method then returns to step 806. In other words, step 809 comprises selecting the candidate second configuration parameter associated with the highest probability value as the second configuration parameter.

[0182] As an example, consider attempting to define a first structure for a configuration data set when the first performance profile in the request 101 is “Increased availability”. In this example, the second training data set comprises only Description 1 as this is associated with the performance profile “Increased availability”.

[0183] If during an iteration of step 806, the first structure, Xs has reached the line “Storage”, then the following may be output at step 806:

[0184] Next line: {

[0185] Storage: 0.0%

[0186] Replicas: 0.00% AccessModes: 0.00% }

[0187] As all of the percentages in this example output of step 806 are 0%, This indicates that the first structure has reach the end, and the method passes to step 808.

[0188] As another example consider attempting to define a first structure for a configuration data set when the first performance profile in the request 101 is “Increased privacy”. In this example, the second training data set comprises only Description 3 as this is associated with the performance profile “Increased privacy”.

[0189] In this example, if during an iteration of step 806 the first structure has reached the line “Storage” then the following may be output at step 806.

[0190] Next line: {

[0191] Storage: 0.0%

[0192] Replicas: 0.00%

[0193] AccessModes: 100.00%

[0194] } As the probability associated with AccessModes is 100.00%, the method may then opt to include the configuration parameter AccessModes in the first structure.

[0195] It will be appreciated that, in examples in which the request in step 101 , 201 or 501 comprises an initial configuration data set, the structure of the output configuration data set may differ from that of the initial configuration data set by the use of the method description in Figure 8. For example, by utilising the method in Figure 8 any repeats of configuration parameters in the initial configuration data set structure may be removed and / or additional parameters may be added in order to better meet the requested first performance profile.

[0196] Embodiments described herein are therefore capable of creating configuration data sets that optimize deployment based on a request performance profile using various syntaxes of various deployment technologies in a data-driven fashion.

[0197] The embodiments described herein automate a great deal of labor that is often carried out manually (creation, maintenance, integration of deployment descriptions) and thus improves the efficiency of infrastructure, software or application deployments. In addition to the structure syntax, the proposed embodiments also learn the best practices of configuration data sets based on historic configuration data sets, and also optimize the configuration data sets based on the requested performance profile. Finally, the data- driven design of this system increases the applicability of the system to be used in deployments from virtual machines to loT applications.

[0198] Figure 10 illustrates a configuration data generator 1000 comprising processing circuitry (or logic) 1001. The processing circuitry 1001 controls the operation of the configuration data generator 1000 and can implement the method described herein in relation to an configuration data generator 1000. The processing circuitry 1001 can comprise one or more processors, processing units, multi-core processors or modules that are configured or programmed to control the configuration data generator 1000 in the manner described herein. In particular implementations, the processing circuitry 1001 can comprise a plurality of hardware modules that are each configured to perform, or are for performing, individual or multiple steps of the method described herein in relation to the configuration data generator 1000. It will be appreciated that the configuration data generator 1000 may comprise one or more virtual machines running different software and / or processes. The configuration data generator 1000 may therefore comprise, or be implemented in or as one or more servers, switches and / or storage devices and / or may comprise cloud computing infrastructure that runs the software and / or processes.

[0199] Briefly, the processing circuitry 1001 of the configuration data generator 1000 is configured to: receive a request for the configuration data set from an entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; obtain a first structure comprising ordered selected configuration parameters, wherein the first structure is associated with the first type; input the first structure into a first ML model associated with the first type; and output, from the first ML model, the configuration data set, wherein the configuration data set comprises one or more configuration values for one or more of the selected configuration parameters, wherein either: the first ML model is associated with a second performance profile that corresponds to the first performance profile, or the step of inputting comprises further inputting the first performance profile into the first ML model.

[0200] In some embodiments, the configuration data generator 1000 may optionally comprise a communications interface 1002. The communications interface 1002 of the configuration data generator 1000 can be for use in communicating with other nodes, such as other virtual nodes. For example, the communications interface 1002 of the configuration data generator 1000 can be configured to transmit to and / or receive from other nodes requests, resources, information, data, signals, or similar. The processing circuitry 1001 of configuration data generator 1000 may be configured to control the communications interface 1002 of the configuration data generator 1000 to transmit to and / or receive from other nodes requests, resources, information, data, signals, or similar. The communications interface 1002 can use any suitable communication technology.

[0201] Optionally, the configuration data generator 1000 may comprise a memory 1003. In some embodiments, the memory 1003 of the configuration data generator 1000 can be configured to store program code that can be executed by the processing circuitry 1001 of the configuration data generator 1000 to perform the method described herein in relation to the configuration data generator 1000. Alternatively or in addition, the memory 1003 of the configuration data generator 1000, can be configured to store any requests, resources, information, data, signals, or similar that are described herein. The processing circuitry 1001 of the configuration data generator 1000 may be configured to control the memory 1003 of the configuration data generator 1000 to store any requests, resources, information, data, signals, or similar that are described herein. The configuration data generator 1000 may be configured operate in the manner described herein in respect of an configuration data generator.

[0202] Figure 11 is a block diagram illustrating a configuration data generator 1100 according to some embodiments. The configuration data generator 1100 comprises a receiving module 1102 configured to receive a request for the configuration data set from an entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile. The configuration data generator 1100 comprises an obtaining module 1104 configured to obtain a first structure comprising ordered selected configuration parameters, wherein the first structure is associated with the first type. The configuration data generator 1100 comprises an inputting module 1106 configured to input the first structure into a first ML model associated with the first type. The configuration data generator comprises an outputting module 1108 configured to output, from the first ML model, the configuration data set, wherein the configuration data set comprises one or more configuration values for one or more of the selected configuration parameters, wherein either: the first ML model is associated with a second performance profile that corresponds to the first performance profile, or the inputting module 1106 is configured to input the first performance profile into the first ML model. The configuration data generator 1100 may operate in the manner described herein in respect of an configuration data generator.

[0203] Figure 12 illustrates an entity 1200 comprising processing circuitry (or logic) 1201. The processing circuitry 1201 controls the operation of the entity 1200 and can implement the method described herein in relation to an entity 1200. The processing circuitry 1201 can comprise one or more processors, processing units, multi-core processors or modules that are configured or programmed to control the entity 1200 in the manner described herein. In particular implementations, the processing circuitry 1201 can comprise a plurality of hardware modules that are each configured to perform, or are for performing, individual or multiple steps of the method described herein in relation to the entity 1200. It will be appreciated that the entity 1200 may comprise one or more virtual machines running different software and / or processes. The entity 1200 may therefore comprise, or be implemented in or as one or more servers, switches and / or storage devices and / or may comprise cloud computing infrastructure that runs the software and / or processes. Briefly, the processing circuitry 1201 of the entity 1200 is configured to: transmit a request for the configuration data set to a entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; and receive the configuration data set.

[0204] In some embodiments, the entity 1200 may optionally comprise a communications interface 1202. The communications interface 1202 of the entity 1200 can be for use in communicating with other nodes, such as other virtual nodes. For example, the communications interface 1202 of the entity 1200 can be configured to transmit to and / or receive from other nodes requests, resources, information, data, signals, or similar. The processing circuitry 1201 of entity 1200 may be configured to control the communications interface 1202 of the entity 1200 to transmit to and / or receive from other nodes requests, resources, information, data, signals, or similar. The communications interface 1202 can use any suitable communication technology.

[0205] Optionally, the entity 1200 may comprise a memory 1203. In some embodiments, the memory 1203 of the entity 1200 can be configured to store program code that can be executed by the processing circuitry 1201 of the entity 1200 to perform the method described herein in relation to the entity 1200. Alternatively or in addition, the memory 1203 of the entity 1200, can be configured to store any requests, resources, information, data, signals, or similar that are described herein. The processing circuitry 1201 of the entity 1200 may be configured to control the memory 1203 of the entity 1200 to store any requests, resources, information, data, signals, or similar that are described herein. The entity 1200 may be configured operate in the manner described herein in respect of an entity.

[0206] Figure 13 is a block diagram illustrating an entity 1300 according to some embodiments. The entity 1300 comprises a transmitting module 1302 configured to transmit a request for the configuration data set to a entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile. The entity 1300 further comprises a receiving module 1304 configured to receive the configuration data set. The entity 1300 may operate in the manner described herein in respect of an entity.

[0207] Figure 14 is a block diagram illustrating a computer program product 1400 according to some embodiments. The computer program product comprises a computer program 1404 comprising instructions which, when executed by processing circuitry (such as the processing circuitry 1001 of the configuration data generator 1300 described earlier), cause the processing circuitry to perform at least part of the method described herein. The computer program product 1400, embodied on a non-transitory machine-readable medium, comprises the computer program 1404 comprising instructions which are executable by processing circuitry to cause the processing circuitry to perform at least part of the method described herein. There is also provided a computer program product comprising a carrier containing instructions for causing processing circuitry to perform at least part of the method described herein. In some embodiments, the carrier can be any one of an electronic signal, an optical signal, an electromagnetic signal, an electrical signal, a radio signal, a microwave signal, or a computer-readable storage medium.

[0208] Embodiments described herein enhance and apply best practices of configuration data set generation by learning these best practices from the historic configuration data sets.

[0209] Embodiments described herein provide a ML system that automates deployment description generation for various artifacts (infrastructure, containers, applications, etc.), considering user preference in a data-driven fashion

[0210] By using historic configuration data sets, the embodiments described herein may learn the structure of the wanted configuration data set (Terraform, CDK, Puluni, Crossplane, yaml, etc.), and thus, remedy the demand for the expertise on syntax.

[0211] Embodiments described herein may observe a requested performance profile (e.g., security is more important than resource efficiency in trade-off situations) and may optimize the configuration values to fulfill the performance profile.

[0212] The creation and optimization of the configuration data sets is a feasible use-case for machine learning since structures of configuration data sets and configuration values comprise both visible and hidden correlations to the performance profiles. For humans it would be very laborious to write and maintain the rules and rule sets and create exceptions if the deployment environment introduces special constraints or characteristics.

[0213] It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim, “a” or “an” does not exclude a plurality, and a single processor or other unit may fulfil the functions of several units recited in the claims. Any reference signs in the claims shall not be construed so as to limit their scope.

Claims

CLAIMS1 . A computer implemented method for using a first machine learning, ML, model to determine a configuration data set for deployment of an artifact, the method comprising: receiving (101) a request for the configuration data set from an entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; obtaining (102) a first structure comprising ordered selected configuration parameters, wherein the first structure is associated with the first type; inputting (103) the first structure into a first ML model associated with the first type; and outputting (104), from the first ML model, the configuration data set, wherein the configuration data set comprises one or more configuration values for one or more of the selected configuration parameters, wherein either: the first ML model is associated with a second performance profile that corresponds to the first performance profile, or the inputting comprises inputting the first performance profile into the first ML model.

2. The method as claimed in claim 1 comprising transmitting (105) the configuration data set to the entity.

3. The method as claimed in claim 1 or 2 wherein the first performance profile comprises one or more performance goals for the configuration data set.

4. The method as claimed in claim 3 wherein the first performance profile comprises respective weighting values associated with the one or more performance goals.

5. The method as claimed in claim 3 or 4 wherein the one or more performance goals comprise one or more of: security, resource efficiency, availability, integrity, latency, privacy, and a minimum or maximum user authorization privilege.

6. The method as claimed in claim 1 to 5 comprising training the first ML model by:obtaining (601) one or more first training data sets, wherein each first training data set is associated with the first type and a respective third performance profile (602, 603), and wherein each first training data set comprises configuration parameters with associated training configuration values; for each first training data set: inputting (604) the configuration parameters into the first ML model; outputting (605) predicted configuration values from the first ML model, and updating (607) the first ML model based on a comparison between the predicated configuration values and the training configuration values.

7. The method as claimed in claim 6 wherein the first ML model is associated with a second performance profile that corresponds to the first performance profile, and the respective third performance profiles each correspond to the second performance profile.

8. The method as claimed in claim 6 wherein the inputting comprises inputting the first performance profile into the first ML model, and wherein training of the first ML model comprises: for each first training data set, inputting (703) the respective third performance profile into the first ML model.

9. The method as claimed in claim 6 to 8 wherein the training of the ML model is performed responsive to receiving the request for the configuration data set.

10. The method as claimed in claim 9 wherein the training of the first ML model is performed responsive to determining (503) that no previously stored ML model is associated with a fifth performance profile that meets a similarity criterion with the first performance profile.11 . The method as claimed in claim 6, 8 and 9 wherein, for each first training data set, the third performance profile and the second performance profile meet a second similarity criterion.

12. The method as claimed in any one of claims 1 to 11 wherein the obtaining a first structure comprises: initializing (805) the first structure with a first configuration parameter; and determining (806, 807), utilizing a second ML model and the first structure, a second configuration parameter; adding (809) the second configuration parameter to the end of the first structure; and repeating the determining and adding until the second ML model indicates that the first structure has ended.

13. The method as claimed in claim 9 wherein the second ML model comprises a multiclass classifier.

14. The method as claimed in claim 10 wherein the second ML model comprises a random forest classifier.

15. The method as claimed in claim 9 to 11 wherein the determining comprises: inputting (806) the first structure into the second ML model; outputting, for each of a plurality of candidate second configuration parameters, a probability that the candidate second configuration parameter occurs next after the first structure in the one or more second training data sets; and selecting the candidate second configuration parameter associated with the highest probability value as the second configuration parameter.

16. The method as claimed in claim 12 wherein the one or more second training data sets are associated with the first type, and each second training data set comprises ordered configuration parameters.

17. The method as claimed in claim 16 wherein the one or more second training data sets are associated with a fourth performance profile that corresponds to the first performance profile.

18. The method as claimed in any preceding claim wherein the indication of the first type of configuration data set comprises an initial configuration data set of the first type.

19. The method as claimed in claim 14 wherein responsive to the initial configuration data set comprising one or more fixed values for one or more particular configuration parameters, the configuration data set comprises the one or more fixed values for the one or more particular configuration parameters.

20. The method as claimed in claim 16 comprising: responsive to the initial configuration data set comprising one or more fixed values for particular configuration parameters, populating the first structure with the one or more fixed values for the particular configuration parameters before inputting the first structure into the first ML model.

21. A computer implemented method for obtaining a configuration data set for deployment of an artifact, the method comprising: transmitting (201) a request for the configuration data set to a configuration data generator, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; and receiving (202) the configuration data set.

22. The method as claimed in claim 20 comprising: utilizing (506) the configuration data set to deploy the artifact.

23. The method as claimed in any one of claims 20 to 21 wherein the indication of the first type of configuration data set comprises an initial configuration data set of the first type.

24. The method as claimed in claim 22 wherein responsive to the initial configuration data set comprising one or more fixed values for one or more particular configuration parameters, the configuration data set comprises the fixed values for the one or more particular configuration parameters.

25. A configuration data generator (1000) for using a first machine learning, ML, model to determine a configuration data set for deployment of an artifact, the configuration data generator comprising: a memory (1003) comprising instruction data representing a set of instructions; and processing circuitry (1001) configured to communicate with the memory and to execute the set of instructions, wherein the set of instructions, when executed by the processing circuitry, cause the configuration data generator to: receive (101) a request for the configuration data set from an entity, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; obtain (102) a first structure comprising ordered selected configuration parameters, wherein the first structure is associated with the first type; input (103) the first structure into a first ML model associated with the first type; and output (104), from the first ML model, the configuration data set, wherein the configuration data set comprises one or more configuration values for one or more of the selected configuration parameters, wherein either: the first ML model is associated with a second performance profile that corresponds to the first performance profile, or the processing circuitry is configured to cause the configuration data generator to input the first performance profile into the first ML model.

26. The configuration data generator (1000) as claimed in claim 25 wherein the set of instructions, when executed by the processing circuitry, cause the configuration data generator to perform the method as claimed in any one of claims 2 to 20.

27. An entity (1202) for obtaining a configuration data set for deployment of an artifact, the entity comprising: a memory (1203) comprising instruction data representing a set of instructions; andprocessing circuitry (1201) configured to communicate with the memory and to execute the set of instructions, wherein the set of instructions, when executed by the processing circuitry, cause the entity to: transmit (201) a request for the configuration data set to a configuration data generator, wherein the request comprises: an indication of a first type of configuration data set, and a first performance profile; and receive (202) the configuration data set.

28. The entity (1202) as claimed in claim 27 wherein the set of instructions, when executed by the processing circuitry, cause the configuration data generator to perform the method as claimed in any one of claims 22 to 24.

29. A computer program (1404) comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out a method according to any of claims 1 to 24.

30. A computer program product (1400) comprising non transitory computer readable(1402) media having stored thereon a computer program (1404) according to claim 29.