Dynamic delivery of software functionality

文档序号:1367254 发布日期:2020-08-11 浏览:26次 中文

阅读说明:本技术 软件功能的动态交付 (Dynamic delivery of software functionality ) 是由 S·纳德戈达 C·伊什奇 于 2018-12-17 设计创作,主要内容包括:提供了一种允许不同应用容器中的多个应用共享软件功能的容器云平台。服务功能被容器化并从应用容器分离。容器化的服务被交付为用于在应用运行时调用服务功能的应用的胶囊。在操作对应的应用容器的主机计算设备处部署服务容器的图像。容器云平台监视所部署的服务容器的执行以及它们的终止。(A container cloud platform is provided that allows multiple applications in different application containers to share software functionality. Service functions are containerized and separated from application containers. The containerized service is delivered as a capsule of applications for invoking service functions when the applications are running. An image of a service container is deployed at a host computing device operating a corresponding application container. The container cloud platform monitors the execution of the deployed service containers and their termination.)

1. A computing device, comprising:

a network interface;

a processor; and

a storage device storing a set of instructions, wherein execution of the set of instructions by the processor is to configure the computing device to perform actions comprising:

operating an application container that executes a core function that calls a service function;

receiving, by the network interface, a capsule image including an image of the service function, the capsule image having metadata matching the application container;

initiating a capsule container based on the capsule image to perform the service function invoked by the core function of the application container; and is

Exiting the capsule container after the service function execution is complete.

2. The computing device of claim 1, wherein to launch the capsule container to perform the service function comprises to launch a service thread running the service function in a namespace of the application container.

3. The computing device of claim 1, wherein to launch a capsule container to perform the service function comprises to execute a management script of the capsule image configured to communicate with a controller computing device and to invoke a default entry point of the service function.

4. The computing device of claim 1, wherein the application container is one of a plurality of application containers that invoke the service function, wherein each of the plurality of application containers matches the metadata of the capsule image.

5. The computing device of claim 4, wherein a plurality of service threads for the service function execute in parallel for the plurality of application containers.

6. The computing device of claim 4, wherein the metadata of the capsule image includes an indication of whether multiple threads of the service function are allowed to execute in parallel for the multiple application containers.

7. The computing device of claim 1, wherein the metadata of the capsule image includes an indication of whether the capsule image passes a security assessment.

8. The computing device of claim 1, wherein the image of the application container does not include the service functionality.

9. The computing device of claim 1, wherein:

the capsule image is received from a controller computing device, and

exiting the capsule container includes reporting an exit code to the controller computing device.

10. The computing device of claim 1, wherein the application container is a first application container, the service function is a first service function, and the capsule image is a first capsule image, wherein execution of the set of instructions by the processor further configures the computing device to perform acts comprising:

receiving a second capsule image comprising a second service function, different from the first capsule image and the first service function, wherein the second capsule image comprises metadata matching a second application container with the second service function; and is

Initiating the second capsule image to perform the second service function for a core function of the second application container.

11. A computing device, comprising:

a set of one or more processing units; and is

A storage device storing a set of instructions, wherein execution of the set of instructions by the set of processing units configures the computing device to perform actions comprising:

monitoring, via the network interface, a set of host computing devices, each host computing device operating one or more application containers;

identifying a capsule image having metadata matching an application container operating in a host computing device;

deploying the identified capsule image to the host computing device as a capsule container, wherein the deployed capsule container comprises a service function invoked by a core function of the matching first application container; and is

Receiving an exit code from the host computing device based on the execution of the service function.

12. The computing device of claim 11, further comprising retrieving the identified capsule container image from a registry storing a plurality of capsule images.

13. The computing device of claim 11, wherein the image of the application container does not include the service functionality.

14. The computing device of claim 11, wherein the metadata of the capsule image includes an indication of whether multiple threads of the service function are allowed to execute in parallel for the multiple application containers.

15. The computing device of claim 11, wherein the metadata of the capsule container includes an indication of whether the capsule container passed a security assessment.

