A machine learning model to predict the probability of operator success in PAAS cloud environments
By converting the code into vector format and combining it with a machine learning model to predict the success probability of operators in the PaaS cloud environment, the problem of the inability to predict the success of operator deployment in existing technologies is solved, and deployment efficiency and reliability are improved.
Patent Information
- Application Number
- JP2023529108
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-11-17
- Filing Date
- 2021-11-03
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2041-11-03
AI Technical Summary
Existing technologies cannot effectively predict the success of deploying operators in PaaS cloud environments, leading to possible IT management risks and business interruptions.
A machine learning model is used to predict the success probability of an operator in a new environment by converting the code into a vector format and combining it with the configuration information of the PaaS cloud environment.
Improves the success rate of operator deployment, reduces the risk of business interruption, optimizes deployment time, and enhances deployment reliability and scalability through proactive analysis.
Smart Images

Figure 0007742204000003 
Figure 0007742204000004 
Figure 0007742204000005
Abstract
Description
[Technical Field]
[0001] The subject disclosure relates to machine learning models, and more specifically, to utilizing a Platform Cloud as a Service to predict the probability of success of an operator in an environment. [Background technology]
[0002] A machine learning algorithm is the process of adapting a model to data with a specific objective. The algorithm typically transforms data from input to output and specifies how to learn the appropriate mapping from input and output values. A machine learning algorithm is therefore the combination of a model and a selected algorithm type. The model is further refined with a mapping function specification and parameter data, while continuing to learn and update the algorithm to meet the overall objective. Machine learning has attracted increasing attention from commercial organizations and researchers. Existing approaches focus on tackling the difficult computational problem of effectively determining the appropriate combination of analytical algorithms. Recent advances in software engineering have led to the deployment of Software as a Service (also known as SaaS), which offers the significant advantage of allowing organizations to focus on their core business instead of expanding resources in computer infrastructure and maintenance. The use of operators has led to the adoption of Platform as a Service (PaaS) cloud services, such as Kubernetes (K8s) and OpenShift. (登録商標) Operators (e.g., one or more constructs defined in a programming language that generally behave like functions but are syntactically or semantically distinct) are used to automate operations in PaaS. They are often used as separate entities, e.g., namespaces in K8s or OpenShift (登録商標)Projects in Kubernetes can have different configurations that can have various effects on the functionality of operators. An operator being blocked or failing to perform an operation can have a significant impact on the information technology (IT) management lifecycle in Kubernetes (K8s). As a prerequisite, operators typically rely on permissions to create resources. However, having permissions alone is often insufficient to successfully perform the operation.
[0003] Conventional methods and systems for deploying applications on one or more cloud systems based on requirements and available resources often utilize snapshots to reduce risk in the virtualization configuration migration process, however, conventional techniques do not adequately consider the risks associated with an operator's deployment in a new environment. Summary of the Invention [Means for solving the problem]
[0004] The following presents a summary to provide a basic understanding of one or more embodiments of the present invention. This summary is not intended to identify key or critical elements or to delineate the scope of particular embodiments or the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description that is presented later. One or more embodiments described herein may be a system, computer-implemented method, apparatus, or computer program product, or combination thereof, relating to a machine learning model, and more specifically, a system, computer-implemented method, apparatus, or computer program product, or combination thereof, that utilizes a Platform as a Service (PaaS) cloud to predict the probability of operator success in an environment.
[0005] This embodiment focuses on the deployment of operators in PaaS cloud environments and uses a methodology to predict the success of operator deployments by utilizing machine learning. Finally, the code to vector methodology allows for converting code into a vector format that can be incorporated into machine learning applications. This embodiment converts code into a vector representation and uses the code to vector methodology to predict the success of operators in environments with configurations written as code.
[0006] According to one embodiment, a system includes a processor that executes components stored in memory, a machine learning model that predicts the likelihood of successful deployment of an operator in an environment having a Platform as a Service (PaaS) cloud namespace, and a deployment component that receives a first operator and a first namespace and uses the machine learning model to predict successful deployment of the first operator in the first environment.
[0007] In an optional aspect, a training component trains the machine learning model using capabilities of the first operator and a set of configurations adapted to the first namespace.
[0008] In any aspect, the training component uses as input different configurations that are adapted to the first namespace in which the first operator can be deployed.
[0009] In an optional aspect, the training component uses the output of a deployment of the first operator to another namespace in the PaaS cloud.
[0010] According to one embodiment, the method includes predicting a likelihood of successful deployment of an operator in an environment having a Platform as a Service (PaaS) cloud namespace using a machine learning model, and receiving a first operator and a first namespace using a deployment component, and predicting a success of deployment of the first operator in the first environment using the machine learning model.
[0011] In any aspect, the method further includes training the machine learning model using a set of configurations adapted to the capabilities of the first operator and the first namespace. [Brief explanation of the drawings]
[0012] [Figure 1] FIG. 1 illustrates a block diagram of an exemplary system implementation for implementing a system for predicting an operator's likelihood of success in a new environment in a Platform as a Service cloud. [Figure 2] FIG. 2 illustrates an exemplary flow chart diagram of an integrated system for predicting an operator's likelihood of success in a new environment in a Platform as a Service cloud. [Figure 3] FIG. 3 illustrates an exemplary architecture for predicting operator success based on environmental similarity analysis. [Figure 4] FIG. 4 illustrates an exemplary block-level diagram of active learning feedback based on training data. [Figure 5] FIG. 5 illustrates an example of global network policies applied to namespaces in an environment. [Figure 6] FIG. 6 illustrates an exemplary flow chart diagram of the neural network architecture in which the code is used to generate the numeric vectors. [Figure 7] FIG. 7 illustrates a block diagram of an exemplary non-limiting operating environment in which one or more embodiments described herein can be facilitated. [Figure 8] FIG. 8 illustrates a block diagram of an exemplary, non-limiting cloud computing environment in accordance with one or more embodiments of the subject disclosure. [Figure 9] FIG. 9 illustrates an exemplary, non-limiting block diagram of abstraction model layers in accordance with one or more embodiments of the subject disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0013] The following detailed description is merely exemplary and is not intended to limit the embodiments and / or the application or uses of the embodiments. Furthermore, there is no intention to be bound by any express or implied information presented in the preceding Summary section or in the Detailed Description section. One or more embodiments are now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a more thorough understanding of one or more embodiments. It will be apparent, however, that in various instances, one or more embodiments can be practiced without these specific details.
[0014] The present embodiments relate to the deployment of operators in a PaaS cloud environment and use a methodology for predicting the success of the operator deployment by utilizing machine learning. The code-to-vector methodology facilitates converting code into a vector format that can be incorporated into machine learning applications. The present embodiments utilize the code-to-vector methodology to convert code into a vector representation and predict the success of operators in an environment with configurations written as code. While the exemplary embodiments are described herein within the Kubernetes (K8s) framework, it should be understood that the innovations described and claimed herein apply to any suitable container-orchestration system that facilitates both declarative configuration and automation for automating the deployment, scaling, and management of computer applications, e.g., for containerized workloads and services.
[0015] The subject disclosure generally relates to embodiments that predict the likelihood of success of an operator in a new environment of a Platform as a Service (PaaS) cloud, including receiving as input the capabilities of the operator and receiving different configurations that fit into given namespaces into which the operator can be deployed. Outputs of the operator's deployments into other namespaces are received, and a machine learning model is trained to predict the likelihood of successful deployment of the operator in the new PaaS environment given the inputs and outputs.
[0016] In today's digital society, data plays a critical role in many applications. One or more actions performed by a user often leave a digital footprint through satellite imagery, biomedical applications, smartphones, social media, and other applications. Rapid developments in technology have led to exponential growth in machine-generated data. Big data represents a new era of data exploration and utilization, consisting of data that is large in volume, diverse, and fast in velocity. Recent advances in software engineering have led to the deployment of software as a service (known as SaaS), which offers the significant advantage of allowing companies to focus on their core business instead of dedicating resources to computer infrastructure and maintenance. For example, a "big data" software as a service might receive a set of data instances as input, perform calculations for data clustering, and return the data partitioning as output to the client. Big data can be used in many scenarios for data mining, such as tracking user-generated content in social media, analyzing web page images from the web and census data, obtaining required data from Internet of Things (IoT) sensors, behavioral tracking from smartphones, and network traffic data for cybersecurity. Machine learning has become an essential element in the world of big data.
[0017] Machine learning has been attracting increasing attention from commercial organizations and researchers. Existing approaches primarily focus on tackling the difficult computational problem of effectively determining the appropriate combination of analytical algorithms, such as feature engineering, selection, and hyperparameter tuning. Emerging techniques enhance the concept of machine learning algorithms, from pattern recognition to performing specific tasks. Machine learning is a significant iterative aspect of the digital world as models are exposed to new data. As a result, machine learning can adapt independently. Therefore, the concept of learning from past computations and making reliable decisions is gaining new momentum. Recent research has shown that many machine learning systems can automatically apply complex mathematical calculations to big data faster than conventional systems. Some examples of machine learning applications are self-driving cars, online recommendation services, and fraud detection. Most industries that deal with large amounts of data have recognized the importance of machine learning techniques.
[0018] As data becomes more voluminous and diverse, the importance of powerful and inexpensive computing also increases. Through machine learning systems, data can be automatically generated to generate models, analyze complex data, and provide accurate analytical results. This ultimately helps many organizations identify profitable opportunities while avoiding unknown risks. In particular, operators can provide a machine learning algorithm with a known dataset containing the required inputs and outputs, and the algorithm can determine how to arrive at those inputs and outputs. The use of operators is facilitated by Platform as a Service (PaaS) clouds, such as K8s and OpenShift. (登録商標)Operators are becoming increasingly popular in PaaS and OpenShift. Operators are used for automated operations in PaaS, such as deploying applications on-demand, where operators are used to facilitate the installation of applications in PaaS clouds. Other use cases for operators include compliance checks to ensure a cluster has a valid compliant configuration, creating and restoring backups of application state, handling application code upgrades with associated changes, such as database schema or additional configuration settings, exposing services to applications that do not support cloud environment APIs, such as Kubernetes (K8s), to detect and simulate failures in a cluster and test resilience. Operators are used for automated operations in PaaS and OpenShift. (登録商標) The code gained popularity as a result of tools such as Kubernetes (K8s) The technical name for isolated entities in cloud environments (such as Kubernetes) is known as a namespace, and isolated entities do not have visibility into each other.
[0019] Separated entities, e.g. namespaces in Kubernetes (K8s) and OpenShift (登録商標)Projects in can have their own configurations that can affect the functionality of operators. Applications deployed within a namespace typically follow the network policy defined for that namespace. For example, if a namespace has a network policy that dictates that incoming requests from the Internet cannot be accepted because ingress is prohibited, applications deployed in that namespace cannot receive requests from the Internet. However, the operator can access requests within the namespace based on the network policy. Other examples of areas in which an operator can access requests include network policies, role-based access control (RBAC), admission controllers, and resource quota limits. A blocked or inoperable operator can have a significant impact on the lifecycle of IT management in a cloud environment, such as Kubernetes. Therefore, understanding the risks associated with an operator's performance can facilitate mitigating the risks associated with its deployment. As a prerequisite, an operator needs permission to create resources, such as pods (the smallest execution unit in Kubernetes). Pods are ephemeral in nature, and if a Pod (or the node it runs on) fails, Kubernetes can automatically create a new replica of that Pod and continue operation. However, having permissions is not enough, as Pods can be blocked by admission controllers, Pod traffic can be blocked by network policies, Pods can be held back for scheduling, and Pods can be blocked from accessing K8s by role-based access control (RBAC). Based on the configuration in the namespace, operators can succeed or fail in their tasked jobs.It is desirable to know whether a deployment will succeed or fail before deployment. Understanding operational risks can help operations engineers make informed decisions regarding execution. Operators are similar to intelligent agents that can automate actions. Therefore, embodiments herein propose an efficient system for predicting the probability of an operator's success in a new environment in a Platform as a Service (PaaS) cloud using a machine learning model. The machine learning model is trained given inputs and outputs. An operator is input with a description of the operation along with other artifacts, such as an operator controller custom resource definition (CRD). A CRD is an object that extends the Kubernetes API into a cluster. Namespaces are associated with different configurations in which operators can be deployed. The extracted output makes it easy to determine whether the deployment of an operator in a particular namespace will be successful.
[0020] 1 illustrates a block diagram of an exemplary, non-limiting system 100 that can access and process data using the illustrated configurable computing components in accordance with one or more embodiments described herein. System 100 can include memory 104, a processor 106, a training component 107, a trained machine learning model 108, a deployment component 110, or a bus 112, or any combination thereof.
[0021] It should be understood that the implementations of the subject disclosure illustrated in the various figures disclosed herein are for illustrative purposes only, and that the architecture of such implementations is not limited to the systems, devices, or components, or combinations thereof, illustrated herein. For example, in some embodiments, system 100 can further comprise various computer or computing-based elements, or combinations thereof, described herein with reference to operating environment 700 and FIG. 7. In some embodiments, such computer or computing-based elements, or combinations thereof, can be used in connection with the implementation of one or more of the operations implemented in the systems, devices, components, or computers, or combinations thereof, shown and described in connection with FIG. 1 or other figures disclosed herein.
[0022] Memory 104 may store one or more computer- and / or machine-readable, writable, or executable or writable and executable components or instructions, or combinations thereof, that, when executed by processor 106 (e.g., a classical processor, a quantum processor, etc.), can facilitate the performance of operations defined by one or more executable components or one or more instructions, or combinations thereof. For example, memory 104 may store computer- and / or machine-readable, writable, and / or executable components and / or instructions that, when executed by processor 106, can facilitate the performance of various functions described herein with respect to trained machine learning model 108, deployment component 110, or another component associated with system 100, or combinations thereof, as described herein with or without reference to various drawing figures of the subject disclosure.
[0023] Memory 104 may comprise volatile memory (e.g., random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), etc.) or non-volatile memory (e.g., read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), etc.), or a combination thereof, which may use one or more memory architectures. Further examples of memory 104 are described below with reference to system memory 716 and FIG. 7. Such examples of memory 104 may be used to implement any embodiment of the subject disclosure.
[0024] Processor 106 may comprise one or more types of processors or electronic circuits (e.g., classical processors, quantum processors, etc.) or combinations thereof that can implement one or more computer and / or machine-readable, writable, or executable, or writable and executable components or instructions, or combinations thereof, that can be stored on memory 104. For example, processor 106 may perform various operations that can be specified by such computer and / or machine-readable, writable, or executable, or writable and executable components or instructions, or combinations thereof, including, but not limited to, logic, control, input / output (I / O), arithmetic, etc. In some embodiments, processor 106 may comprise one or more central processing units, multi-core processors, microprocessors, dual microprocessors, microcontrollers, system-on-a-chip (SOC), array processors, vector processors, quantum processors, or another type of processor, or combinations thereof. Further examples of processor 106 are described below with reference to processing unit 714 and FIG. 7. Such examples of processor 106 can be used to implement any embodiment of the subject disclosure.
[0025] The system 100, memory 104, processor 106, trained machine learning model 108, deployment component 110, or other components of the system 102 described herein, or combinations thereof, may be communicatively, electrically, operatively, or optically coupled to one another, or combinations thereof, via a bus 112 to perform the functions of the system 100, or any components coupled thereto. The bus 112 may comprise one or more memory buses, memory controllers, peripheral buses, external buses, local buses, quantum buses, or other types of buses or combinations thereof that may use various bus architectures. Further examples of the bus 112 are described below with reference to the system bus 718 and FIG. 7. Such examples of the bus 112 may be used to implement any embodiment of the subject disclosure.
[0026] System 100 may comprise any type of component, machine, device, facility, appliance, or equipment, or combination thereof, that comprises a processor and / or that is capable of effective or operable communication with a wired or wireless network, or combination thereof. All such implementations are contemplated. For example, system 100 may comprise a server device, a computing device, a general-purpose computer, a special-purpose computer, a quantum computing device (e.g., a quantum computer), a tablet computing device, a handheld device, a server-class computing device and / or database, a laptop computer, a notebook computer, a desktop computer, a mobile phone, a smartphone, a consumer appliance and / or device, an industrial and / or commercial device, a digital assistant, a multimedia Internet-enabled phone, a multimedia player, or another type of device, or combination thereof.
[0027] System 100 can be communicatively connected (e.g., communicatively, electrically, operatively, optically, etc.) to one or more external systems, sources, or devices or combinations thereof (e.g., classical or quantum computing devices or combinations thereof, communication devices, etc.) using wires or cables or combinations thereof. For example, system 100 can be communicatively connected (e.g., communicatively, electrically, operatively, optically, etc.) to one or more external systems, sources, or devices or combinations thereof (e.g., classical or quantum computing devices or combinations thereof, communication devices, etc.) using data cables, including but not limited to High-Definition Multimedia Interface (HDMI) cables, recommended standard (RS) 232 cables, Ethernet cables, or other data cables or combinations thereof.
[0028] In some embodiments, system 100 can be connected (e.g., communicatively, electrically, operatively, optically, etc.) to one or more external systems, sources, or devices (e.g., classical or quantum computing devices or combinations thereof, communication devices, etc.) via a network. For example, such a network can comprise a wired network or a wireless network, or a combination thereof, including, but not limited to, a cellular network, a wide area network (WAN) (e.g., the Internet), or a local area network (LAN). The system 100 may be, for example, a wireless fidelity (Wi-Fi), global system for mobile communications (GSM), universal mobile telecommunications system (UMTS), worldwide interoperability for microwave access (WiMAX), enhanced general packet radio service (enhanced GPRS), third generation partnership project (3GPP), long term evolution (LTE), third generation partnership project 2 (3GPP2), ultra mobile broadband (UMB), high speed packet access (HSPA), Zigbee, etc. (登録商標) and other 802.XX wireless technologies and / or legacy wireless technologies, BLUETOOTH (登録商標), Session Initiation Protocol (SIP), ZIGBEE (登録商標) , RF4CE protocol, WirelessHART protocol, IPv6 over Low power Wireless Area Networks (6LoWPAN), Z-Wave, ANT, ultra-wideband (UWB) standard protocol, or other proprietary and non-proprietary communication protocols or combinations thereof, or with one or more external systems, sources, or devices, or combinations thereof, such as computing devices. Thus, in some embodiments, vulnerability and attack association system 102 comprises hardware (e.g., a central processing unit (CPU), a transceiver, a decoder, quantum hardware, a quantum processor, etc.), software (e.g., a set of threads, a set of processes, running software, a quantum pulse schedule, a quantum circuit, a quantum gate, etc.), or a combination of hardware and software that can facilitate communication of information between vulnerability and attack association system 102 and an external system, source, or device (e.g., a computing device, a communication device, etc.), or combinations thereof.
[0029] In some embodiments, the training component 107 can train and develop trained machine learning models 108 that can use one or more machine-learning (ML) models or artificial intelligence (AI) models or combinations thereof that are based on or can perform natural language processing (NLP) using a similarity learning process or a similarity searching process or a combination thereof to define the mappings described above. For example, such one or more ML or AI models or combinations thereof may include, but are not limited to, a pre-trained language representation model (e.g., transformer-based) with fine-tuning (e.g., a bidirectional encoder representations from transformers (BERT) model), a long short-term memory (LSTM) model, a bidirectional LSTM model with a conditional random field (CRF) layer (abbreviated as BiLSTM-CRF), a shallow or deep neural network model, a convolutional neural network (CNN) model, a decision tree classifier, and / or any supervised or unsupervised ML or AI model or combinations thereof that can perform natural language processing (NLP) using a similarity learning process or a similarity search process or a combination thereof to define the above-mentioned mappings.
[0030] System 100 can use machine learning to facilitate the process of evaluating and identifying large amounts of various forms of data and training neural networks or other types of models. System 100 can also generate predictive recommendations at a contextual individual level according to one or more embodiments described herein. Aspects of the systems (e.g., system 100, etc.), devices, or processes described in this disclosure can comprise one or more machine-executable components that are embodied within one or more machines, e.g., one or more computer-readable media associated with the one or more machines. Such one or more components, when executed by one or more machines, e.g., one or more computers, one or more computing devices, one or more virtual machines, etc., can cause the one or more machines to perform the operations described herein. Repetitive descriptions of similar elements used in one or more embodiments described herein are omitted for brevity.
[0031] The system 100 utilizes a platform-as-a-service cloud 116 to facilitate a training component 107, a trained machine learning model 108, to predict the likelihood of success of an operator in a new environment. Benefits can be achieved including, but not limited to, receiving as input a new operator and namespace to be deployed and using the trained machine learning model 108 to predict the likelihood of successful deployment of the operator in a new environment.
[0032] System 100 can facilitate the process of evaluating and identifying large amounts of data in various forms. System 100 can also generate predictive recommendations at an individual level, resulting in context according to one or more embodiments described herein. Aspects of the systems (e.g., system 100, etc.), devices, or processes described in this disclosure can comprise one or more machine-executable components embodied in one or more machines, e.g., one or more components embodied in one or more computer-readable media associated with one or more machines. Such one or more components, when executed by one or more machines, e.g., one or more computers, one or more computing devices, one or more virtual machines, etc., can cause the one or more machines to perform the operations described herein. Repetitive descriptions of similar elements used in one or more embodiments described herein are omitted for the sake of brevity.
[0033] System 100 may optionally include a server device (not shown), one or more networks, and one or more appliances (not shown). System 100 may also include or be otherwise associated with a Platform as a Service (PaaS) cloud 116 that includes a trained machine learning model 108 that uses operators and namespaces as inputs. A deployment component 110 deploys the inputs based on configuration and training data and generates output 114 that is used to predict the likelihood of successful deployment of the operator in a particular environment associated with the namespace.
[0034] In one implementation, the trained machine learning model 108 predicts the likelihood of success of an operator in an environment having a namespace in a Platform as a Service (PaaS) cloud 116. The deployment component 110 receives a first operator and a first namespace to be deployed to a first environment in the PaaS cloud 116 and uses the trained machine learning model 108 to predict the success of the deployment of the first operator in the first environment. Given the input and the output, the trained machine learning model 108 predicts the likelihood of deployment success and uses various configurations that are adapted to the namespace in which the operator is intended to be deployed. The deployment output 114 may be success or failure. The training component 107 can learn from the output data 114 and from past history of operator deployments in differently configured environments to train the trained machine learning model 108 to predict the success of the intended operator deployment using machine learning.
[0035] System 100 can be any suitable computing device or set of computing devices capable of being communicatively coupled to a device, non-limiting examples of which include, but are not limited to, a server computer, a computer, a mobile computer, a mainframe computer, an automated test system, a network storage device, a communication device, a web server device, a network switching device, a network routing device, a gateway device, a network hub device, a network bridge device, a control system, or any other suitable computing device. The device can be any device capable of communicating information with system 100 or any other suitable device capable of using information provided by system 100, or a combination thereof. It should be understood that system 100, components, models, or devices may include communication components (not shown) that enable communication between systems, components, models, devices, etc. over one or more networks.
[0036] The various components of system 100 can be connected, for example, directly or through one or more networks. Such networks can include wired and wireless networks, including, but not limited to, cellular networks, wide area networks (WANs) (e.g., the Internet), or local area networks (LANs), non-limiting examples of which include cellular, WANs, Wi-Fi, Wi-Max, WLANs, wireless communications, microwave communications, satellite communications, optical communications, acoustic communications, or any other suitable communications technology. Moreover, the systems or devices or combinations thereof described above are described with respect to the interactions between several components. It will be understood that such systems and components can include those components or subcomponents identified herein, some of the identified components or subcomponents, or additional components or combinations thereof. Subcomponents may also be implemented as components communicatively connected to other components rather than being contained within a parent component. Furthermore, one or more components or one or more subcomponents or combinations thereof can be connected into a single component that provides a collective functionality. The component may also interact with one or more other components not specifically described herein for the sake of brevity, but known to those skilled in the art.
[0037] The subject computer processing systems, methods, apparatus, or computer program products, or combinations thereof, can be used to solve operator deployment-related problems that arise through advances in technology, computer networks, the Internet, and the like.
[0038] In today's digital world, the use of operators has become increasingly popular in Platform as a Service (PaaS) cloud platforms. In particular, if an operator is blocked or fails to operate, it can have a significant impact on the IT management lifecycle in Kubernetes. Therefore, understanding the risks of operators can facilitate mitigating the risks associated with their deployment. This embodiment can determine the probability of successful deployment of an operator. The probability of successful deployment of an operator in a PaaS environment can be determined by a training component and an operation component. In the training component, a namespace is selected for deploying the operator. The input operator includes a description (a description of how to back up and restore the application state) and other artifacts, such as the operator's custom resource definition (CRD) (e.g., where the operator should be deployed, a .yaml file describing how the operator can operate, and code (logic)). Various configurations, such as network policies, RBAC, admission controllers, and resource limits, are applied to the specified namespace in which the operator can be deployed. Upon deployment, an output is received to determine whether the deployment of the operator is successful. During ongoing operations, new operators and namespaces to be deployed are received as input, and the likelihood of successful deployment of the operator can be predicted using the trained machine learning model 108. This efficient methodology facilitates mitigating the risk of disrupting business operations and costs, reduces the time to change for operator deployments by proactively analyzing success, and enables efficient scaling of operator deployments to other environments through increased confidence in whether the deployment of the operator in a particular environment has a successful probability (e.g., within an acceptable range).
[0039] FIG. 2 illustrates an example flowchart 200 of an integrated system for predicting the likelihood of success of an operator in a new environment within a Platform-as-a-Service cloud. In step 202, a request is submitted (e.g., by a software reliability engineer (SRE)) for an operator to be deployed within a namespace to perform some specific action. An Operator Success Prediction Service (OSPS) can communicate, for example, with the Kubernetes (K8s) API to obtain information about network policies and other artifacts and determine the likelihood of success of the operator deployment. In these embodiments, in step 204, the OSPS waits for a request, for example, a request from an engineer (SRE). In step 206, the OSPS communicates with the new environment, for example, through the K8s application programming interface (API), to obtain information about the network policies associated with the new environment. In step 208, the OSPS can generate a vector representation of descriptions of operators and code portions collected from the Kubernetes (K8s) API and generate inputs. In step 210, given the input, the OSPS runs a machine learning model and predicts the probability of successful deployment. For example, the machine learning model can output a probability between 0 and 1 regarding the potential success rate of the operator's deployment in the new environment. In step 212, the risk level is classified as high / medium / low / none based on the probability determined by the OSPS. If the policy for each risk level is low or none, the OSPS deploys the operator in a Kubernetes (K8s) cluster 220 in step 218 and monitors its operation. A Kubernetes (K8s) cluster is a set of node machines for running containerized applications. If the policy for each risk level in step 212 is high or medium, the OSPS notifies the SRE in step 216 by identifying which parts may cause errors and requests the SRE to address and resubmit.The process returns to step 202, where the SRE can submit a request for the operator to be deployed to the namespace to perform a particular action, regardless of the risk level (success or failure), and at step 214, the OSPS can add such experience to a knowledge base to be used in connection with active learning. The process repeats from 204, where the OSPS awaits another request from the SRE. Based on the classification of high / medium / low / none risk level, the policy defines the action to be deployed or returned to the SRE. Through such continuous (or iterative) operation, the past history of the operator's deployment in various configured environments is utilized, and machine learning can be used to predict the success of the operator's deployment. Active learning can be performed continuously to train and develop machine learning models based on new deployments of operators in various environments.
[0040] FIG. 3 illustrates an example architecture 300 that facilitates predicting operator success based on an environmental similarity analysis. Architecture 300 can facilitate determining the likelihood that an operator can execute properly in a new environment, for example, in a different cloud or a different namespace within the same cluster. As depicted in high-level overview architecture 300, an operator is deployed within namespace 302. OSPS 304 is a success prediction service used to determine whether the deployment will or will not succeed and provide a success rate, e.g., between 0 and 1. In this example, the probability of success is 0.8. There may be several policies 306 for managing the process of deploying the operator if the probability success criterion is greater than X (where X is a predetermined threshold) and not deploying the operator if it is less than the threshold X. In this case, if 0.8 is classified as high, the operator is deployed; if it fails, it can be reported. Other artifacts include OpenShift (登録商標)and other sources to determine the configuration of namespaces, code, or other related features. This data is processed in a Kubernetes cluster 308. A Kubernetes cluster can include a component representing the control plane and a set of machines (called nodes). It can also include containerized applications, deployment processes, and node processes. The cluster can schedule and run containers across a group of machines in the PaaS cloud. Data 310 of operators deployed in different environments or configurations and their success versus failure can be entered into an operator knowledge base 316. The operator knowledge base 316 can store operator custom resource definition CRDs / code 312 and environment configurations 314, such as network policies, role-based access control (RBAC), admission controllers, and resource limits. Training data 318 collected over time can be used for active learning 320, in which new operators are deployed into known namespaces. Supervised machine learning models are also known as similarity learning models that can look at two different environment configurations and provide a similarity score between the baseline environment where operators are known from prior knowledge to perform safely and properly on the new environment intended for deployment.
[0041] An embodiment of a machine learning model can be trained to predict the success of an operator. There are many algorithms that can be used to write a model, such as SVM, decision trees, and neural networks. According to an embodiment, the trained machine learning model uses similarity learning to predict the success of the deployment of a first operator in an environment. Similarity learning is part of a supervised machine learning process that classifies two objects to measure their relationship. In similarity learning, data is converted into vectors, the vectors are compared using a distance metric, and the distance can be classified as similar or dissimilar. In these embodiments, an operator is deployed to an environment, and the similarity learning is used to predict the success of deployment in a new environment. An example of an exemplary algorithm is described below.
[0042] [Table 1] <Translation> Input: previously submitted operator o i (descriptors, etc.), and their associated controller crd r and code c i , and deployed namespace features (f i1 ,f i2 ,…,f in ), and output y i (success / failure) i About each (o i ,r i ,c i ,f i1 ,f i2 ,…,f in ,y i ) Using word embeddings (language modeling), i Descriptors are stored as a vector v i1 Mapping to Use code embeddings (language modeling) to map c i vector v i2 Mapping to Using code embedding (language modeling), i1 ,f i2 ,…,f in ) into vector v i3 Mapping to v i1 , v i2 , v i3 Store the (concatenated) as a feature vector in list X y i Store in Y Train a machine learning model (SVM, decision tree, neural network) using X as input and Y as output
[0043] Here, the descriptor and its associated code c i and an operator o with i Namespaces are a way of organizing multiple features f i1 ,f i2 ,...,f in The output y i can facilitate the operator in determining the success or failure of a deployment. In similarity learning, if the model encounters any security issues, a flag is generated. Using predetermined parameters, the machine learning model can classify internal data and other security violations associated with the deployment. The machine learning model can learn from various actions taken for certain types of incidents to facilitate predicting fraudulent activities and identifying security risks. i There are various language modeling techniques that can be used to map the numeric vector v, such as word embedding, where a description of the word is provided instead of a code, and i1 The expression is generated. i Given a vector v i2 Similarly, the code embedding can be mapped to namespace features and the vector v i3Any suitable machine learning model that uses X as input generates the output Y. A vector representation of the training data can be generated to facilitate computation.
[0044] In similarity learning analytics, multiple environments are used to provide operational functionality information. In this case, data from previous environments is taken and modeled, and the outputs are analyzed and compared to predict the likelihood of success of the operator in a new environment. Configurations can be set in a namespace and deployed with the operator. The output of the operator deployment can be used in other namespaces.
[0045] FIG. 4 illustrates an example block-level diagram of active learning feedback based on training data for training a machine learning model 108 (FIG. 1). Active learning is an algorithm in a machine learning model in which new data points are labeled with a desired output. In this process 400, based on a query, the process 400 prioritizes data to be labeled to have a meaningful impact on the training of the supervised model. In active learning, a large amount of data can be randomly sampled from an underlying distribution, and this large data set can be used to train the model 108 to make predictions, such as the success of an operator's deployment in a PaaS environment. A query can be made against the unlabeled set 404, which the model 108 can then use to predict success or failure in step 406 and use user feedback to validate the prediction. Similarly, a labeled set of operators 402 can be in a namespace that is trained based on training data. In step 406, the model 108 predicts success or failure based on the trained data and can obtain feedback from the user to validate the prediction. The training data can be updated with namespaces and labels as desired. Non-limiting example code is shown below:
[0046] [Table 2] <Translation> Input: A labeled set D l : operator, namespace {m i} Train a classifier f1 based on the training data D1 If true, m i Success / Failure (r i ) to predict Using feedback from SMEs, i} is correct m as needed i and its labels are used to create training data (D l ) D l Retrain the classifier f1 using
[0047] This model 108 can be used whenever a new output is learned for a new operator or an old operator with a new namespace. Policies can be defined based on probability, such that if the probability of success is greater than a threshold, it is considered low risk, and actions are predefined based on risk factors. For example, a policy can be defined such that low-risk actions can be deployed and high-risk actions cannot be deployed. Furthermore, utility-based analysis can be implemented so that the benefits of prediction accuracy are weighed against the costs of inaccurate predictions. The system can allow predefined actions for each risk prediction. If the risk is low (threshold), automation can deploy the operator with higher confidence. On the other hand, if the risk is high (threshold), the system can investigate the potential risk and resolve it, or notify a CI / CD expert to ensure the identified issue is unlikely to cause the operator to fail. These actions can be learned from data or active learning, or can be adjusted over time as more data is collected.
[0048] FIG. 5 illustrates an exemplary global network policy applied to a namespace in an environment. As shown at 500, an email (EML) file can contain information about where network policies will be applied to a namespace. As written in code, this is global network policy 502, which can be applied to a namespace where node ports are denied. Also, at line 506, there is a specific action 504 that can be coded where ports are denied, for example, port 30000:32767 on TCP protocol 508. Similarly, another set of actions 510 can be listed where a port range 512 of 30000:32767 on UDP protocol 514 is denied. In this case, applications deployed within the namespace would not be accepted from these ports, and any operators operating within these ports would fail.
[0049] FIG. 6 illustrates an example flowchart of a neural network architecture in which code is used to generate a numerical vector. In a machine learning model, code (logic) is represented numerically. As shown, code is taken as input, and a numerical vector representation is generated to be used in machine learning. This neural model represents code fragments as a continuous distributed vector, also known as code embedding. The process begins by decomposing the code 602 into a collection of paths, which are fully connected layers, learning how to aggregate a set of context vectors and learning the atomic representation of the paths. The code is used and processed in a neural network 604, which generates a vector as output 608. This is a numerical representation of the originally provided code. This vector representation can be used in a machine learning model 610 to generate a predicted value 612. Similarly, operator codes can be extracted and converted to vectors in the same way. The code snippet or combined context vectors are represented as a single fixed-length code vector that can be used to predict the success of the operator's deployment. Comparing previous techniques with the same data set results in a relative improvement in providing accurate predictions based on large-scale cross-project data. Code vectors trained on this data set can predict method names from files not observed during training, and the model learns method name vectors that capture semantic similarities, combinations, and similarities. The code-to-vector methodology provides a methodology for converting code into vectors to be used in machine learning applications. Thus, the novelty lies in converting code into a vector representation and then utilizing the vector representation to predict the success rate of operators in new environments with different constructs written as code.
[0050] This embodiment increases the likelihood of successful deployment of the operator, and in the event of failure, the score can serve as a troubleshooting guide, starting with the missing configuration file. Furthermore, an indication of missing security measures in the new environment is desirable to ensure the security of other workloads around the operator in the same cluster. A test environment or a past production environment provides an example environment in which the operator functioned as intended. This information can be used to perform a similarity analysis to compare the new environment with the existing environment. Supervised machine learning, or similarity learning, can be used to predict the success of an operator in a new environment. If the operator is predicted to likely not function properly in the new environment, the similarity analysis can provide hints on where to start the troubleshooting process. There are many common methods for similarity learning and metric distance learning. In regression similarity learning, pairs of objects are given with a similarity measure, and the regression loss is minimized. Classification similarity learning determines whether a new pair of objects is similar. In ranking similarity learning, a relative ranking of similarities is provided. For example, the similarity ranking can start with the most dissimilar object and work down to the one or more least dissimilar objects. Such ordering can save troubleshooting time and effort, and this ranking framework facilitates scaling in relatively large applications. Moreover, if a new environment has many differences compared to a baseline environment and lacks security controls found in the baseline environment, similarity analysis can be used to flag that the new environment may also be insecure.
[0051] To provide a context for various aspects of the disclosed subject matter, Figure 7 and the following discussion are intended to provide a general description of a suitable environment in which various aspects of the disclosed subject matter can be implemented. Figure 7 illustrates a block diagram of an exemplary, non-limiting operating environment in which one or more embodiments described herein can be facilitated. Repetitive descriptions of similar elements used in other embodiments described herein are omitted for the sake of brevity.
[0052] 7, a suitable operating environment 700 for implementing various aspects of the disclosure may also include a computer 712. The computer 712 may include a processing unit 714, a system memory 716, and a system bus 718. The system bus 718 connects system components, including but not limited to the system memory 716, to the processing unit 714. The processing unit 714 may be any of a variety of available processors. Dual microprocessors and other multi-processor architectures may also be used as the processing unit 714. The system bus 718 may be any of several types of one or more bus structures, such as a memory bus or memory controller, a peripheral bus or external bus, or a local bus, or a combination thereof, using any of a variety of available bus architectures, including, but not limited to, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), CardBus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Firewire (IEEE 1394), and Small Computer Systems Interface (SCSI).
[0053] The system memory 716 may also include volatile memory 720 and nonvolatile memory 722. A basic input / output system (BIOS), containing the basic routines for transferring information between elements within the computer 712, such as during start-up, is stored in the nonvolatile memory 722. The computer 712 may also include removable and non-removable, volatile and non-volatile computer storage media. FIG. 7 illustrates, for example, disk storage 724. The disk storage 724 may also include devices such as, but not limited to, a magnetic disk drive, a floppy disk drive, a tape drive, a Jaz drive, a Zip drive, an LS-100 drive, a flash memory card, or a memory stick. The disk storage 724 may also include a storage medium separately or in combination with other storage media. A removable or non-removable interface, such as interface 726, is typically used to facilitate connection of the disk storage 724 to the system bus 718. FIG. 7 also illustrates software that acts as an intermediary between users and the basic computer resources described in the preferred operating environment 700. Such software may also include, for example, operating system 728. Operating system 728, which may be stored on disk storage 724, acts to control and allocate resources of the computer 712.
[0054] System applications 730 take advantage of the management of resources by operating system 728 through program modules 732 and program data 734, such as those stored either in system memory 716 or on disk storage 724. It should be appreciated that the present disclosure may be implemented with various operating systems or combinations of operating systems. A user enters commands or information into computer 712 through one or more input devices 736. Input devices 736 include, but are not limited to, pointing devices such as a mouse, trackball, stylus, touchpad, keyboard, microphone, joystick, gamepad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, webcam, etc. These and other input devices connect to processing unit 714 through system bus 718 via one or more interface ports 738. The one or more interface ports 738 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). The one or more output devices 740 use some of the same types of ports as the one or more input devices 736. Thus, for example, a USB port can be used to provide input to the computer 712 and to output information from the computer 712 to the output device(s) 740. Output adapter 742 is provided to illustrate that there are some output devices 740, e.g., monitors, speakers, and printers, among others, that require special adapters. Output adapters 742 include, by way of example and not limitation, video cards and sound cards that provide a means of connection between the output device(s) 740 and the system bus 718. It should be noted that other devices or systems of devices, or combinations thereof, such as one or more remote computers 744, may provide both input and output capabilities.
[0055] The computer 712 can operate in a networked environment using logical connections to one or more remote computers, such as one or more remote computers 744. The one or more remote computers 744 can be a computer, server, router, network PC, workstation, microprocessor-based appliance, peer device, or other common network node, and typically include many or all of the elements described above relative to the computer 712. For purposes of simplicity, only a memory storage device 746 is illustrated, along with the one or more remote computers 744. The one or more remote computers 744 are logically connected to the computer 712 through a network interface 748 and are then physically connected via communication connection(s) 750. The network interface 748 can include a wired or wireless communication network, such as a cellular network, or a combination thereof, e.g., a local area network (LAN), a wide area network (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring, and the like. WAN technologies include, but are not limited to, point-to-point links, circuit-switched networks such as Integrated Services Digital Networks (ISDN) and variations thereof, packet-switched networks, and Digital Subscriber Lines (DSL). The one or more communications connections 750 refer to the hardware / software used to connect the network interface 748 to the system bus 718. Communications connection 750 is illustratively shown internal to computer 712 for clarity, but could also be external to computer 712.The hardware / software for connecting to the network interface 748 can also include, by way of example only, internal and external technologies such as modems, including regular telephone-grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
[0056] Referring now to FIG. 8 , an exemplary cloud computing environment 850 is illustrated. As shown, the cloud computing environment 850 includes one or more cloud computing nodes 810 with which local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or mobile phone 854A, a desktop computer 854B, a laptop computer 854C, or an automobile computer system 854N, or combinations thereof, may communicate. Although not shown in FIG. 8 , the cloud computing node 810 may further include a quantum platform (e.g., a quantum computer, quantum hardware, quantum software, etc.) with which the local computing devices used by the cloud consumers may communicate. The nodes 810 may communicate with each other. They may be physically or virtually grouped in one or more networks (not shown), such as a private cloud, community cloud, public cloud, or hybrid cloud, or combinations thereof, as described herein. This enables the cloud computing environment 850 to provide infrastructure, platform, or software, or combinations thereof, as a service without the cloud consumer having to maintain resources on their local computing devices. It is understood that the types of computing devices 854A-854N shown are intended to be illustrative only, and that computing node 810 and cloud computing environment 850 can communicate with any type of computerized device (e.g., using a web browser) via any type of network or network-addressable connection or combination thereof.
[0057] Referring now to Figure 9, one set of functional abstraction layers provided by cloud computing environment 850 (Figure 8) is shown. It should be understood that the components, layers, and functions shown in Figure 9 are intended to be merely exemplary, and that embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0058] Hardware and software layer 960 includes hardware and software components. Examples of hardware components include mainframe 961, RISC (Reduced Instruction Set Computer) architecture-based servers 962, servers 963, blade servers 964, storage devices 965, and networks and networking components 966. In some embodiments, software components include network application server software 967, quantum platform routing software 968, or quantum software (not shown in FIG. 9), or a combination thereof.
[0059] The virtualization layer 970 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 971; virtual storage 972; virtual networks 973, including, for example, virtual private networks; virtual applications and operating systems 974; and virtual clients 975.
[0060] In one example, management layer 980 may provide several functions, as described below. Resource provisioning 981 provides dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 982 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks and protection for data and other resources. User portal 983 provides access to the cloud computing environment for consumers and system administrators. Service level management 984 provides allocation and management of cloud computing resources to ensure required service levels are met. Service level agreement (SLA) planning and fulfillment 985 provides pre-provisioning and procurement of cloud computing resources where future requirements are predicted according to SLAs.
[0061] The workload layer 990 provides examples of functions for which the cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation 991; software development and lifecycle management 992; virtual classroom instruction delivery 993; data analytics processing 994; transaction processing 995; and quantum state preparation software 996.
[0062] The present invention may be a system, method, or computer program product, or combination thereof, at any level of technical detail that may be integrated. The computer program product may include one or more computer-readable storage media having computer-readable program instructions for causing a processor to perform aspects of the present invention. The computer-readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction-execution device. The computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette; (登録商標) , hard disk, random access memory (RAM), read only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded device such as punch cards or raised structures in grooves in which instructions are recorded, or any suitable combination thereof. As used herein, computer-readable storage medium should not be interpreted as a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted over electrical wires.
[0063] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing device / processing device, or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may be comprised of copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing device / processing device receives the computer-readable program instructions from the network and transmits the computer-readable program instructions to the respective computing device / processing device for storage in a computer-readable storage medium. The computer-readable program instructions for carrying out operations of the present invention may be either assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, such as object-oriented programming languages, e.g., Smalltalk, C++, etc., or conventional procedural programming languages (e.g., the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, partially on a user's computer as a stand-alone software package, partially on a user's computer and partially on a remote computer, or entirely on a remote computer or server.In the latter scenario, the remote computer may be connected to the user's computer via any type of network, e.g., a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., over the Internet using an Internet Service Provider). In some embodiments, electronic circuits, e.g., programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuit to perform aspects of the invention.
[0064] Aspects of the present invention are described herein with reference to flowchart illustrations or block diagrams, or combinations thereof, of methods, apparatus (systems), and computer program products or computer programs according to embodiments of the invention. It will be understood that each block of the flowchart illustrations or block diagrams, or combinations thereof, and combinations of blocks in the flowchart illustrations or block diagrams, or combinations thereof, can be implemented by computer-readable program instructions. These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to generate a machine-readable program, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for implementing the function(s) / act(s) specified in one or more blocks of the flowchart illustrations or block diagrams, or combinations thereof. These computer-readable program instructions can also be stored on a computer-readable storage medium that can instruct a computer, programmable data processing apparatus, or other device, or combinations thereof, to function in a particular manner, and the computer-readable storage medium having instructions stored therein comprises an article of manufacture containing instructions that implement one or more specified functional / act aspects of the flowchart illustrations or block diagrams, or combinations thereof. The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device such that the instructions, which execute on the computer, other programmable data processing apparatus, or other device, implement the functions / acts identified in one or more blocks of the flowchart diagrams or block diagrams, or a combination thereof, to cause the computer, other programmable apparatus, or other device to perform a series of operational steps to generate a computer-implemented process.
[0065] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products or computer programs according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, which includes one or more executable instructions for implementing one or more specified logical functions. In some alternative implementations, the functions shown in the blocks may occur out of the order shown in the figures. For example, two blocks shown in succession may actually be accomplished as a single step performed simultaneously, substantially simultaneously, partially, or fully in a time-overlapping manner, depending on the functionality involved, or the blocks may be performed in the reverse order. It should be noted that each block of the block diagrams or flowchart diagrams or combinations thereof, and combinations of multiple blocks in the block diagrams or flowchart diagrams or combinations thereof, may be implemented by a special-purpose hardware-based system that performs the specified functions or operations, or may execute a combination of special-purpose hardware and computer instructions.
[0066] While the subject matter has been described above in the general context of computer-executable instructions for a computer program product executed on one or more computers, those skilled in the art will recognize that the present disclosure can also be implemented or practiced in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks and / or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the computer-implemented methods of the present invention can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, minicomputer devices, mainframe computers, and other computer system configurations described above, including computers, handheld computing devices (e.g., PDAs, phones), microprocessor-based or programmable consumer or industrial electronics, etc. The illustrated aspects can also be practiced in distributed computing environments where tasks are performed by remote processing devices linked through a communications network. However, some, if not all, aspects of the present disclosure can be practiced on stand-alone computers. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
[0067] As used herein, the terms “component,” “system,” “platform,” “interface,” etc. may refer to, comprise, or be a combination of computer-related entities or entities relating to operating machines having one or more specific functionalities. The entities disclosed herein may be hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, or a computer, or any combination thereof. By way of example, both an application running on a server and the server may be a component. One or more components may reside within a process or thread of execution, or any combination thereof, and a component may be localized on one computer, distributed between two or more computers, or any combination thereof. In another example, each component may execute from various computer-readable media having various data structures stored thereon. The components may communicate through local or remote processes or a combination thereof, for example, according to signals comprising one or more data packets (e.g., data from one component interacting with another component in a local system, a distributed system, or signals to other systems over a network, e.g., the Internet). As another example, a component may be a device having specific functionality provided by mechanical parts operated by electrical or electronic circuits operated by software or firmware applications executed by a processor. In such cases, the processor may be internal or external to the device and may execute at least a portion of the software or firmware applications.As yet another example, a component can be a device that provides a particular function through electronic components without the use of mechanical components, where the electronic components can include a processor or other means for executing software or firmware that provides at least a portion of the functionality of multiple electronic components. In one aspect, a component can emulate an electronic component via a virtual machine, such as a virtual machine in a cloud computing system.
[0068] Additionally, the word "or" is intended to mean an inclusive "or," not an exclusive "or." That is, unless otherwise specified or clear from the context, "X uses A or B" is intended to mean any of the natural inclusive permutations. That is, if X uses A, if X uses B, or if X uses both A and B, then "X uses A or B" is satisfied in each of the foregoing cases. Furthermore, as used in this specification and the accompanying drawings, the articles "a" and "an" should be construed generally to mean "one or more" unless otherwise specified or unless the context clearly directs to the singular form. As used herein, the words "example" and / or "exemplary" are utilized to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. Additionally, any aspect or design described herein as "example" and / or "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs, and is not meant to exclude equivalent exemplary structures and techniques known to those skilled in the art.
[0069] As used herein, the term "processor" can refer to virtually any computing unit or device, including, but not limited to, a single-core processor, a single processor with software multithreading execution capabilities, a multi-core processor, a multi-core processor with software multithreading execution capabilities, a multi-core processor with hardware multithreading technology, a parallel platform, and a parallel platform with distributed shared memory. Additionally, a processor can refer to an integrated circuit, an application-specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Furthermore, a processor can utilize nanoscale architectures, such as, but not limited to, molecular and quantum dot-based transistors, switches, and gates, to optimize space usage or enhance the performance of user equipment. A processor can also be implemented as a combination of multiple computing processing units. In this disclosure, for example, the terms "store," "storage," "data store," "data storage," "database," and substantially any other information storage component related to the operation and functionality of the component are used to refer to a "memory component," an entity embodied within a "memory," or a component that comprises a memory.It is understood that the memory or memory components or combinations thereof described herein can be either volatile memory or non-volatile memory, or can comprise both volatile and non-volatile memory. By way of example and not limitation, non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, or non-volatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM)). Volatile memory can include, for example, RAM, which can act as external cache memory. By way of example, and not limitation, RAM is available in many forms, including synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), Rambus dynamic RAM (RDRAM), etc. Additionally, the disclosed memory components of systems or computer-implemented methods herein are intended to comprise, without being limited to, these and any other suitable types of memory.
[0070] What has been described above includes merely exemplary systems and computer-implemented methods. Of course, for purposes of describing this disclosure, it is not possible to describe every conceivable combination of components or computer-implemented methods, but one of ordinary skill in the art will recognize that many further combinations and permutations of the present disclosure are possible. Furthermore, to the extent that the terms "comprise," "have," "possess," and the like are used in the description, claims, abstract, and drawings, such terms are intended to be as inclusive as the word "comprising," as the word "comprising" is interpreted when used as a transitional term in the claims.
[0071] The description of various embodiments of the present invention has been presented for illustrative purposes and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used in this specification have been selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
Claims
1. 1. A system comprising: a processor that executes computer-executable components stored in memory; 1. A machine learning model that predicts the likelihood of an operator's deployment success in an environment having a Platform as a Service (PaaS) cloud namespace, comprising: The operator is one or more constructs defined within a programming language that behave like a function but are syntactically or semantically distinct from a function; The namespace is the space in which the operator can be deployed, the operator and the namespace are used as inputs to the machine learning model, which predicts the likelihood of successful deployment of the operator in the PaaS cloud; the machine learning model; and a deployment component that receives a first operator and a first namespace and uses the machine learning model to predict successful deployment of the first operator in a first environment. The system comprises:
2. 10. The system of claim 1, further comprising a training component that trains the machine learning model using capabilities of the first operator and a set of configurations that are adapted to the first namespace.
3. The system of claim 2 , wherein the training component uses as input a set of configurations that are adapted to the first namespace in which the first operator is to be deployed.
4. The system of claim 2 , wherein the training component uses outputs associated with deployments of the first operator to other namespaces in the PaaS cloud.
5. 10. The system of claim 1, wherein the trained machine learning model learns from a past history of operator deployments in configured environments to predict the success of a second operator deployment.
6. 10. The system of claim 1, wherein the trained machine learning model uses similarity learning to predict successful deployment of the first operator in the first environment.
7. The system of claim 6 , wherein the similarity learning is utilized to provide instructions regarding troubleshooting deployments of the first operator in the first environment.
8. The system of claim 6 , wherein the similarity learning is used to generate flags for security issues associated with the first environment.
9. The system of claim 1 , wherein information about multiple environments is utilized to provide operational function information for performing similarity learning analysis between the first environment and a second environment.
10. 1. A computer-implemented method using a processor and a memory, comprising: The processor predicts, using a machine learning model, a likelihood of successful deployment of an operator in an environment having a Platform as a Service (PaaS) cloud namespace; The operator is one or more constructs defined within a programming language that behave like a function but are syntactically or semantically distinct from a function; The namespace is the space in which the operator can be deployed, the operator and the namespace are used as inputs to the machine learning model, which predicts the likelihood of successful deployment of the operator in the PaaS cloud; said predicting; and the processor receiving a first operator and a first namespace using a deployment component, and predicting successful deployment of the first operator in a first environment using the machine learning model. The method comprising:
11. 11. The method of claim 10, wherein the processor further comprises a training component training the machine learning model using functions of the first operator and a set of configurations adapted to the first namespace.
12. 12. The computer-implemented method of claim 11, further comprising the processor using as input a configuration that is adapted to the first namespace in which the first operator is to be deployed.
13. 12. The computer-implemented method of claim 11, further comprising the processor using an output associated with a deployment of the first operator to another namespace in the PaaS cloud.
14. 11. The computer-implemented method of claim 10, further comprising the processor learning from a past history of operator deployments in the configured environment to predict the success of the deployment of the second operator.
15. 11. The computer-implemented method of claim 10, wherein the processor further comprises using similarity learning to predict a successful deployment of the first operator in the first environment.
16. 16. The computer-implemented method of claim 15, further comprising the processor utilizing the similarity learning to provide instructions regarding a troubleshooting deployment of the first operator deployment in the first environment.
17. 17. The computer-implemented method of claim 16, further comprising the processor utilizing the similarity learning to generate a flag for a security issue associated with the first environment.
18. 11. The method of claim 10, further comprising the processor utilizing information about a plurality of environments to provide operational function information for performing similarity learning analysis between the first environment and a second environment.
19. A computer program comprising: Predicting the likelihood of success of an operator's deployment in an environment having a Platform as a Service (PaaS) cloud namespace using a machine learning model, The operator is one or more constructs defined within a programming language that behave like a function but are syntactically or semantically distinct from a function; The namespace is the space in which the operator can be deployed, the operator and the namespace are used as inputs to the machine learning model, which predicts the likelihood of successful deployment of the operator in the PaaS cloud; said predicting; and receiving a first operator and a first namespace using a deployment component; and predicting successful deployment of the first operator in a first environment using the machine learning model; The computer program causes a processor to perform each step of the method including:
20. 20. The computer program product of claim 19, further comprising: causing the processor to train the machine learning model using capabilities of the first operator and a set of configurations adapted to the first namespace.
Citation Information
Patent Citations
Predicting software build errors
JP2015526820A
Dynamic cloud deployment and calibration tool
US20190163547A1