Creation of a performance-optimized image of a server
A system and method for creating a performance-optimized server image. The method includes receiving performance information of one or more servers of a first type. Current values for performance parameters of the one or more servers are determined based on the logs. Optimal value ranges for the performance parameters are determined. In response to determining that, for at least one performance parameter, a current value is outside a respective optimal value range, a new version of the server image is created. New values for the performance parameters are determined. In response to determining that, for each performance parameter, a new value is within a respective optimal value range, the new version of the server image is validated as a performance-optimized version of the server image.
1 . An apparatus comprising:
an image creation system, wherein the image creation system comprises:
a memory comprising:
a code repository, wherein the code repository stores latest versions of server images; and
a machine learning algorithm configured, when executed, to create updated versions of server images;
a processor communicatively coupled to the memory, wherein the processor is configured to:
receive performance information of one or more servers of a first type, wherein the one or more servers of the first type are in a full-stack environment;
receive a latest version of a server image of the first type from the code repository;
execute the machine learning algorithm to:
determine current values for performance parameters of the one or more servers based at least in part upon the performance information, wherein the performance parameters comprises a response time and a number of error messages for a pre-determined time interval;
determine a target server configuration, wherein the target server configuration comprises target value ranges for the performance parameters;
compare for each of the response time and the number of error messages for a pre-determined time interval, a current value to a respective target value range;
in response to determining that, for at least one of the response time and the number of error messages for a pre-determined time interval, the current value is outside the respective target value range, determine one or more software updates associated with an operating system corresponding to the latest version of the server image;
create a new version of the server image by executing the one or more software updates associated with the operating system corresponding to the latest version of the server image;
determine new values for the performance parameters based on the new version of the server image;
compare, for each of the performance parameters, a new value to a respective target value range; and
in response to determining that, for each of the performance parameters, the new value is within the respective target value range, validate the new version of the server image as a target version of the server image;
build the target version of the server image;
provision a new server of the first type communicatively coupled to the apparatus in accordance with the target version of the server image; and
add the new server of the first type to the one or more servers of the first type in the full-stack environment.
2 . The apparatus of claim 1 , further comprising a provisioning system, wherein the provisioning system comprises a provisioning processor configured to:
receive the target version of the server image; and
in response to receiving the target version of the server image, provision the new server of the first type with the target version of the server image in a full stack environment.
3 . The apparatus of claim 1 , wherein the performance parameters comprise an input-output operations per second (IOPS) performance, or a computing performance.
4 . The apparatus of claim 1 , wherein the new version of the server image is created based at least in part upon changes to memory allocation parameters, processor allocation parameters, or network bandwidth allocation parameters.
5 . The apparatus of claim 1 , wherein a server of the first type comprises an application server, a database server, or a middleware server.
6 . The apparatus of claim 1 , wherein the processor is further configured to:
in response to determining that the current value is within the respective target value range for each of the performance parameters, determine that the latest version of the server image is the target version of the server image.
7 . The apparatus of claim 1 , wherein the processor is further configured to:
store the target version of the server image in the code repository.
8 . A method comprising:
receiving performance information of one or more servers of a first type, wherein the one or more servers of the first type are in a full-stack environment;
receiving a latest version of a server image of the first type from a code repository;
executing a machine learning algorithm to perform one or more operations comprising:
determining current values for performance parameters of the one or more servers based at least in part upon the performance information, wherein the performance parameters comprises a response time and a number of error messages for a pre-determined time interval;
determining a target server configuration, wherein the target server configuration comprises target value ranges for the performance parameters;
comparing for each of the response time and the number of error messages for a pre-determined time interval, a current value to a respective target value range;
in response to determining that, for at least one of the response time and the number of error messages for a pre-determined time interval, the current value is outside the respective target value range, determining one or more software updates associated with an operating system corresponding to the latest version of the server image;
creating a new version of the server image by executing the one or more software updates associated with the operating system corresponding to the latest version of the server image;
determining new values for the performance parameters based on the new version of the server image;
comparing, for each of the performance parameters, a new value to a respective target value range; and
in response to determining that, for each of the performance parameters, the new value is within the respective target value range, validating the new version of the server image as a target version of the server image;
building the target version of the server image;
provisioning a new server of the first type communicatively coupled to an apparatus in accordance with the target version of the server image; and
adding the new server of the first type to the one or more servers of the first type in the full-stack environment.
9 . The method of claim 8 , further comprising:
in response to receiving the target version of the server image, provisioning the new server of the first type with the target version of the server image.
10 . The method of claim 8 , wherein the performance parameters comprise an input-output operations per second (IOPS) performance, or a computing performance.
11 . The method of claim 8 , wherein the new version of the server image is created based at least in part upon changes to memory allocation parameters, processor allocation parameters, or network bandwidth allocation parameters.
12 . The method of claim 8 , wherein a server of the first type comprises an application server, a database server, or a middleware server.
13 . The method of claim 8 , further comprising:
in response to determining that the current value is within the respective target value range for each of the performance parameters, determining that the latest version of the server image is the target version of the server image.
14 . The method of claim 8 , further comprising:
storing the target version of the server image in the code repository.
15 . A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to:
receive performance information of one or more servers of a first type, wherein the one or more servers of the first type are in a full-stack environment;
receive a latest version of a server image of the first type from a code repository;
execute a machine learning algorithm to:
determine current values for performance parameters of the one or more servers based at least in part upon the performance information, wherein the performance parameters comprises a response time and a number of error messages for a pre-determined time interval;
determine a target server configuration, wherein the target server configuration comprises target value ranges for the performance parameters;
compare for each of the response time and the number of error messages for a pre-determined time interval, a current value to a respective target value range;
in response to determining that, for at least one of the response time and the number of error messages for a pre-determined time interval, the current value is outside the respective target value range, determine one or more software updates associated with an operating system corresponding to the latest version of the server image;
create a new version of the server image by executing the one or more software updates associated with the operating system corresponding to the latest version of the server image;
determine new values for the performance parameters based on the new version of the server image;
compare, for each of the performance parameters, a new value to a respective target value range; and
in response to determining that, for each of the performance parameters, the new value is within the respective target value range, validate the new version of the server image as a target version of the server image;
build the target version of the server image;
provision a new server of the first type communicatively coupled to an apparatus in accordance with the target version of the server image; and
add the new server of the first type to the one or more servers of the first type in the full-stack environment.
16 . The non-transitory computer-readable medium of claim 15 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:
in response to receiving the target version of the server image, provision the new server of the first type with the target version of the server image.
17 . The non-transitory computer-readable medium of claim 15 , wherein the performance parameters comprise an input-output operations per second (IOPS) performance, or a computing performance.
18 . The non-transitory computer-readable medium of claim 15 , wherein the new version of the server image is created based at least in part upon changes to memory allocation parameters, processor allocation parameters, or network bandwidth allocation parameters.
19 . The non-transitory computer-readable medium of claim 15 , wherein a server of the first type comprises an application server, a database server, or a middleware server.
20 . The non-transitory computer-readable medium of claim 15 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:
in response to determining that the current value is within the respective target value range for each of the performance parameters, determine that the latest version of the server image is the target version of the server image.