16. The computing device of claim 11, wherein the capsule container comprises a management script that overrides a default entry point of the service function.

17. The computing device of claim 11, wherein execution of the set of instructions by the set of processing units further configures the computing device to perform actions comprising:

identifying a second host computing device operating a second application container that matches the metadata of the capsule container; and is

Deploying the identified capsule container image to the second host computing device, wherein the service function is invoked by a core function of the second matching application container operating in the second host.

18. The computing device of claim 11, wherein the application container is a first application container, the service function is a first service function, and the capsule image is a first capsule image, wherein execution of the set of instructions by the set of processing units further configures the computing device to perform acts comprising:

deploying, to the host computing device, a second capsule image comprising a second service function different from the first capsule image, wherein:

the core function of the second application container calls the second service function, and

the second capsule image includes metadata that matches the second application container.

19. A computing device, comprising:

a processor; and

a storage device storing a set of instructions, wherein execution of the set of instructions by the processor configures the computing device to perform actions comprising:

receiving an image of a service function having a default entry point;

constructing a capsule image for the service function;

associating a metadata tag with the capsule image for identifying an application container matching the service function;

embedding a capsule management script in the capsule image for (i) managing communication between a controller computing device deploying the capsule image and the host receiving the deployed capsule image, and (ii) invoking the default entry point of the service function; and is

The capsule image is stored in a registry of capsule images.

20. The computing device of claim 19, wherein the capsule image includes dependencies of the service functions.

Technical Field

The present disclosure relates generally to tools for developing and deploying software.

Background

Disclosure of Invention

Some embodiments of the present disclosure provide a container cloud platform that allows multiple applications in different application containers to share software functionality. Service functions are containerized and separated from application containers. The containerized service is delivered as a capsule of applications for invoking service functions when the applications are running. An image of a service container is deployed at a host computing device operating a corresponding application container. The container cloud platform monitors the execution of the deployed service containers and their termination.

The container cloud platform includes a run-break controller that monitors a set of host computing devices. Each host computing device operates one or more application containers. The run-break controller identifies capsule images having metadata that matches an application container operating in the host computing device. The run-break controller deploys the identified capsule image to the host computing device as a capsule receptacle. The deployed capsule container includes a service function that is invoked by the core function of the matched application container. The run-break controller receives an exit code from the host based on the execution of the service function.

The host operates an application container that executes core functions that call service functions. The host receives a capsule image including an image of a service function. The capsule image has metadata that matches the application container. The host starts the capsule container based on the capsule image to execute the service function called by the core function of the application container. After the service function execution is completed, the host exits the capsule container.

The foregoing summary is intended to serve as a brief description of some embodiments of the disclosure. This is not meant to be an introduction or overview of all inventive subject matter disclosed in this document. The embodiments described in this summary, as well as other embodiments, are further described in the following detailed description and the accompanying drawings that are referred to in the detailed description. Thus, the summary, detailed description, and drawings are provided for an understanding of all embodiments described in this document. Furthermore, the claimed subject matter is not limited by the illustrative details in the summary, detailed description, and drawings, but rather is defined by the appended claims, as the claimed subject matter may be embodied in other specific forms without departing from the spirit of the present subject matter.

Drawings

The drawings are exemplary embodiments. They do not show all embodiments. Other embodiments may additionally or alternatively be used. Details that may be apparent or unnecessary may be omitted to save space or for more effective illustration. Some embodiments may be practiced with additional components or steps and/or without all of the components or steps shown. When the same number appears in different drawings, it refers to the same or similar parts or steps.

Figure 1 conceptually illustrates a container cloud platform that deploys service containers to host computing devices that operate application containers, according to an exemplary embodiment.

Figure 2 conceptually illustrates using metadata of a capsule image to identify matching application containers in accordance with an exemplary embodiment.

FIG. 3 illustrates the creation of a capsule image according to an exemplary embodiment.

