Using infrastructure-as-code (‘IaC’) to update a cloud-based storage system
Using Infrastructure-as-Code (‘IaC’) to update a cloud-based storage system, including: monitoring one or more performance metrics associated with a cloud-based storage system; generating, based on the performance metrics, a configuration template for the cloud-based storage system, wherein the configuration template specifies a target state for the cloud-based storage system; and updating the cloud-based storage system using the configuration template.
1. A method comprising:
monitoring one or more performance metrics associated with a cloud-based storage system;
generating, based on the performance metrics, a target state for the cloud-based storage system;
generating, based on the target state and a current state of the cloud-based storage system, one or more transitional codified states, each transitional codified state comprises one or more configuration templates for the cloud-based storage system, wherein each configuration template specifies service or component architectures; and
updating the cloud-based storage system by applying the one or more transitional codified states and using the one or more configuration templates.
2. The method of claim 1 wherein the performance metrics include a number of input/output (‘I/O’) operations that are directed to the cloud-based storage system.
3. The method of claim 1 wherein the performance metrics include an amount of storage utilized in the cloud-based storage system.
4. The method of claim 1 wherein monitoring one or more performance metrics associated with a cloud-based storage system includes determining whether one or more service level agreements associated with the cloud-based storage system are being met.
5. The method of claim 1 wherein monitoring one or more performance metrics associated with a cloud-based storage system includes determining whether one or more latency targets associated with input/output (‘I/O’) operations that are directed to the cloud-based storage system are being met.
6. The method of claim 1 wherein the target state for the cloud-based storage system includes additional cloud computing resources for supporting a storage controller application than are included in the current state for the cloud-based storage system.
7. The method of claim 1 , wherein generating the one or more transitional codified states comprises querying a repository storing a plurality of transitional codified states.
8. The method of claim 7 , wherein the repository stores one or more encodings of allowable transitions between the plurality of transitional codified states.
9. The method of claim 8 , wherein the allowable transitions are encoded according to one or more rules for preventing a disruptive upgrade.
10. An apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
monitoring one or more performance metrics associated with a cloud-based storage system;
generating, based on the performance metrics, a target state for the cloud-based storage system;
generating, based on the target state and a current state of the cloud-based storage system, one or more transitional codified states, each transitional codified state comprises one or more configuration templates for the cloud-based storage system, wherein each configuration template specifies service or component architectures; and
updating the cloud-based storage system by applying the one or more transitional codified states and using the one or more configuration templates.
11. The apparatus of claim 10 , wherein monitoring one or more performance metrics associated with a cloud-based storage system includes determining whether one or more service level agreements associated with the cloud-based storage system are being met.
12. The apparatus of claim 10 , wherein monitoring one or more performance metrics associated with a cloud-based storage system includes determining whether one or more latency targets associated with input/output (‘I/O’) operations that are directed to the cloud-based storage system are being met.
13. The apparatus of claim 10 , wherein the performance metrics include at least one of: a number of input/output (‘I/O’) operations that are directed to the cloud-based storage system or an amount of storage utilized in the cloud-based storage system.
14. A computer program product disposed upon a computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:
monitoring one or more performance metrics associated with a cloud-based storage system;
generating, based on the performance metrics, a target state for the cloud-based storage system;
generating, based on the target state and a current state of the cloud-based storage system, one or more transitional codified states, each transitional codified state comprises one or more configuration templates for the cloud-based storage system, wherein each configuration template specifies service or component architectures; and
updating the cloud-based storage system by applying the one or more transitional codified states and using the one or more configuration templates.
15. The computer program product of claim 14 , wherein monitoring one or more performance metrics associated with a cloud-based storage system includes determining whether one or more service level agreements associated with the cloud-based storage system are being met.
16. The computer program product of claim 14 , wherein monitoring one or more performance metrics associated with a cloud-based storage system includes determining whether one or more latency targets associated with input/output (‘I/O’) operations that are directed to the cloud-based storage system are being met.
17. The computer program product of claim 14 , wherein the performance metrics include at least one of: a number of input/output (‘I/O’) operations that are directed to the cloud-based storage system or an amount of storage utilized in the cloud-based storage system.