US-12619583-B2 - Database provisioning and management systems and methods
Abstract
A system and methods for provisioning and managing databases are disclosed. A request is received to provision a database for a software application, including a general database type and one or more parameters for the requested database. Based on the received request, the system generates database recommendations including a recommended specific type of database. The system receives a selection of one of the recommended databases and determines whether a user submitting the request is approved, based on a level of privileges or a quota. When the user is approved for the selected database, the system generates the selected databased by retrieving database code from a repository. The system updates an inventory to reflect the provisioning of the generated database. The generated database can then be managed using the system, including predicting adverse events associated with the generated database and/or predicting a need to adjust resources for the generated database.
Inventors
- VENKATA REDDY DONTHIREDDY
- Deependra Adhikari
- Praveen Kumar Indla
- Madhu Raman Nair Kangara
Assignees
- T-MOBILE USA, INC.
Dates
- Publication Date
- 20260505
- Application Date
- 20241031
Claims (20)
- 1 . A system comprising: at least one processor; at least one hardware processor; and at least one non-transitory memory storing instructions, which, when executed by the at least one hardware processor, cause the system to: access a request to provision one or more databases for a software application; generate a set of database recommendations based on the request, wherein each database recommendation in the set of database recommendations includes a specific type of database having at least one of an amount of memory, an amount of storage, or a processing capacity; receive a selection of a database to be provisioned from a set of generated database recommendations based on at least one parameter, wherein the at least one parameter relates to a type of data to be hosted by the database, software code for the software application, or an amount of data to be hosted by the database; automatically determine approval for provisioning of the selected database to deploy the software application based on a privilege or a resource consumption quota of a user that submits the request; generate the selected database using software code retrieved from a repository; manage the generated database based on a stored representation of the generated database in an inventory of databases; compile a report, using a monitoring agent, to notify the user about at least two of: system utilization, capacity trending, errors, or availability of the generated database; receive monitoring data for the generated database; and use a machine learning model to predict, based on the monitoring data, a need to adjust at least one resource for the generated database, the at least one resource including a storage capacity, a processing capacity, or both, wherein the machine learning model is trained on historical monitoring data including historical performance data and usage data for multiple generated databases, wherein the historical performance data includes buffer cache statistics or wait event statistics, and wherein the usage data includes one or more of: a threshold amount of reads from new or unknown users, a threshold amount of reads during a predetermined time period, or database access from an out-of-range IP address.
- 2 . The system of claim 1 , further caused to: input the monitoring data into the machine learning model; and use the machine learning model to predict an adverse event associated with the generated database based on the monitoring data, wherein the adverse event relates to an outage or failure of at least one feature or function of the generated database.
- 3 . The system of claim 2 , further caused to: use the machine learning model to perform at least one action to prevent or remedy the adverse event, wherein the at least one action includes adjusting a resource for the generated database, disabling at least a portion of the generated database, preventing access by a user to the generated database, or generating a notification of the adverse event.
- 4 . The system of claim 1 , further caused to: cause an adjustment of the at least one resource based on the prediction.
- 5 . The system of claim 1 , wherein the database provisioning request includes a general database type, software code for the software application to be deployed on the database, and at least one parameter of the one or more databases.
- 6 . The system of claim 1 , further caused to: receive approval to decommission the generated database; and store a backup of the generated database in accordance with a predetermined backup policy.
- 7 . The system of claim 6 , further caused to: decommission the generated database, wherein decommissioning the generated database includes at least one of the following: take the generated database offline, release resources associated with the generated database, or reclaim resources associated with the generated database; and update the inventory of databases to indicate the decommissioning of the database.
- 8 . A non-transitory, computer-readable storage medium comprising instructions recorded thereon, wherein the instructions when executed by at least one data processor of a system, cause the system to: access a request to provision one or more databases for a software application; generate a set of database recommendations based on the request, wherein each database recommendation in the set of database recommendations includes a specific type of database having at least one of an amount of memory, an amount of storage, or a processing capacity; receive a selection of a database to be provisioned from a set of generated database recommendations based on at least one parameter, wherein the at least one parameter relates to a type of data to be hosted by the database, software code for the software application, or an amount of data to be hosted by the database; automatically determine approval for provisioning of the selected database to deploy the software application based on a privilege or a resource consumption quota of a user that submits the request; generate the selected database using software code retrieved from a repository; manage the generated database based on a stored representation of the generated database in an inventory of databases; compile a report, using a monitoring agent, to notify the user about at least two of: system utilization, capacity trending, errors, or availability of the generated database; receive monitoring data for the generated database; and use a machine learning model to predict, based on the monitoring data, a need to adjust at least one resource for the generated database, the at least one resource including a storage capacity, a processing capacity, or both, wherein the machine learning model is trained on historical monitoring data including historical performance data and usage data for multiple generated databases, wherein the historical performance data includes buffer cache statistics or wait event statistics, and wherein the usage data includes one or more of: a threshold amount of reads from new or unknown users, a threshold amount of reads during a predetermined time period, or database access from an out-of-range IP address.
- 9 . The non-transitory, computer-readable storage medium of claim 8 , further causes the system to: input the monitoring data into the machine learning model; and use the machine learning model to predict an adverse event associated with the generated database based on the monitoring data, wherein the adverse event relates to an outage or failure of at least one feature or function of the generated database.
- 10 . The non-transitory, computer-readable storage medium of claim 9 , further causes the system to: apply the trained machine learning model to perform at least one action to prevent or remedy the adverse event, wherein the at least one action includes adjusting a resource for the generated database, disabling at least a portion of the generated database, preventing access by a user to the generated database, or generating a notification of the adverse event.
- 11 . The non-transitory, computer-readable storage medium of claim 8 , further causes the system to: cause an adjustment of the at least one resource based on the prediction.
- 12 . The non-transitory, computer-readable storage medium of claim 8 , further causes the system to: receive approval to decommission the generated database; store a backup of the generated database in accordance with a predetermined backup policy.
- 13 . The non-transitory, computer-readable storage medium of claim 12 , further causes the system to: decommission the generated database, wherein decommissioning the generated database includes at least one of the following: take the generated database offline, release resources associated with the generated database, or reclaim resources associated with the generated database; and update the inventory of databases to indicate the decommissioning of the database.
- 14 . A method comprising: accessing a request to provision one or more databases for a software application; generating a set of database recommendations based on the request, wherein each database recommendation in the set of database recommendations includes a specific type of database having at least one of an amount of memory, an amount of storage, or a processing capacity; receiving a selection of a database to be provisioned from a set of generated database recommendations based on at least one parameter, wherein the at least one parameter relates to a type of data to be hosted by the database, software code for the software application, or an amount of data to be hosted by the database; automatically determine approval for provisioning of the selected database to deploy the software application based on a privilege or a resource consumption quota of a user that submits the request; generating the selected database using software code retrieved from a repository, managing the generated database based on a stored representation of the generated database in an inventory of databases; compiling a report, using a monitoring agent, to notify the user about at least two of: system utilization, capacity trending, errors, or availability of the generated database; receiving monitoring data for the generated database; and using a machine learning model to predict, based on the monitoring data, a need to adjust at least one resource for the generated database, the at least one resource including a storage capacity, a processing capacity, or both, wherein the machine learning model is trained on historical monitoring data including historical performance data and usage data for multiple generated databases, wherein the historical performance data includes buffer cache statistics or wait event statistics, and wherein the usage data includes one or more of: a threshold amount of reads from new or unknown users, a threshold amount of reads during a predetermined time period, or database access from an out-of-range IP address.
- 15 . The method of claim 14 , further comprising: inputting the monitoring data into the machine learning model; using the machine learning model to predict an adverse event associated with the generated database based on the monitoring data, wherein the adverse event relates to an outage or failure of at least one feature or function of the generated database.
- 16 . The method of claim 15 , further comprising: applying the trained machine learning model to perform at least one action to prevent or remedy the adverse event, wherein the at least one action includes adjusting a resource for the generated database, disabling at least a portion of the generated database, preventing access by a user to the generated database, or generating a notification of the adverse event.
- 17 . The method of claim 14 further comprising: causing an adjustment of the at least one resource based on the prediction.
- 18 . The method of claim 14 , wherein the database provisioning request includes a general database type, software code for the software application to be deployed on the database, and at least one parameter of the one or more databases.
- 19 . The method of claim 14 , further caused to: receiving approval to decommission the generated database; and storing a backup of the generated database in accordance with a predetermined backup policy.
- 20 . The method of claim 19 , further caused to: decommissioning the generated database, wherein decommissioning the generated database includes at least one of the following: take the generated database offline, release resources associated with the generated database, or reclaim resources associated with the generated database; and updating the inventory of databases to indicate the decommissioning of the database.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. patent application Ser. No. 17/740,160, filed on May 9, 2022, entitled DATABASE PROVISIONING AND MANAGEMENT SYSTEMS AND METHODS, which is hereby incorporated by reference in its entirety. BACKGROUND Databases are an integral part of many software application ecosystems. Organizations use and manage different kinds of databases for various purposes and applications. Database management can include selecting and building databases, provisioning databases, maintaining database inventories, monitoring databases and assessing database performance, modifying or updating databases, and so forth. Databases can be hosted on-premises and/or on the cloud. BRIEF DESCRIPTION OF THE DRAWINGS Detailed descriptions of implementations of the present invention will be described and explained through the use of the accompanying drawings. FIG. 1 is a block diagram that illustrates a wireless communications system that can implement aspects of the present technology in some implementations. FIG. 2 is a block diagram that illustrates components of a database provisioning and management system in some implementations. FIG. 3 is a flow diagram that illustrates a process to deploy and manage a database using a database provisioning and management system in some implementations. FIG. 4 is a flow diagram that illustrates a process to train a machine learning model to predict events based on monitoring data for a database in some implementations. FIG. 5 is a block diagram that illustrates an example of a computing system in which at least some operations described herein can be implemented. FIG. 6 is a flow diagram that illustrates a process for generating database recommendations using a database provisioning and management system in some implementations. The technologies described herein will become more apparent to those skilled in the art from studying the Detailed Description in conjunction with the drawings. Embodiments or implementations describing aspects of the invention are illustrated by way of example, and the same references can indicate similar elements. While the drawings depict various implementations for the purpose of illustration, those skilled in the art will recognize that alternative implementations can be employed without departing from the principles of the present technologies. Accordingly, while specific implementations are shown in the drawings, the technology is amenable to various modifications. DETAILED DESCRIPTION Organizations, such as telecommunication service providers, manage and use large numbers of databases, such as thousands or tens of thousands of databases, via which a wide variety of data can be hosted. For example, a telecommunication service provider can use databases to maintain data related to subscribers, payments, employees, transactions or orders, business activities, telecommunication services (e.g., call detail records), telecommunication networks, network or web traffic, supply chains, products, stores, devices, telecommunication infrastructure, and so forth. Database administrators and/or developers select from different kinds of available databases based on various factors related to specific database deployments and/or data that will be stored in and retrieved from the databases. These factors can include, for example, data type or format (e.g., structured or unstructured), amount of data, projected growth, archiving criteria, schema design (e.g., fixed or flexible), ingestion rate, frequency of data retrieval, expected duration of storage, format of data, data security, database performance, ease of monitoring and maintenance, cost, ease of database provisioning or creation, ease of data search and retrieval, application use case scenarios, scalability (horizontal or vertical), backup and recovery needs, and so forth. The general types of databases from which a telecommunication service provider may select include centralized databases, cloud-based databases, commercial databases, open-source databases, distributed databases, end-user databases, graph databases, NoSQL databases, relational and/or object-oriented databases, personal databases, in-memory databases, document-based databases, time series databases, wide column databases, key value databases, search databases, cache databases, and so forth. The foregoing examples of database types are non-limiting and may not be mutually exclusive—e.g., a database can be both commercial and cloud-based, or both relational and open-source, etc. Telecommunication service providers face difficult technical challenges related to provisioning, creating, and/or managing databases. Existing systems for provisioning and managing databases typically offer limited features, and such systems are often specific to a vendor or a specific type of database. For example, Apache Cassandra database system is installed, managed, and monitored using DataStax OpsCenter plat