Figure 4 conceptually illustrates a process for performing a capsule image as a service container for core functions in an application container, consistent with an exemplary embodiment.

Figure 5 conceptually illustrates a process for deploying a capsule image of a service function to a host running an application container that uses the service function.

FIG. 6 shows a block diagram of components of a data processing system, according to an illustrative embodiment of the present disclosure.

FIG. 7 illustrates an example cloud computing environment.

FIG. 8 illustrates a collection of functional abstraction layers provided by a cloud computing environment consistent with exemplary embodiments.

Detailed Description

In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. It should be apparent, however, that the present teachings may be practiced without such specific details. In other instances, well known methods, procedures, components, and/or circuits have been described at a relatively high-level without detail in order to avoid unnecessarily obscuring aspects of the present teachings.

An application has many component software functions. Some of these functions may be classified as core functions, while others may be classified as service or auxiliary software functions. Core functionality is typically written by application developers specifically for applications to define the application. They are not predefined for use with different applications. The service or auxiliary functions support the implementation of core functions. They are typically predefined functions written for use by different applications (e.g., as libraries). Some service functions are low-level routines for a particular hardware platform. Examples of such secondary or service functions include periodically invoked functions such as NTP update, data backup, data consistency check functions. Examples of secondary or service functions also include sporadic functions, such as increasing the size of database tables and selective data compression or pruning functions.

The auxiliary software functions used by the application are typically built into the same container image along with the core functions of the application. This results in a dilated container image, wherein the parts of the image corresponding to the common auxiliary software functions are built up again and again.

To separate secondary functionality from images of application containers, some embodiments of the present disclosure provide a container cloud platform that allows multiple applications in different application containers to share software functionality (e.g., secondary service functionality). Service functions are containerized and separated from application containers. The containerized service is delivered as a capsule of applications for invoking service functions when the applications are running. These containerized services are referred to as service containers. An image of a service container is deployed at a host computing device operating a corresponding application container. The container cloud platform monitors the execution of the deployed service containers and their termination. In some embodiments, the service container is deployed as a capsule image at the host computing device, and thus the service container may also be referred to as a capsule container.

The container cloud platform 100 is managed and controlled by a run-and-break controller 110. The run-break controller 110 communicates with the host computing device 101 and 103 participating in the container cloud platform 100. The computing device 101 and the run-away controller 110 may use their respective network interfaces to communicate with each other over the internet, a computing cloud, a local area network, or another type of communication medium.

Run-off controller 110 is a computing device with access to image registry 120, image registry 120 storing various software images, including images of capsules for different service functions. When deployed at a host running an application container, the capsule image is executed as a service container. The run-break controller 110 monitors the host 101 and 103 for application containers operating in those computing devices. Run-off controller 110 identifies the service functions required by these application containers and deploys the corresponding capsule images of the service containers to those hosts. In this example, the container cloud platform dispatches or deploys capsule images a and B to host 101, capsule image B to host 102, and capsule images a and C to host 103.

As shown, the host computing device 101 is operating application containers S, V, T and Z. The image of each of these application containers includes an image of one or more core functions. However, the images of the application containers S, V and T do not include images or dependencies for service functions running core functions. In this example, the core functions of the application containers S and V relate to the service function a, but the images of the application containers S and V do not include the service function a. The core function of the application container T relates to the service function B, but the image of the application container T does not include the service function B. Accordingly, run-break controller 110 of container cloud platform 100 deploys capsule images for service function a and service function B to host computing device 101.

Once the capsule image is deployed in the host, the host may execute the capsule image as a service container for service functions. The host runs the service function for the core function that calls the service function. In the example of fig. 1, the host 101 executes the capsule image a as a service container a for the service function a. This allows the host computing device 101 to correctly perform the core functions of the application containers S and V with the service function a. Also, the main 101 executes the capsule image B as a service container B for the service function B. This allows the host computing device 101 to correctly perform the core functions of the application container T with the service function B.

