Application deployment within a computing environment
By deploying multiple function components in parallel and considering dependencies, the method enhances cloud computing environment deployment efficiency, reducing deployment times through parallel execution.
Patent Information
- Application Number
- JP2023541568
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-02-23
- Filing Date
- 2022-01-18
- Publication Date
- 2025-11-05
- Estimated Expiration
- 2042-01-18
AI Technical Summary
Current cloud computing environments face inefficiencies in application deployment due to the use of a single operator and customer resource, lack of support for multiple threads, and sequential processing of roles, leading to slow deployment times.
A processor requests the deployment of multiple function components in parallel within the cloud computing environment, considering dependencies between functions, and removes deployed components after verification, thereby enabling parallel execution and reducing deployment time.
This approach significantly reduces deployment time by allowing parallel execution of function components, addressing the inefficiencies in existing sequential deployment methods.
Smart Images

Figure 0007764112000003 
Figure 0007764112000004 
Figure 0007764112000005
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to the field of cloud computing technologies, and more particularly to application deployment within a cloud computing environment. [Background technology]
[0002] Cloud computing environments, such as Kubernetes or other cloud computing environments, are now widely used. An increasing number of applications may need to be deployed within the cloud computing environment. Furthermore, the information technology (IT) architecture used by these applications may also be moved to modern cloud computing environments.
[0003] The drawbacks of the current solution are that a single operator and single customer resource is used, multiple threads are not supported, and roles are processed sequentially, resulting in slow deployment times. Summary of the Invention
[0004] According to some embodiments of the present invention, a computer-implemented method, a computer program product, and a computer system are provided, in which a processor, in response to detecting a new customer resource (CR) file, requests the computing environment to deploy a plurality of function deployment components within the computing environment, where the CR file indicates information about a plurality of functions of an application, the plurality of function deployment components requests the computing environment to deploy the plurality of function components within the computing environment, the plurality of function components executing the plurality of functions of the application, the processor determines that each of the plurality of function components has been deployed within the computing environment, and, in response to determining that each of the plurality of function components has been deployed within the computing environment, requests the computing environment to remove each of the plurality of deployed function deployment components. Such an approach has the advantages of parallel execution and reduced deployment time.
[0005] Optionally, embodiments of the present invention include a technique in which the computing environment is a cloud computing environment, which has the advantage of enabling parallel execution and reduced deployment times within the cloud computing environment.
[0006] The above and other objects, features, and advantages of the present disclosure will become more apparent through a more detailed description of several embodiments of the present disclosure in the accompanying drawings, wherein like reference numerals generally refer to like components in the embodiments of the present disclosure. The figures are for clarity in facilitating those skilled in the art to understand the present disclosure together with the detailed description, and therefore various features of the figures are not drawn to scale. The figures are discussed immediately below. [Brief explanation of the drawings]
[0007] [Figure 1] FIG. 1 illustrates a cloud computing node according to some embodiments of the present disclosure. [Figure 2]FIG. 1 illustrates a cloud computing environment in accordance with some embodiments of the present disclosure. [Figure 3] FIG. 1 illustrates abstraction model layers according to some embodiments of the present disclosure. [Figure 4] FIG. 1 is a schematic diagram of a cloud computing environment for deploying applications, according to some embodiments of the present disclosure. [Figure 5] 1 illustrates an exemplary application to be deployed within a cloud computing environment and corresponding dependencies between functions contained within the application, according to some embodiments of the present disclosure. [Figure 6] FIG. 2 illustrates an example customer resource (CR) file for an example application, according to some embodiments of the present disclosure. [Figure 7] FIG. 1 is a schematic diagram of a cloud computing environment for deploying applications, according to some embodiments of the present disclosure. [Figure 8] 1 is an abstract schematic diagram of a cloud computing environment for deploying applications, according to some embodiments of the present disclosure. [Figure 9] FIG. 1 illustrates a flowchart of an approach for application deployment in a cloud computing environment, according to some embodiments of the present disclosure. [Figure 10] FIG. 10 illustrates a flowchart of a method as part of the method shown in FIG. 9, according to some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0008] Next, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0009] The following description, which refers to the accompanying drawings, is provided to facilitate a comprehensive understanding of exemplary embodiments of the invention defined by the claims and their equivalents. The following description includes various specific details to facilitate understanding, but these should be considered exemplary only. Therefore, those skilled in the art will understand that various modifications and changes can be made to the embodiments described herein without departing from the scope of the present invention. Furthermore, descriptions of well-known functions and structures may be omitted for clarity and conciseness.
[0010] Reference will be made below to various embodiments of the present invention. However, it should be understood that the present invention is not limited to the specific described embodiments. Rather, any combination of the following features and elements, whether related to various embodiments or not, is contemplated for implementing and practicing the present invention. Furthermore, embodiments may achieve advantages over other possible solutions and / or the prior art, but whether or not a particular advantage is achieved by a given embodiment is not limiting. Accordingly, the following aspects, features, embodiments, and advantages are exemplary only and are not considered elements or limitations of the appended claims unless expressly recited in the appended claims. Similarly, references to "the present invention" are not to be construed as a generalization of any inventive subject matter disclosed herein, and are not to be considered elements or limitations of the appended claims unless expressly recited in the appended claims.
[0011] The terms and phrases used in the following description and claims are not limited to their bibliographical meanings, but are merely used to enable a clear and consistent understanding of the present invention. Therefore, it should be apparent to those skilled in the art that the following description of exemplary embodiments of the present invention is provided for illustrative purposes only, and is not intended to limit the invention as defined by the appended claims and their equivalents.
[0012] The singular forms "a," "an," and "the" should be understood to include plural referents unless the context clearly dictates otherwise. Thus, for example, a reference to "a component surface" includes reference to one or more of such surfaces unless the context clearly dictates otherwise.
[0013] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the present disclosure may be implemented in conjunction with any other type of computing environment now known or later developed.
[0014] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with the service provider. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0015] The features are as follows:
[0016] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capabilities, such as server time and network storage, automatically as needed, without the need for human interaction with the provider of the service.
[0017] Wide network access: Functionality is available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, and PDAs).
[0018] Resource Pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with various physical and virtual resources dynamically allocated and reallocated according to demand. Consumers generally have no control or knowledge of the exact location of the resources provided, but there is some location independence in that they may be able to specify location at a higher level of abstraction (e.g., country, state, or data center).
[0019] Rapid elasticity: Capabilities can be rapidly and elastically, in some cases automatically, provisioned and rapidly scaled out, and rapidly released and rapidly scaled in. To the consumer, the capabilities available for provisioning often appear unlimited, and any amount can be purchased at any time.
[0020] Measured service: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services utilized.
[0021] The service model is as follows:
[0022] Software as a Service (SaaS): The functionality offered to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, with the possible exception of limited user-specific application configuration settings.
[0023] Platform as a Service (PaaS): The capability offered to the consumer is the deployment of consumer-created or acquired applications, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the applications deployed and, in some cases, the application-hosting environment configuration.
[0024] Infrastructure as a Service (IaaS): The capability offered to consumers is to provision processing, storage, network, and other basic computing resources onto which they can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).
[0025] The deployment model is as follows:
[0026] Private Cloud: The cloud infrastructure is operated solely for the organization. The cloud infrastructure can be managed by the organization or a third party and can exist on-premise or off-premise.
[0027] Community Cloud: Cloud infrastructure is shared by several organizations to support a specific community with shared interests (e.g., mission, security requirements, policy, and compliance considerations). The cloud infrastructure may be managed by the organization or a third party and may exist on-premises or off-premises.
[0028] Public cloud: Cloud infrastructure is made available to the general public or large industry groups and is owned by an organization that sells cloud services.
[0029] Hybrid Cloud: A cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are tied together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0030] A cloud computing environment is a service oriented environment that focuses on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0031] 1, a schematic diagram of an example cloud computing node is shown. Cloud computing node 10 is merely one example of a suitable cloud computing node and is not intended to suggest any limitation as to the scope of use or functionality of the disclosed embodiments described herein. Nevertheless, cloud computing node 10 may implement and / or perform any of the functions described above.
[0032] Cloud computing node 10 may include a computer system / server 12 or a portable electronic device, such as a communications device, that is operable with numerous other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, that may be suitable for use with computer system / server 12 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.
[0033] Computer system / server 12 may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer system / server 12 may also be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.
[0034] 1, computer system / server 12 within cloud computing node 10 is shown in the form of a general-purpose computing device. Components of computer system / server 12 may include, but are not limited to, one or more processors or processing units 16, system memory 28, and a bus 18 that couples various system components, including system memory 28, to processor 16.
[0035] Bus 18 represents any one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus, using any of a variety of bus architectures. By way of example and not limitation, such architectures include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnects (PCI) bus.
[0036] Computer system / server 12 typically includes a variety of computer system-readable media, which may be any available media that can be accessed by computer system / server 12 and includes both volatile and nonvolatile media, removable and non-removable media.
[0037] System memory 28 may include computer-system-readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache memory 32. Computer system / server 12 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 34 may be provided for reading from and writing to non-removable, non-volatile magnetic media (not shown, typically referred to as a "hard drive"). Although not shown, a magnetic disk drive may be provided for reading from and writing to removable, non-volatile magnetic disks (e.g., "floppy disks"), and an optical disk drive may be provided for reading from and writing to removable, non-volatile optical disks, such as CD-ROMs, DVD-ROMs, or other optical media. In such cases, each may be connected to bus 18 by one or more data media interfaces. As further illustrated and described below, memory 28 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of embodiments of the present disclosure.
[0038] By way of example and not limitation, a program / utility 40 having a set (at least one) of program modules 42, as well as an operating system, one or more application programs, other program modules, and program data, may be stored in memory 28. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networking environment. The program modules 42 generally implement the functions and / or methods of embodiments of the present disclosure as described herein.
[0039] Computer system / server 12 may also communicate with one or more external devices 14, such as a keyboard, pointing device, display 24, one or more devices that allow a user to interact with computer system / server 12, or any device that allows computer system / server 12 to communicate with one or more other computing devices (e.g., a network card, modem, etc.), or a combination thereof. Such communication may occur via input / output (I / O) interface 22. Additionally, computer system / server 12 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), or a public network (e.g., the Internet), or a combination thereof, via network adapter 20. As shown, network adapter 20 communicates with other components of computer system / server 12 via bus 18. It should be understood that other hardware and / or software components, not shown, may be used with computer system / server 12. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, data archive storage systems, and the like.
[0040] Referring now to FIG. 2, an exemplary cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or combinations thereof, may communicate. The nodes 10 may communicate with each other. The nodes 10 may be physically or virtually grouped into one or more networks, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud, or combinations thereof, as previously described (not shown). This enables the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service without the cloud consumer having to maintain resources therefor on their local computing devices. It should be understood that the types of computing devices 54A-54N shown in FIG. 2 are exemplary only, and that computing node 10 and cloud computing environment 50 may communicate with any type of computerized device over any type of network and / or network-addressable connection (e.g., using a web browser).
[0041] Referring now to Figure 3, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 2) is shown. It should be understood that the components, layers, and functions shown in Figure 3 are merely exemplary, and embodiments of the present disclosure are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0042] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (reduced instruction set computer) architecture-based servers 62, servers 63, blade servers 64, storage devices 65, and network and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0043] The virtualization layer 70 provides an abstraction layer at which the following examples of virtual entities can be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.
[0044] As an example, management layer 80 may provide the functions described below. Resource provisioning 81 enables dynamic procurement of computing and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing 82 enables cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of such resources. As an example, such resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 enables cloud computing resource allocation and management to ensure required service levels are met. Service level agreement (SLA) planning and fulfillment 85 enables proactive coordination and procurement of cloud computing resources in anticipation of future needs in accordance with SLAs.
[0045] The workload tier 90 provides examples of functions for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this tier include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and application deployment 96.
[0046] An application can contain multiple functions (also called components or subsystems). Currently, an increasing number of service providers want to deploy their applications in cloud computing environments so that users can access the applications deployed on the cloud computing environment. Typically, application functions are deployed in containers in the cloud computing environment, and the deployed functions can be accessed as basic services, so they are also called services or microservices. A set of containers (including log collectors, Git file fetchers, etc.) that share the same namespace, network, UNIX Time Sharing (UTS), and PID (Process Identifier) can be included in a POD, which is the smallest schedulable atomic unit used in some cloud computing environments, such as Kubernetes. However, some cloud computing environments may use containers as the smallest schedulable atomic unit.
[0047] FIG. 4 shows a schematic diagram of an exemplary cloud computing environment 400 for deploying applications. Here, a container refers to a container instance within the cloud computing environment 400, and a container instance is an instance of an image. While there are many components within a cloud computing environment, this description only considers components relevant to this disclosure and ignores other components unrelated to this disclosure. Assume that an application deployed within the cloud computing environment 400 may include N functions, where N is an integer greater than 1. Referring to FIG. 4 , the cloud computing environment 400 may include a manager 401, which is a management platform for the cloud computing environment 400 and may include at least a controller 4011 and a repository 4012. To deploy an application, an administrator of the cloud computing environment 400 may deploy an application deployment POD 402, which includes an application deployment container 4021, using any method supported by the cloud computing environment 400, such as an Operator in Kubernetes (a method for packaging, deploying, and managing Kubernetes-native applications). In other words, the application deployment container is deployed at the same time that the application deployment POD 402 is deployed, and the application deployment container 4021 is contained within the application deployment POD 402. Hereinafter, when we say that a POD containing a container is deployed, we mean that the container is deployed at the same time that the POD is deployed, and that the container is contained within the POD.
[0048] A customer resource (CR) file may be stored in repository 4012 and may be used to indicate information for multiple features of an application, such as the location of image files for each container corresponding to each feature of the application. CR files are written by an administrator based on a service provider's request for an application to be deployed within cloud computing environment 400.
[0049] The application deployment container 4021 may include a component named CR monitor 4022, which may periodically monitor CR files in the repository 4012. When the CR monitor 4022 detects a CR file, the CR monitor 4022 may notify the application deployment container 4021 directly about the CR file, regardless of whether the CR file is a new CR file, an updated CR file, or an existing CR file. The application deployment container 4021 may then access the CR file and begin the deployment process. Nevertheless, the application deployment container 4021 may not consider whether the CR file is a new CR file, an updated CR file, or an existing CR file. During the deployment process, the application deployment container 4021 may request the cloud computing environment 400 to sequentially deploy function PODs 403-1, ..., 403-N, each including a function container 404-1, corresponding to N functions of the application. For ease of discussion, functional PODs 403-1...403-N are collectively or individually referred to as functional PODs 403, and functional containers 404-1...404-N are collectively or individually referred to as functional containers 404. Although application deployment container 4021 requests that functional PODs 403 each containing a functional container 404 be deployed, cloud computing environment 400 does not directly deploy the functional PODs 403 containing the corresponding functional containers 404. Instead, cloud computing environment 400 may check whether a functional POD 403 containing a corresponding functional container 404 exists within the cloud computing environment. If not, cloud computing environment 400 may deploy the functional POD 403 containing the corresponding functional container 404.If so, the cloud computing environment 400 may determine whether there are any changes, i.e., whether the functionality PODs 403 with corresponding functionality containers 404 to be deployed differ from those existing functionality PODs 403 with corresponding functionality containers 404 in the cloud computing environment 400. If there are changes, the cloud computing environment 400 may redeploy the functionality PODs 403 with corresponding functionality containers 404 to replace those existing functionality PODs 403, or may apply the changes to those existing functionality PODs 403, thereby updating the functionality PODs 403 with corresponding functionality containers 404 in the cloud computing environment 400. However, if there are no changes, meaning the existing functionality PODs 403 with corresponding functionality containers 404 meet the requirements, the cloud computing environment 400 does not iteratively deploy them.
[0050] 5 illustrates an example of an application named Weather Report Application 500 to be deployed within cloud computing environment 400 and the corresponding dependencies between the functions contained within the application. Referring to FIG. 5, weather report application 500 may include the following functions: database 501, register 502, user admin 503, weather query 504, statistics 505, and monitor 506. The dependencies are as follows: three functions, register 502, user admin 503, and weather query 504, depend on database 501; two functions, statistics 505 and monitor 506, depend on user admin 503; and monitor 506 also depends on weather query 504.
[0051] FIG. 6 shows an example CR file for the weather information application 500 shown in FIG. 5. In FIG. 6, block 601 is used to show information for database 501, block 602 is used to show information for register 502, block 603 is used to show information for user management 503, block 604 is used to show information for weather query 504, block 605 is used to show information for statistics 505, and block 606 is used to show information for monitor 506. The CR file contains the locations of image files for all function containers to be deployed. After the administrator writes the CR file shown in FIG. 6, the administrator stores the CR file in the repository 4012 of the manager 401 in the cloud computing environment 400.
[0052] In the existing cloud computing environment 400, the application deployment container 4021 does not consider the dependencies between the functions when deploying the functions of the application, for example, when sequentially deploying each functional POD including the corresponding container. For example, in the application 500 shown in Fig. 5, if the application deployment container 4021 detects the CR file shown in Fig. 6, the application deployment container 4021 may access the CR file and request the cloud computing environment 400 to sequentially deploy each of the six PODs including the corresponding container, namely, the functional PODs of database 501, register 502, user management 503, weather query 504, statistics 505, and monitor 506. Assuming that the respective times spent to deploy each function POD including corresponding function containers of Database 501, Register 502, User Management 503, Weather Query 504, Statistics 505, and Monitor 506 are T1, T2, T3, T4, T5, and T6, since the deployment of each function POD is in sequential order, the total time to deploy such functions is T=T1+T2+T3+T4+T5+T6. If there are many functions in an application, it may prove to be time consuming to deploy the application.
[0053] Furthermore, in the existing cloud computing environment 400, the CR monitor 4022 and the application deployment container 4021 do not consider whether a CR file in the repository is a new CR file, an existing CR file, or an updated CR file. In response to detecting a CR file, the application deployment container 4021 requests the cloud computing environment 400 to directly deploy each function POD including the corresponding function container. Furthermore, if only one function in an application is changed in a CR file including information about six functions, the application deployment container 4021 may still request the cloud computing environment 400 to again deploy all six function PODs including the corresponding function containers, rather than deploying only the one function POD including the corresponding function container that corresponds to the changed function. For existing CR files, the cloud computing environment 400 does not repeatedly deploy function PODs including corresponding function containers for existing functions, but checking whether function PODs including corresponding function containers have been deployed in the cloud computing environment 400 still takes time and consumes resources.
[0054] 5, in response to CR monitor 4022 first detecting the CR file shown in FIG. 6 in repository 4012, application deployment container 4021 requests cloud computing environment 400 to deploy each function POD 403 containing corresponding function containers 404 for the corresponding functions of database 501, register 502, user management 503, weather query 504, statistics 505, and monitor 506. Cloud computing environment 400 discovers that such function PODs 403 containing corresponding function containers 404 do not exist within cloud computing environment 400 and deploys them directly. 6 (unchanged) in repository 4012 again after five minutes, and application deployment container 4021 again requests cloud computing environment 400 to deploy function PODs 403 containing corresponding function containers 404 for each of the following functions: database 501, register 502, user management 503, weather query 504, statistics 505, and monitor 506. However, cloud computing environment 400 discovers that such function PODs 403 containing corresponding function containers 404 already existed in cloud computing environment 400 and therefore does not deploy them. For the third time, the CR monitor 4022 detects the CR file shown in FIG. 6 (with a change in the function of register 502) in the repository 4012, such as after 5 minutes, and the application deployment container 4021 again requests the cloud computing environment 400 to again deploy function PODs 403 containing corresponding function containers for each of the functions of database 501, register 502, user management 503, weather query 504, statistics 505, and monitor 506.At this time, the cloud computing environment 400 finds that some function PODs 403 with corresponding function containers 404 exist within the cloud computing environment 400, and only the functions of the registers 502 are changed, so the cloud computing environment 400 may deploy only the function PODs 403-2 with corresponding register containers 404-2 to replace the original ones, or apply the changes to the original register function PODs 403-2 with corresponding register containers 404-2. From the above process, it can be seen that the cloud computing environment 400 actually checks in the existing process whether the CR file is a new CR file, an existing CR file, or an updated CR file, and the check is time-consuming and resource-consuming.
[0055] In practice, during application deployment, when a function, for example, register 502, is to be deployed, register 502 is required to write information into the database during deployment (i.e., the function of register 502 depends on the function of database 501), so the function of database 501 must be deployed before deploying register 502, otherwise, the deployment of register 502 cannot succeed. In other words, if functions have dependencies, the dependencies between the functions of the application should be considered during application deployment.
[0056] In the present disclosure, dependencies between application functions are considered during the application deployment process. Table 1 is an exemplary list of dependencies between application functions 500. As shown, Table 1 may record functions and their dependent functions. Those skilled in the art will appreciate that the schema of dependencies between application functions shown in Table 1 is for illustrative purposes only, and that other columns may be added to Table 1. Furthermore, it should be understood that the foregoing table is merely one implementation for expressing dependencies between application functions, and that other data structures, such as XML files, text files, etc., may be used to express dependencies between application functions. In some embodiments, dependencies between application functions may be expressed using an object type, such as a ConfigMap defined in Kubernetes.
[0057] [Table 1]
[0058] Additionally, the deployment status of each function POD containing a corresponding function container that may be deployed in a cloud computing environment and configured to execute each function of the application must be checked by other function deployment processes. Table 2 shows exemplary function deployment statuses for each function POD corresponding to each function in a CR file. Table 2 may be created when a CR file is first retrieved. At this time, the CR file is a new CR file. After a new CR file is first retrieved in the cloud environment, the CR file becomes an existing CR file. When a CR file in the repository is modified, the CR file becomes an updated CR file. During the lifecycle of a CR file, the exemplary function deployment status for each function POD shown in Table 2 is always associated with the CR file. As shown, Table 2 may record each function POD (e.g., using the corresponding function name) and a corresponding deployment status such as "deployed," "not deployed," or "updated," which means that the function POD containing the corresponding function container is deployed, not deployed, or updated, respectively. The schema of the deployment status for each function POD shown in Table 2 is for illustrative purposes only, and one skilled in the art will appreciate that other columns may be added to Table 2. Furthermore, it should be understood that the above Table 2 is only one implementation for expressing the schema of the deployment status of each functional POD, and other data structures such as an XML file, a text file, etc. may be used. In some embodiments, the schema of the deployment status of each functional POD may be expressed as an object type, for example, a ConfigMap defined in Kubernetes.
[0059] [Table 2]
[0060] FIG. 7 illustrates a schematic diagram of a proposed exemplary cloud computing environment 700 for deploying applications, according to some embodiments of the present disclosure. Again, assume that an application deployed within the cloud computing environment 700 may include N functions, where N is an integer greater than 1. Referring now to FIG. 7 , in the proposed exemplary cloud computing environment 700, a manager 701 may include at least a controller 7011 and a repository 7012. To deploy an application, an administrator of the cloud computing environment 700 may deploy an application deployment POD 702 that includes a corresponding application deployment container 7021. The image used by the application deployment container 7021 differs from that used by the application deployment container 4021; the image used by the application deployment container 7021 will be introduced in more detail later. Once deployed, the application deployment container 7021 may include two components: a CR creation and change monitor 7022 and a function POD deployment manager 7023 (the two components are defined in an image file corresponding to the application deployment container 7021).
[0061] In some embodiments, dependencies between features of an application (such as the information in Table 1) may be stored in repository 7012 or within application deployment container 7021. In some embodiments, the deployment status of each feature POD (such as the information in Table 2) may be stored in repository 7012 or within application deployment container 7021. In some embodiments, the deployment status of each feature POD (such as the information in Table 2) may be retrieved directly from Table 2 or in real time through an API defined by cloud computing environment 700.
[0062] All components within the cloud computing environment 700 are directly connected or indirectly connected through a communications network (not shown in FIG. 7). The communications network in FIG. 7 may include various types of communications networks, such as a wide area network (WAN), a local area network (LAN), a telecommunications network, a wireless network, a public switched network, or a satellite network, or combinations thereof. The communications network may include connections such as wire, wireless communications links, or fiber optic cables.
[0063] Each component in the cloud computing environment 700 may be, for example, a mobile device, a phone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of computing device capable of running programs and accessing a network. The cloud computing environment 700 may operate within a cloud computing service model, such as Software as a Service (SaaS), Platform as a Service (PaaS), or Infrastructure as a Service (IaaS). The cloud computing environment 700 may also be deployed within a cloud computing deployment model, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud.
[0064] Referring again to FIG. 7 , the CR creation and modification monitor 7022 may determine whether a CR file in the repository 7012 is a new CR file, an updated CR file, or an existing CR file. In some embodiments, the CR creation and modification monitor 7022 may maintain all CR files that were last retrieved from the repository 7012. When the CR creation and modification monitor 7022 re-retrieves a CR file in the repository 7012, the retrieved CR file may be compared to the saved CR file to determine whether the retrieved CR file is new, updated, or existing. In some embodiments, the CR creation and modification monitor 7022 may maintain necessary information for all CR files that were last retrieved from the repository 7012, such as the CR file name, the time extracted, and a hash code of the file contents. When the CR creation and modification monitor 7022 re-retrieves a CR file in the repository 7012, the information in the retrieved CR file may be compared to the saved CR file to determine whether the retrieved CR file is new, updated, or existing. For example, if there is no associated information about the retrieved CR file, the CR file is a new CR file. If there is associated information about the retrieved CR file but the information does not match the stored information, such as if the hash value of the file contents is different, the CR file is an updated file. If there is associated information about the retrieved CR file and the information matches the stored information, the CR file is an existing CR file. In some embodiments, the CR creation and modification monitor 7022 may register with the repository 7012 to receive information about all CR files. Those skilled in the art will understand that other methods may be used.
[0065] In some embodiments, when CR creation and change monitor 7022 detects a new CR file in repository 7012, CR creation and change monitor 7022 may notify function POD deployment management 7023, which may then request cloud computing environment 700 to deploy each function deployment POD including a corresponding init container configured to manage dependencies and a corresponding function deployment container configured to request deployment of the function POD including the corresponding function container for executing the corresponding function in the application. For example, function deployment POD 705-1 includes init container 706-1 and function deployment container 707-1, ..., function deployment POD 705-N includes init container 706-N and function deployment container 707-N. For ease of discussion herein, function deployment PODs 705-1, ..., 705-N are collectively or individually referred to as function deployment PODs 705, init containers 706-1, ..., 706-N are collectively or individually referred to as init containers 706, and function deployment containers 707-1, ..., 707-N are collectively or individually referred to as function deployment containers 707. When sending the request, function POD deployment management 7023 also sends environment variables for each function deployment POD 705, which may be shared by the corresponding init container 706 and the corresponding function deployment container 707. The environment variables point to corresponding sections in the CR file for the corresponding feature of the application.
[0066] In some embodiments, when the CR creation and modification monitor 7022 detects a new CR file in the repository 7012, the status of each functional POD corresponding to the new CR file (such as the information in Table 2) may be maintained in the cloud computing environment, and the initial value of the status of each functional POD may be set to "Not Deployed."
[0067] The cloud computing environment 700 may then directly deploy each function deployment POD 705, including the corresponding init container 706 and the corresponding function deployment container 707, without needing to check whether each function deployment POD 705 already exists. Each function deployment POD 705 may maintain its own environment variables. After each corresponding init container 706 is deployed, each init container 706 may determine its own function dependencies. Specifically, each init container 706 may retrieve the dependencies between the application's functions, such as those shown in Table 1, and then compare the dependencies with its own environment variables to obtain its own function dependencies. For example, if the environment variables indicate that function deployment POD 705-1 is for a function in database 501, there are no dependent functions. Function deployment container 707-1 may then notify the cloud computing environment 700 to deploy function POD 703-1, which includes function container 704-1. In some embodiments, cloud computing environment 700 may directly deploy function POD 703-1 that includes function container 704-1 without checking whether function POD 703-1 already exists. Function deployment container 707-1 or function container 704-1 may then update the status of corresponding function POD 703-1 in database 501 as “deployed,” as shown in Table 2.
[0068] In another example, after function deployment POD 705-2, which includes init container 706-2 and function deployment container 707-2, is deployed, if the environment variables indicate that function deployment POD 705-2 is for register 502, its dependent function is database 501. Init container 706-2 may then check the status of function POD 703-1, such as by checking Table 2 or by checking in real time with an API provided by cloud computing environment 700. If the status is "Not Deployed," init container 706-2 may repeatedly check until the status is "Deployed." Function deployment container 707-2 may then request cloud computing environment 700 to deploy function POD 703-2, which includes function container 704-2. In some embodiments, cloud computing environment 700 may directly deploy function POD 703-2, which includes function container 704-2, without checking whether function POD 703-2 already exists. Thereafter, function deployment container 707-2 or function container 704-2 may update the status of function POD 703-2 corresponding to register 502 as "deployed," as shown in Table 2.
[0069] In this manner, each init container (e.g., init containers 706-3, 706-4, 706-5, 706-6) may check the status of the dependent function PODs corresponding to its dependent functions until the status is “deployed,” and then each function deployment container may request the cloud computing environment 700 to deploy the respective function PODs (e.g., function PODs 703-3, 703-4, 703-5, 703-6) that contain the corresponding function container (e.g., function containers 704-3, 704-4, 704-5, 704-6). In some embodiments, the cloud computing environment 700 may directly deploy the respective function PODs (e.g., function PODs 703-3, 703-4, 703-5, 703-6) that contain the corresponding function container (e.g., function containers 704-3, 704-4, 704-5, 704-6) without checking whether they already exist. Thereafter, each function deployment container (such as init containers 707-3, 707-4, 707-5, and 707-6) or each function container (such as function containers 704-3, 704-4, 704-5, and 704-6) may update the status of each function POD (corresponding to user management 503, weather query 504, statistics 505, monitor 506, etc.) to “deployed,” as shown in Table 2.
[0070] From the above description, it can be seen that the function PODs corresponding to register 502, user management 503, and weather query 504 in application 500 can be deployed in parallel, and the function PODs corresponding to statistics 505 and monitor 506 can be deployed in parallel. The time spent to deploy each function deployment POD, including both the corresponding init container and the corresponding function deployment container, is small and can be negligible. Then, the maximum time to deploy such functions can be T=T1+max(T2, T3, T4)+max(T5, T6), which is much smaller than the deployment time using cloud computing environment 400.
[0071] In some embodiments, after all function PODs including corresponding function containers are deployed, the status of each function POD in application 500 is updated to be “deployed,” and then function POD deployment management 7023 may delete all function deployment PODs 705 including both the corresponding init container 706 and the corresponding function deployment container 707 to conserve resources for cloud computing environment 700.
[0072] In some embodiments, when the CR Creation and Change Monitor 7022 detects an updated CR file in the repository 7012 (i.e., when there is a change to an existing CR file), the CR Creation and Change Monitor 7022 may notify the Functional POD Deployment Management 7023 of the change, for example, the CR Creation and Change Monitor 7022 may notify the Functional POD Deployment Management 7023 of the changed portions of the CR file in the repository 7012. 6 is changed, function POD deployment management 7023 may request cloud computing environment 700 to deploy only function deployment POD 703-2, which includes both init container 706-2 and function deployment container 707-2, and function deployment container 707-2 may request cloud computing environment 700 to update function POD 703-2, which includes function container 704-2, i.e., deploy function POD 703-2, which includes function container 704-2, to replace the original or apply changes to the existing function POD 703-2, which includes function container 704-2. In some embodiments, cloud computing environment 700 may delete the originally deployed function POD 703-2, which includes function container 704-2, and directly redeploy them based on the changed portion of the CR file without checking. In some embodiments, the cloud computing environment 700 may directly apply the changes to the original deployed function POD 703-2 that contains the function container 704-2 without checking. How the cloud computing environment 700 applies the changes is an existing technique and will not be discussed in detail herein.
[0073] In some embodiments, after the functional POD 703-2, which includes the function container 704-2, is updated, the function deployment container 707-2 or the function container 704-2 may change the status of the functional POD 703-2 in Table 2 from "deployed" to "updated." The functional POD deployment management 7023 may then delete the function deployment POD 703-2, which includes both the init container 706-2 and the function deployment container 707-2, to conserve resources for the cloud computing environment 700. The functional POD deployment management 7023 may then change the status of the functional POD 703-2 from "updated" to "deployed" for further updates.
[0074] In some embodiments, the init container 706 and the corresponding function deployment container 707 may be merged into a merged function deployment container having two components, such as a single container, an init component and a function deployment component. All operations performed by the init container 706 may be performed by the init component of the merged function deployment container, and all operations performed by the function deployment container 707 may be performed by the function deployment component of the merged function deployment container. The contents of the image files corresponding to the init container 706 and its corresponding function deployment container 707 may be merged into the contents of the image file corresponding to the merged function deployment container. In other words, the application deployment container 7021 may request the cloud computing environment 700 to directly deploy multiple function deployment PODs 705 including the corresponding merged function deployment containers, rather than deploying multiple function deployment PODs 705 including both the corresponding init container 706 and the corresponding function deployment container 707. The cloud computing environment 700 may then directly deploy multiple function deployment PODs 705 including the corresponding merged function deployment containers without checking. Furthermore, the merged function deployment container may request the cloud computing environment 700 to deploy / update the corresponding function POD 703 that includes the corresponding function container 704, and the cloud computing environment 700 may then do so directly without checking.
[0075] In some embodiments, not all of the PODs in Figure 7 are required. For example, an administrator may simply deploy application deployment container 7021 directly rather than deploying application deployment POD 702 with corresponding application deployment container 7021, and application deployment container 7021 may directly deploy multiple function deployment containers 707 rather than deploying multiple function deployment PODs with corresponding function deployment containers.
[0076] 8 illustrates an abstract schematic diagram of a proposed exemplary cloud computing environment 800 for deploying applications, in accordance with some embodiments of the present disclosure. With reference to FIG. 8, for ease of discussion, functional deployment components 805-1...805-N will be collectively or individually referred to as functional deployment components 805, and functional components 803-1...803-N will be collectively or individually referred to as functional components 803. Comparing Figure 8 with Figure 7, the manager 801 may be the manager 701, the application deployment component 802 may be an application deployment POD 702 including an application deployment container 7021, or may be an application deployment container 7021, the function deployment component 805 may be a function deployment POD 705 including both a corresponding init container 706 and a corresponding function deployment container 707, or may be a function deployment POD 705 including a merged function deployment container, or may be a merged function deployment container, and the function component 803 may be a function POD 703 including a corresponding function container 704, or may be a function deployment container 704.
[0077] 9 illustrates a flowchart 900 for application deployment within a cloud computing environment in accordance with some embodiments of the present disclosure. Flowchart 900 may be implemented by application deployment component 802 or other suitable computer / computing system, referred to as a first component, comprising one or more processors within cloud computing environment 800. For ease of understanding, flowchart 900 will be described with reference to FIG. 8.
[0078] At 910, the application deployment component 802 (first component) may detect whether there are new or updated CR files in the repository 8012. In other words, existing CR files that have not been modified are not considered. The CR file is configured to indicate information about multiple functions of the application.
[0079] At 920, in response to detecting the new CR file, the application deployment component 802 may request the cloud computing environment 800 to deploy a plurality of function deployment components 805 within the cloud computing environment 800, where the plurality of function deployment components 805 are configured to request the cloud computing environment 800 to deploy a plurality of function components 803 within the cloud computing environment 800, where the plurality of function components 803 are configured to perform a plurality of functions of the application indicated by the new CR file.
[0080] At 930, application deployment component 802 (first component) may implement a first determination of whether each of the plurality of functional components 803 is deployed within cloud computing environment 800. In some embodiments, a status of each of the plurality of functional components (such as the information in Table 2) is maintained within cloud computing environment 800, and application deployment component 802 may retrieve the status of each of the plurality of functional components and determine, based on the retrieved status, whether each of the plurality of functional components 803 is deployed within cloud computing environment 800. In some embodiments, application deployment component 802 may check the status of each of the plurality of functional components against cloud computing environment 800 using an API provided by cloud computing environment 800 to determine whether each of the plurality of functional components 803 is deployed within cloud computing environment 800.
[0081] At 940, in response to a first determination indicating that each of the plurality of functional components is deployed within the cloud computing environment 800, the application deployment component 802 may request the cloud computing environment 800 to remove the plurality of deployed functional deployment components 805 to conserve resources within the cloud computing environment 800.
[0082] In some embodiments, at 950, in response to detecting that the CR file is an updated CR file, the application deployment component 802 may determine at least one updated feature in the updated CR file.
[0083] At 960, application deployment component 802 may request cloud computing environment 800 to deploy at least one function deployment component within cloud computing environment 800. Here, the at least one function deployment component is configured to request cloud computing environment 800 to deploy / update at least one functional component within cloud computing environment 800, where the at least one functional component is configured to perform at least one updated function. After being deployed / updated, the status of the at least one functional component in Table 2 may be changed accordingly.
[0084] At 970, application deployment component 802 may then implement a second determination of whether each of the at least one functional component 803 has been updated within cloud computing environment 800. In some embodiments, a status of each of the at least one functional component is maintained within cloud computing environment 800, and application deployment component 802 may retrieve the status of each of the at least one functional component and determine whether the at least one functional component 803 has been updated within cloud computing environment 800 based on the retrieved status, such as by checking whether the status of the at least one functional component 803 in Table 2 is “updated.” In some embodiments, application deployment component 802 may check the status of each of the at least one functional component against cloud computing environment 800 using an API provided by cloud computing environment 800 to determine whether the at least one functional component 803 has been updated within cloud computing environment 800.
[0085] At 980, in response to a second determination indicating that each of the at least one functional component has been updated within the cloud computing environment 800, the application deployment component 802 may request the cloud computing environment 800 to remove the at least one deployed functional deployment component 805 to conserve resources within the cloud computing environment 800. The application deployment component 802 may then change the status of the at least one functional component 803 in Table 2 from “updated” to “deployed” for further functional updates.
[0086] In some embodiments, dependencies between multiple functions of an application are maintained within cloud computing environment 800.
[0087] In some embodiments, FIG. 10 illustrates a flowchart 1000 as part of the methodology illustrated in FIG. 9 , according to some embodiments of the present disclosure. Flowchart 1000 may be implemented by a function deployment component 805 or other suitable computer / computing system configured to deploy corresponding functional components 803. For ease of understanding, flowchart 1000 will be described with reference to FIG. 8 using function deployment component 805-2 as an example, where function deployment component 805-2 is configured to request a cloud computing environment to deploy / update corresponding functional components (e.g., 803-2) to perform corresponding functions. Assume that functionality corresponding to functional component 803-2 depends on at least one functionality corresponding to at least one dependent functional component 803-1.
[0088] At 1010, the feature deployment component 805-2 may receive information of the corresponding feature from the application deployment component 802, such as the corresponding location of the image file and whether the corresponding feature is a new feature or an updated feature.
[0089] At 1020, the function deployment component 805-2 may obtain at least one dependent function of a corresponding function from the dependencies between the multiple functions of the application.
[0090] At 1030, the function deployment component 805-2 may implement a third determination of whether at least one dependent function component (803-1) corresponding to the at least one dependent function is deployed within the cloud computing environment 800. The determination method is similar to the method used in 930 and 970.
[0091] At 1040, in response to a third determination indicating that each of the at least one dependent functional component (803-1) is deployed within the cloud computing environment 800, the functional deployment component 805-2 may request the cloud computing environment 800 to directly deploy / update the functional component 803-2 within the cloud computing environment 800 without checking based on the received information.
[0092] In some embodiments, at 1050 (not shown in FIG. 10), in response to corresponding functional component 803-2 being deployed within cloud computing environment 800, function deployment component 805-2 or corresponding functional component 803-2 may update the status of corresponding functional component 803-2, such as changing the status in Table 2 from “Not Deployed” to “Deployed.”
[0093] The proposed method may facilitate the deployment of applications in cloud computing environments from an architectural level, and may also facilitate developers to develop frameworks for deploying applications in cloud computing environments.
[0094] It should be noted that the process of application deployment within a cloud computing environment according to an embodiment of the present disclosure may be implemented by computer system / server 12 of FIG.
[0095] The present disclosure may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium having computer-readable program instructions for causing a processor to implement aspects of the present disclosure.
[0096] A computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but 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 of the above. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards or ridge-in-groove structures with instructions recorded on them, and any suitable combination of the above. As used herein, computer-readable storage media should not be construed as signals that are transitory in nature, 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 fiber optic cable), or electrical signals transmitted through wires.
[0097] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or 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 include 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 within each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.
[0098] Computer-readable program instructions for carrying out the operations of the present disclosure may be assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, etc., and procedural programming languages such as the “C” programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the 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 through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to individualize the electronic circuitry to implement aspects of the present disclosure.
[0099] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0100] These computer-readable program instructions may be provided to a computer processor or other programmable data processing apparatus to produce a machine, such that the instructions, executed by the computer processor or other programmable data processing apparatus, produce means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored in a computer-readable storage medium, such that the computer-readable storage medium storing the instructions comprises an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, and can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.
[0101] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to create a computer-implemented process and cause the computer, other programmable apparatus, or other device to perform a series of operational steps, such that the instructions, which execute on the computer, other programmable apparatus, or other device, implement the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0102] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions described in the blocks may occur in an order other than that described in the figures. For example, two blocks shown in succession may actually be performed as a single step, executed concurrently, executed approximately concurrently, with partial or full time overlap, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It will also be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified function or operation or executes a combination of dedicated hardware and computer instructions.
[0103] The description of various embodiments of the present disclosure is presented for illustrative purposes, but 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 of the described embodiments. The terms used herein are chosen to best explain the principles of the embodiments, practical applications or technical improvements over technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
Claims
1. A method for computer information processing, comprising: In response to detecting an updated customer resource file, the customer resource file indicating information about a plurality of features of an application, determining, by one or more processors, an updated feature of at least one of the plurality of features in the updated customer resource file; requesting, by one or more processors, the computing environment to deploy at least one feature deployment component corresponding to the at least one updated feature within the computing environment; the at least one functional deployment component requests the computing environment to update at least one functional component of a plurality of deployed functional components in the computing environment; the requesting that the at least one functional component execute the at least one updated function of the application; determining, by one or more processors, that each of the at least one functional component has been updated within the computing environment; and in response to determining that each of the at least one functional component has been updated within the computing environment, requesting, by one or more processors, the computing environment to remove each of the at least one deployed functional deployment component. A method comprising:
2. The method of claim 1 , wherein the computing environment is a cloud computing environment.
3. In response to detecting a new customer resource file, requesting, by one or more processors, the cloud computing environment to deploy, within the cloud computing environment, a plurality of function deployment components corresponding to the plurality of functions; the plurality of function deployment components requesting the cloud computing environment to deploy the plurality of function components within the cloud computing environment; the requesting that the plurality of functional components perform the plurality of functions; determining, by one or more processors, that each of the plurality of functional components is deployed within the cloud computing environment; in response to determining that each of the plurality of functional components is deployed within the cloud computing environment, requesting, by one or more processors, the cloud computing environment to remove each of the plurality of deployed functional deployment components; The method of claim 2 further comprising:
4. The method of claim 3 , wherein dependencies between the functions of the application are maintained within the cloud computing environment.
5. Each of the plurality of function deployment components receiving, by one or more processors, information of the corresponding functions; obtaining, by one or more processors, from the dependencies between the plurality of functions of the application, at least one dependent function of the corresponding function; determining, by one or more processors, that each of at least one dependent function component corresponding to the at least one dependent function is deployed within the cloud computing environment; In response to determining that each of the at least one dependent functional component is deployed within the cloud computing environment, requesting, by one or more processors, the cloud computing environment to deploy a corresponding functional component within the cloud computing environment for performing the corresponding function based on the received information; The method of claim 4 , wherein the cloud computing environment is requested to deploy the corresponding functional component by
6. The status of each of the plurality of functional components is maintained within the cloud computing environment, and each of the plurality of functional deployment components further comprises: updating, by one or more processors, a status of a corresponding functional component in response to the corresponding functional component being deployed within the cloud computing environment to perform a corresponding function; The method according to any one of claims 3 to 5, wherein the corresponding functional components are deployed by
7. The method of any one of claims 3 to 6, wherein each determination is determined by checking the status of at least one corresponding functional component maintained within the cloud computing environment.
8. 7. The method of claim 3, wherein each determination is determined by checking the status of at least one corresponding functional component against the cloud computing environment using an application programming interface (API) provided by the cloud computing environment.
9. A computer program comprising: In response to detecting an updated customer resource file, the customer resource file indicating information about a plurality of features of an application, determining an updated feature of at least one of the plurality of features in the updated customer resource file; requesting the computing environment to deploy at least one feature deployment component corresponding to the at least one updated feature within the computing environment; the at least one functional deployment component requests the computing environment to update at least one functional component of a plurality of deployed functional components in the computing environment; the requesting that the at least one functional component execute the at least one updated function of the application; determining that each of the at least one functional component has been updated within the computing environment; In response to determining that each of the at least one functional component has been updated within the computing environment, requesting the computing environment to remove each of the at least one functional deployment component that has been deployed; A computer program for executing the above.
10. The computer program product of claim 9 , wherein the computing environment is a cloud computing environment.
11. In response to detecting a new said customer resource file, requesting the cloud computing environment to deploy a plurality of function deployment components corresponding to the plurality of functions within the cloud computing environment; the plurality of function deployment components requesting the cloud computing environment to deploy the plurality of function components within the cloud computing environment; the requesting that the plurality of functional components perform the plurality of functions; determining that each of the plurality of functional components is deployed within the cloud computing environment; in response to determining that each of the plurality of functional components is deployed within the cloud computing environment, requesting the cloud computing environment to remove each of the plurality of deployed functional deployment components; The computer program product of claim 10 , further comprising:
12. The computer program product of claim 11 , wherein dependencies between the functions of the application are maintained within the cloud computing environment.
13. Each of the plurality of function deployment components receiving information about a corresponding function; obtaining at least one dependent function of the corresponding function from the dependencies between the plurality of functions of the application; determining that each of at least one dependent function component corresponding to the at least one dependent function is deployed within the cloud computing environment; responsive to determining that each of the at least one dependent functional component is deployed within the cloud computing environment, requesting the cloud computing environment to deploy a corresponding functional component within the cloud computing environment for performing the corresponding function based on the received information; 13. The computer program product of claim 12, wherein the computer program product requests the cloud computing environment to deploy the corresponding functional component by
14. 1. A computer system comprising: one or more computer processors; one or more computer-readable storage media; and program instructions collectively stored on the one or more computer-readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising: In response to detecting an updated customer resource file, the customer resource file indicating information about a plurality of features of an application, determining an updated feature of at least one of the plurality of features in the updated customer resource file; requesting the computing environment to deploy at least one feature deployment component corresponding to the at least one updated feature within the computing environment; the at least one functional deployment component requests the computing environment to update at least one functional component of a plurality of deployed functional components in the computing environment; the requesting that the at least one functional component execute the at least one updated function of the application; determining that each of the at least one functional component has been updated within the computing environment; In response to determining that each of the at least one functional component has been updated within the computing environment, requesting the computing environment to remove each of the at least one functional deployment component that has been deployed; Program instructions for 1. A computer system comprising:
15. The computer system of claim 14 , wherein the computing environment is a cloud computing environment.
16. In response to detecting a new said customer resource file, requesting the cloud computing environment to deploy a plurality of function deployment components corresponding to the plurality of functions within the cloud computing environment; the plurality of function deployment components requesting the cloud computing environment to deploy the plurality of function components within the cloud computing environment; the requesting that the plurality of functional components perform the plurality of functions; determining that each of the plurality of functional components is deployed within the cloud computing environment; in response to determining that each of the plurality of functional components is deployed within the cloud computing environment, requesting the cloud computing environment to remove each of the plurality of deployed functional deployment components; program instructions collectively stored on said one or more computer-readable storage media for performing 16. The computer system of claim 15, further comprising:
17. A computer-readable recording medium storing the computer program according to any one of claims 9 to 13.
Citation Information
Patent Citations
Deployment system for multi-node applications
JP2014514659A
Deploying an application in a multiple cloud computing environments
US20170134519A1
Information processing device and deployment method
WO2014167790A1