In some embodiments, for each application container that uses a service function, the corresponding service container launches a service thread that runs an instance of the service function of the application container. When a service thread completes its operation, the host exits each instance of the service function by terminating its corresponding service thread. Since the thread of the service function in the service container exits once the execution of the service function is completed, the capsule image of the service container is referred to as a run-off capsule (REC). Controller 110 of container cloud platform 100 is referred to as a run-off controller because it monitors and controls the execution and termination of each run-off capsule.

In some embodiments, each service thread of an instance of a service function operates in a namespace of an application container that invokes the instance of the service function. As shown, the service container a operates a first service thread of a first instance 131 of the service function a in the namespace of the application container S. The service container a also operates a second service thread of a second instance 132 of the service function a in the namespace of the application container V. Since the two instances 131 and 132 of the service function a operate in different namespaces, the operation of the service function a for the application container S will not interfere with the operation of the service function a for the application container V, and vice versa. Similarly, the service container B operates the service thread of the instance 141 of the service function B in the namespace of the application container T.

In some embodiments, the host may operate different instances of the service function for different application containers in parallel. The host may also only operate one instance of the service function at any given time, such that each application container that invokes the service function must wait for its turn to run the service function (e.g., sequentially or iteratively).

The deployment of the capsule image allows the image of the application container to carry only the core functions and not the service functions and their dependencies. The deployment of capsule images also allows different application containers in the same host to share the same service function image. Moreover, the container cloud platform can deploy the same capsule image to different hosts, so that application containers in different hosts can invoke the same service function without having to carry the service function in their container image. In the example of fig. 1, run-off controller 110 deploys capsule image a to both hosts 101 and 103 and capsule image B to both hosts 101 and 102.

In some embodiments, each capsule image is associated with a metadata set. The metadata of the capsule image provides a label or tag that can be used by a host receiving the capsule image to identify an application container that matches the service function of the capsule image. The metadata of the capsule image also allows the run-away controller 110 to identify the host running the matching application container.

Figure 2 conceptually illustrates using metadata of a capsule image to identify matching application containers in accordance with an exemplary embodiment. As shown, capsule images A, B and C are registered at image registry 120, and image registry 120 is accessible by run-away controller 110 of container cloud platform 100. The run-break controller 110 monitors a number of application containers S, T, U, V, W, X and Y. These application containers operate in a host such as host 101 and 103 (not shown). Each capsule image may include an image of a service function, a capsule management script, and metadata.

The capsule image a includes a service image 211, a capsule management script 212, and metadata 213.

The service image 211 is an image of a service function that can be executed to run the service function of the capsule image a.

The capsule management script 212 manages the communication between the run-away controller 110 that deploys the capsule images and the host that receives the deployed capsule images. The capsule management script 212 is also configured to invoke a default entry point. The capsule management script 212 allows the run-off controller 110 to communicate with the capsule container for management activities. For example, run-off controller 110 may invoke a capsule management script to query the status of service functions running inside the service container.

Metadata 213 includes a set of capsule tags 221. The set of capsule tags 221 specifies criteria for identifying a matching application container for the service function of capsule image a. The set of capsule tags 221 specifies "OS ═ Ubuntu", i.e., using the Ubuntu operating system. This matches application container S, V and Y using the Ubuntu operating system ("OS ═ Ubuntu"). Run-off controller 110 in turn deploys capsule image a to the hosts (e.g., hosts 101 and 103) operating application container S, V or Y.

In addition to the set of capsule tags 221, the metadata 213 of the capsule image includes information such as an identifier of the service function 220, constraint parameters 222, and security assessment markers 223. The constraint parameters 222 indicate whether the host can operate different instances of the service function for different application containers in parallel, or only one instance of the service function at any given time. The security assessment flag 223 is an indication of whether the capsule image passes or fails the security test. The run-break controller 110 may use the flag to determine whether to restrict execution of the service function for certain application containers. This ensures the security of the service function being performed.

Fig. 2 also shows the content of the capsule images B and C. The capsule label set of the capsule image B specifies "OS — rhel, app ═ db 2". This matches the application containers T and W, so the run-break controller 110 deploys the capsule image B to the host operating the application container T or W. The capsule label of the capsule image C specifies "app ═ kafka". This matches application container U, X and Y, so run-break controller 110 deploys capsule image C to the host operating application container U, X or Y.

It is noted that one application container may use service functions from a plurality of different capsule images. In this example, the application container Y matches the capsule tags (OS ═ ubuntu and app ═ kafka) of both capsules a and C, so the run-break controller 110 deploys both capsule images a and C at the host operating the application container Y.

FIG. 3 illustrates the creation of a capsule image according to an exemplary embodiment. The capsule image of the service container is created based on the code or definition of the service function provided by the developer. The created capsule image is registered to the image registry 120 for retrieval by the run-off controller 110, and the run-off controller 110 deploys the capsule image to an application container operating in the host. The figure shows the creation and registration of capsule images in six stages labeled '1' to '6'.

In the first phase (labeled '1'), the developer computing device 301 receives a specification or content (e.g., code) of the service function.

In the second phase (labeled '2'), the developer computing device 301 creates a service image 305 for the received service function. The service image 305 is created with build commands to include all dependencies and libraries required for the service function. The developer computing device also specifies a start script or default entry point 306 for invoking the service function. The developer computing device also specifies a tag 307 that identifies which application containers that should be monitored by the container cloud platform receive the service image. Service image 305, entry point 306, and label 307 are stored as docker image 320 in image registry 120. The docker image is an image of a docker container, which is an open source software development platform. The docker container allows service functions to be portable across any system running the Linux Operating System (OS).

At the third stage (labeled '3'), run-and-break controller 110 retrieves docker image 320 from image registry 120.

In the fourth stage (label '4'), run-off controller 110 creates a capsule image 310 of the package service image. The run-away controller 110 overwrites the default entry point of the service image with a capsule management script (e.g., 212) configured to invoke the default entry point of the service image. The run-away controller 110 also performs a security or vulnerability assessment of the newly created capsule image. The result of the security assessment is included as a security assessment flag (e.g., 223) in the metadata of the capsule image (which includes the service image).

In the fifth stage, the run-off controller 110 stores or registers the newly created capsule image 310 in the image registry 120. The capsule image 310 includes an image of the service function, a capsule management script, and metadata of the service function. The metadata of the service function includes a capsule tag, a constraint condition, and a security assessment result flag. In some embodiments, the run-and-break controller 110 only registers or stores images of the capsule that pass the security assessment.

In the sixth stage, the capsule image 310 is registered at the image register 120 for subsequent retrieval and deployment by the run-away controller 110. Other service images from other service functions of other developer computing devices (e.g., 302) may also be processed by run-away controller 110 to create other capsule images.

Figure 4 conceptually illustrates a process 400 for executing a capsule image as a service container for core functions in an application container, consistent with an exemplary embodiment. In some embodiments, a host (e.g., 101) performs process 400 when operating an application container and communicating with run-out-of-container controller 110 of a container cloud platform. In some embodiments, one or more processing units (e.g., processors) of the host perform process 400 by executing instructions stored in a computer-readable medium.

The host operates (at 410) the application container and performs core functions of the application that depend on (or invoke) the service functions. The host may also operate other application containers with other core functionality. The host communicates with the run-and-break controller 110 so that the run-and-break controller 110 can learn which application containers are operating in the host and which service functions are required by their core functions.

The host receives (at 420) the capsule image from the run-and-break controller 110. The capsule image includes an image of the service function (or service image) and its dependency relationship. The capsule image has metadata with a tag that matches the service function with an application container that uses the service function.

The host executes (at 425) the capsule management script for the capsule image. The capsule management script manages communication between the host and the run-and-break controller that configures the capsule image. The management script is further configured to invoke a default entry point for the service function.

The host initiates (at 430) a service thread based on the capsule image to perform a service function invoked by the core function of the application container. In some embodiments, a service thread is, for example, an instance of a service function operating in the namespace of one application container, such that the operation of the service thread does not interfere with the operation of other containers in the host. Constraint parameters (e.g., 222) in the metadata of the capsule image may allow the host to operate different instances of the service function in parallel for different application containers (e.g., as service threads 131 and 132) or restrict the host to only operate one instance of the service function at a time.

After the thread completes its operation on the application container, the host exits (at 440) the service thread. In some embodiments, the host also reports an exit code to the run-off controller 110. The capsule container on the host may re-trigger the service thread if required by the application container.

After applying the service function to all applicable application containers (or when the run-away controller 110 instructs the host to force an exit from the application container), the host exits (at 450) the service container (capsule container). The process 400 then ends.

Figure 5 conceptually illustrates a process 500 for deploying a capsule image of a service function to a host running an application container that uses the service function. In some embodiments, run-off controller 110 performs process 500 when run-off controller 110 monitors a remote host for an application container that depends on the service function. In some embodiments, one or more processing units (e.g., processors) of run-and-break controller 110 perform process 500 by executing instructions stored in a computer-readable medium.

The run-break controller 110 monitors (at 510) a set of remote host computing devices, each operating one or more application containers having core functionality that depends on service functionality.

The run-break controller 110 identifies (at 520) a capsule image having metadata that matches an application container operating in one of the hosts. In some embodiments, the matching is based on a capsule label (e.g., 221) in the metadata of the capsule image. The tag may be inserted by a developer of the service function at the developer (e.g., 301) or by run-off controller 110. In some embodiments, the run-away controller 110 determines whether to deploy the capsule image based on the security assessment flag (e.g., 223) such that cloud images that fail the security assessment will not be deployed.

The run-break controller 110 deploys (at 530) the identified capsule image in the host that operates the matching application container as a service container. The service container (or capsule container) includes service functions that are invoked by the core functions of the matching application container.

The run-break controller 110 receives (at 540) an exit code from the host. The exit code indicates the complete execution of the service function for one application container or for all application containers using the service function. In some embodiments, run-break controller 110 reports to an administrator if an exit code is not received from the host within a threshold period of time, or if the exit code indicates that the execution of the service function has an error. The process 500 then ends.

Although not shown as part of process 500, run-off controller 110 also retrieves service images from image registry 120 and modifies them to become capsule images during the operation of process 500. As described above with reference to fig. 3, the run-away controller 110 retrieves the service image to create a capsule image that wraps the service image. The default entry point for the service image is overwritten with the capsule management script. The run-away controller 110 also performs a security or vulnerability assessment of the newly created capsule image. The newly created capsule image is registered at the image registry 120.

Example electronic System

The present invention may be a system, method and/or computer program product in any combination of possible technical details. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied therewith for causing a processor to implement various aspects of the present invention.

The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.

The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/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, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device. Computer program instructions for carrying out operations of the present invention may be assembly instructions, Instruction Set Architecture (ISA) instructions, machine related instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like 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, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, 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 made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present invention are implemented by personalizing an electronic circuit, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA), with state information of computer-readable program instructions, which can execute the computer-readable program instructions.

Aspects of the present invention 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 invention. 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. These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowcharts and block diagrams in the figures (i.e., fig. 4, fig. 5) illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

FIG. 6 shows a block diagram of components of data processing systems 600 and 650 that may be used to implement run-off controller 110 or a host (e.g., 101), according to an illustrative embodiment of the invention. It should be appreciated that FIG. 6 provides illustration of only one embodiment and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environments may be made based on design and implementation requirements.

Data processing systems 600 and 650 represent any electronic device capable of executing machine-readable program instructions. Data processing systems 600 and 650 may represent smart phones, computer systems, PDAs, or other electronic devices. Examples of computing systems, environments, and/or configurations that may be represented by data processing systems 600 and 650 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, network PCs, minicomputer computer systems, and distributed cloud computing environments that include any of the above systems or devices.

Data processing systems 600 and 650 may include a set of internal components 600 and a set of external components 650 as shown in FIG. 6. The set of internal components 600 includes one or more processors 620, one or more computer-readable RAMs 622 and one or more computer-readable ROMs 624 on one or more buses 626, as well as one or more operating systems 628 and one or more computer-readable tangible storage devices 630. One or more operating systems 628 and programs (such as those used to perform processes 400 and 500) are stored on one or more computer-readable tangible storage devices 630 for execution by the one or more processors 620 via the one or more RAMs 622 (which typically include cache memory). In the embodiment shown in fig. 6, each of the computer readable tangible storage devices 630 is a magnetic disk storage device of an internal hard disk drive. Alternatively, each of the computer readable tangible storage devices 630 is a semiconductor storage device, such as a ROM624, EPROM, flash memory, or any other computer readable tangible storage device that can store a computer program and digital information.

The set of internal components 600 also includes an R/W drive or interface 632 for reading from and writing to one or more portable computer-readable tangible storage devices 686, such as CD-ROMs, DVDs, memory sticks, magnetic tape, magnetic disks, optical disks, or semiconductor storage devices. The instructions for performing processes 400 and 500 may be stored on one or more of the respective portable computer readable tangible storage devices 686, read via the respective R/W drives or interfaces 632, and loaded into the respective hard drives 630.

The set of internal components 600 may also include a network adapter (or switch port card) or interface 636, such as a TCP/IP adapter card, a wireless Wi-Fi interface card, or a 3G or 4G wireless interface card or other wired or wireless communication link. The instructions of the above-described processes or programs may be downloaded from an external computer (e.g., a server) via a network (e.g., the internet, a local area network, or other wide area network) and corresponding network adapter or interface 636. From the network adapter (or switch port adapter) or interface 636, instructions and data of the described program or process are loaded into the corresponding hard disk drive 630. The network may include copper wires, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers.

The set of external components 650 may include a computer display monitor 670, a keyboard 680, and a computer mouse 684. The set of external components 650 may also include a touch screen, virtual keyboard, touch pad, pointing device, and other human interface devices. The set of internal components 600 also includes device drivers 640 for interfacing with a computer display monitor 670, a keyboard 680, and a computer mouse 684. The device driver 640, the R/W driver or interface 632, and the network adapter or interface 636 include hardware and software (stored in the storage device 630 and/or the ROM 624).

Cloud computing environment

It should be understood that although the present disclosure includes detailed descriptions with respect to cloud computing, implementations of the teachings referenced herein are not limited to cloud computing environments. Rather, embodiments of the present disclosure can be implemented in connection with any other type of computing environment, whether now known or later developed. 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 quickly configured and released with minimal administrative effort or interaction with a service provider. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

Example features:

self-service as required: cloud consumers can unilaterally provision computing capabilities, such as server time and network storage, as needed-automatically without human interaction with the provider of the service.

Wide network access: capabilities are available over networks and accessed through standard mechanisms that facilitate use by heterogeneous, thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically assigned and reassigned as needed. There is a sense of location independence in that consumers typically have no control or knowledge of the exact location of the provided resources, but may be able to specify locations at higher levels of abstraction (e.g., country, state, or data center).

Quick elasticity: the ability to zoom out quickly and elastically (in some cases, automatically) and release quickly to zoom in quickly may be provided quickly and flexibly. For consumers, the capabilities available for provisioning typically appear unlimited and may be purchased in any number at any time.

Service of measurement: 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 the provider and consumer of the utilized service.

Example service model:

software as a service (SaaS): the capability provided to the consumer is to use the provider's applications running on the cloud infrastructure. Applications may be accessed from different client devices through a thin client interface, such as a web browser (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure including network, server, operating system, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

Platform as a service (PaaS): the capability provided to the consumer is to deploy consumer-created or acquired applications on the cloud infrastructure, the applications being created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating system, or storage, but has control over the deployed applications and possibly the application hosting environment configuration. Infrastructure as a service (IaaS): the ability to provide consumers is to provide processing, storage, networking, and other basic computing resources that consumers can deploy and run any software that may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

Deployment model:

private cloud: the cloud infrastructure operates only for organizations. It may be managed by an organization or a third party and may exist either on-site or off-site.

Community cloud: the cloud infrastructure is shared by several organizations and supports specific communities with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It may be managed by an organization or a third party and may exist either on-site or off-site.

Public cloud: the cloud infrastructure is made available to the public or large industry groups and owned by the organization that sells the cloud services.

Mixing cloud: a cloud infrastructure is a composition of two or more clouds (private, community, or public) that hold unique entities but are bound together by standardized or proprietary techniques that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

Cloud computing environments are service-oriented, focusing on state, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure comprising a network of interconnected nodes.

Referring now to fig. 7, an illustrative cloud computing environment 750 is depicted. As shown, cloud computing environment 750 includes one or more cloud computing nodes 710 with which local computing devices used by cloud consumers, such as Personal Digital Assistant (PDA) or cellular telephone 754A, desktop computer 754B, laptop computer 754C, and/or automobile computer system 754N, may communicate. The nodes 710 may communicate with each other. They may be physically or virtually grouped (not shown) in one or more networks, such as the private, community, public, or hybrid clouds described above, or a combination thereof. This allows cloud computing environment 750 to provide infrastructure, platforms, and/or software as a service for which cloud consumers do not need to maintain resources on local computing devices. It should be understood that the types 754A-N shown in fig. 7 are intended to be illustrative only, and that computing node 710 and cloud computing environment 750 may communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser).

Referring now to fig. 8, a set of functional abstraction layers provided by cloud computing environment 750 (of fig. 7) is illustrated. It should be understood that the components, layers, and functions shown in fig. 8 are intended to be illustrative only, and embodiments of the present disclosure are not limited thereto. As depicted, the following layers and corresponding functions are provided:

the hardware and software layer 860 includes hardware and software components. Examples of hardware components include: a host 861; a RISC (reduced instruction set computer) architecture-based server 862; a server 863; a blade server 864; a storage device 865; and a network and networking component 866. In some embodiments, the software components include web application server software 867 and database software 868.

The virtualization layer 870 provides an abstraction layer from which the following examples of virtual entities may be provided: a virtual server 871; virtual storage 872; a virtual network 873, including a virtual private network; virtual applications and operating systems 874; and virtual client 875.

In one example, the management layer 880 can provide the functionality described below. Resource provisioning 881 provides dynamic acquisition of computing resources and other resources for performing tasks within the cloud computing environment. Metering and pricing 882 provides cost tracking as resources are utilized within the cloud computing environment and charges or invoices for consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection of data and other resources. The user portal 883 provides access to the cloud computing environment for consumers and system administrators. Service level management 884 provides cloud computing resource allocation and management such that the required service levels are met. Service Level Agreement (SLA) planning and fulfillment 885 provides prearrangement and procurement for cloud computing resources, whose future requirements are anticipated according to the SLA.

Workload layer 890 provides an example of the functionality that may utilize a cloud computing environment. Examples of workloads and functions that may be provided from this layer include: map and navigation 891; software development and lifecycle management 892; virtual classroom education delivery 893; data analysis processing 894; transaction processing 895; and run disengage control 896. In some embodiments, workload 896 performs some operations in container cloud platform 100 that run off of controller 110.

One or more embodiments of the foregoing, wherein the computing infrastructure implements a container cloud platform having run-break controller computing devices that monitor a number of host computing devices running an application container. The run-away controller deploys the capsule image to the host computing device, and the host computing device runs the service container from the deployed capsule image to provide service functionality for the core functionality in the application container.

The description of the different embodiments of the present disclosure has been presented for purposes of illustration but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application, or technical improvements found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:根据能量消耗来控制处理性能水平

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!