US20170134246A1 - Using discovered virtual-infrastructure attributes to automatically generate a service-catalog entry - Google Patents
Using discovered virtual-infrastructure attributes to automatically generate a service-catalog entry Download PDFInfo
- Publication number
- US20170134246A1 US20170134246A1 US15/405,584 US201715405584A US2017134246A1 US 20170134246 A1 US20170134246 A1 US 20170134246A1 US 201715405584 A US201715405584 A US 201715405584A US 2017134246 A1 US2017134246 A1 US 2017134246A1
- Authority
- US
- United States
- Prior art keywords
- software
- cloud
- application
- virtual machine
- infrastructure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000006870 function Effects 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 27
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 56
- 238000004458 analytical method Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 6
- 238000001152 differential interference contrast microscopy Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 description 3
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5058—Service discovery by the service manager
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/20—Network management software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Definitions
- the present invention relates to managing a catalog of services in a cloud-computing environment.
- a cloud-computing management platform that manages a cloud-computing environment may maintain a service catalog that describes services that the cloud-computing environment can provide.
- the cloud-computing management platform uses information comprised by the entry to provide the requested service by provisioning a virtual machine or by installing, configuring, or otherwise deploying application software. Fulfilling the user's request may further comprise, but is not limited to, provisioning, deprovisioning, or modifying an attribute of the service described by the entry in the service catalog.
- One step of importing that virtual machine and the business applications or services it provides into a cloud-computing environment is generating and entering an entry for the virtual machine, applications, or services into the cloud-computing environment's service catalog.
- Such generating generally cannot be performed by an automated means because, among other possible reasons, the virtual machine may be provisioned or configured in a way that does not conform with characteristics of services offered by the cloud-computing environment or with an other convention or standard of the cloud-computing environment. Resolving such issues may require a manual entry-generation procedure that may be cumbersome, vulnerable to error, or time-consuming. When a large enterprise must migrate thousands of such non-cloud virtual machines into a cloud-computing environment, generating corresponding service-catalog entries may become extraordinarily resource-intensive.
- a first embodiment of the present invention provides a method for automatically generating an entry of a service catalog of a cloud-computing environment, wherein the cloud-computing environment comprises a cloud-management platform, wherein the cloud-management platform comprises a processor of a computer system that has access to an infrastructure-discovery tool and an application-discovery tool, and wherein the entry describes a characteristic of a virtual service provided by the cloud-computing environment, the method comprising:
- the processor receiving infrastructure information about a virtualized computing infrastructure from the infrastructure-discovery tool, wherein the virtualized computing infrastructure comprises a first physical computer that runs a first application on a first virtual machine, and wherein the received information comprises a characteristic of the first virtual machine;
- the processor further receiving application information about a characteristic of the first application from the application-discovery tool;
- the processor generating the entry as a function of the infrastructure information and the application infrastructure.
- a second embodiment of the present invention provides a computer program product, comprising a computer-readable hardware storage device having a computer-readable program code stored therein, said program code configured to be executed by a processor of a computer system to implement a method for automatically generating an entry of a service catalog of a cloud-computing environment, wherein the cloud-computing environment comprises a cloud-management platform, wherein the cloud-management platform comprises the processor of the computer system, wherein the processor of the computer system has access to an infrastructure-discovery tool and an application-discovery tool, and wherein the entry describes a characteristic of a virtual service provided by the cloud-computing environment, the method comprising:
- the processor receiving infrastructure information about a virtualized computing infrastructure from the infrastructure-discovery tool, wherein the virtualized computing infrastructure comprises a first physical computer that runs a first application on a first virtual machine, and wherein the received information comprises a characteristic of the first virtual machine;
- the processor further receiving application information about a characteristic of the first application from the application-discovery tool;
- the processor generating the entry as a function of the infrastructure information and the application infrastructure.
- a third embodiment of the present invention provides a computer system comprising a processor, a memory coupled to said processor, and a computer-readable hardware storage device coupled to said processor, said storage device containing program code configured to be run by said processor via the memory to implement a method for automatically generating an entry of a service catalog of a cloud-computing environment, wherein the cloud-computing environment comprises a cloud-management platform, wherein the cloud-management platform comprises the processor of the computer system, wherein the processor of the computer system has access to an infrastructure-discovery tool and an application-discovery tool, and wherein the entry describes a characteristic of a virtual service provided by the cloud-computing environment, the method comprising:
- the processor receiving infrastructure information about a virtualized computing infrastructure from the infrastructure-discovery tool, wherein the virtualized computing infrastructure comprises a first physical computer that runs a first application on a first virtual machine, and wherein the received information comprises a characteristic of the first virtual machine;
- the processor further receiving application information about a characteristic of the first application from the application-discovery tool;
- the processor generating the entry as a function of the infrastructure information and the application infrastructure.
- FIG. 1 shows the structure of a computer system and computer program code that may be used to implement a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention.
- FIG. 2 is a flow chart that illustrates steps of a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention.
- FIG. 3 shows an example of a non-cloud computing environment, as described in FIG. 2 .
- cloud computing a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
- the NIST also lists three “service models” (software, platform and infrastructure), and four “deployment models” (private, community, public and hybrid) that categorize ways that a cloud-computing environment may deliver cloud-based virtual services and business applications. See http://www.nist.gov/itl/csd/cloud-102511.cfm.
- a reference to a virtualized service whether offered by a cloud-computing environment or provided by a virtual machine provisioned in a non-cloud environment, may generally be construed to comprising business applications.
- deployment refers to a set of activities that must be performed in order to make a software application or service usable, where such activities may comprise, but are not limited to, provisioning, deprovisioning, installation, configuration, activation, deactivation, versioning, updating, and otherwise modifying an attribute.
- a “deployment pattern” is a definition of a topology that describes characteristics of a deployment in such a way that the deployment may be more easily performed with consistency by multiple parties at different times. Such a topology may comprise a virtual image that comprises a virtualized resource and applications deployed in the image. In some cases, a deployment pattern may be limited to a single virtual machine or to a single set of application components deployed on one or more similar, identical, or heterogeneous virtual machines.
- a “cloud-computing environment” may comprise computing technology that uses central remote servers, connected through the Internet, an intranet, or other networking technology, to offer a service related to maintaining a user's data or applications.
- a user may request such a service by selecting it from a “service catalog” maintained by a “cloud-management platform” of the cloud-computing environment.
- the present invention may operate in a cloud-computing environment that provisions and configures virtual resources provisioned on the cloud-computing environment's physical infrastructure, where those virtual resources may comprise, but are not limited to, combinations of virtual processor, virtual storage, and virtual networking components. Such virtual resources may be provisioned and configured as needed to host business applications and services requested by users from the environment's service catalog.
- Such a cloud-computing environment may further comprise a cloud-management platform that manages these cloud-computing services (wherein such cloud-computing services may comprise business applications).
- the cloud-management platform may provision a service as a function of characteristics of one or more virtual machines, of an application running on a virtual machine, or of combinations thereof.
- the cloud-management platform may respond by taking one or more actions requested by the user, where an action of the one or more actions may comprise, but is not limited to, provisioning, deprovisioning, or modifying an attribute of a virtual resource on a physical component of the cloud-computing environment and by then launching one or more applications on the virtual machine.
- Such a service may be a function of the cloud-computing environment's physical or virtual resources, where these resources may comprise combinations of physical or virtual resources that may comprise one or more computers, communications resources, application software, system software, computers, peripheral devices, other assets related to any of these resources, and combinations thereof.
- the requested business application or service may be provided as a further function of a characteristic of any of these resources or assets, where a characteristic may comprise a hardware or a software configuration, a setting, a license for a specific revision of a software entity, a hardware license, a deployment workflow, a deployment pattern, a dependency upon an other software or hardware entity or upon a revision or setting, or an other constraint that may be related to power usage, site configuration, contractual terms, or environmental factors.
- the cloud-management platform may manage such a service offering by describing such a characteristic of the offered service in an entry of the service catalog. If an authorized user requests the service described in the service-catalog entry, the cloud-management platform may respond by provisioning a virtual machine to provide all or part of the requested service, where the provisioning may be a function of the entry and wherein a selection of components that comprise the virtual machine and a configuration of the virtual machine and of its components may be further functions of the entry.
- This type of service-catalog service-management mechanism may allow the cloud-management platform to improve a characteristic of a service, where the improved characteristic might comprise, but is not limited to, reliability, compatibility, robustness, performance, efficiency, or conformance with a standard or with a convention of the cloud-computing environment.
- a cloud-computing service may comprise one or more software applications running all or in part on a virtual machine that is provisioned on a physical computer of the cloud-computing environment.
- the physical machine may run an operating system and the virtual machine may run as a function of hypervisor software that runs under the operating system.
- a service that runs all or in part on such a virtual machine may be described in an associated service-catalog entry as being associated with a certain version of a software application, hypervisor, operating system, or other software, or as further requiring a certain configuration of a physical or virtual computer system, peripheral device, communications resource, or infrastructure.
- Such a description may enable the cloud-management system to offer standardized services that may be more readily interchangeable, predictable, stable, or robust, and that may be more reliably and efficiently deployed.
- cloud-computing environments almost always comprise virtual computing resources
- a virtualized computing environment may be a “non-cloud” computing environment.
- Both types of virtualized environments may comprise two distinct types of platforms: a “manage from” platform that may comprise entities and resources like computers, storage devices, and memory units and that maintains and provides virtual services; and a “manage to” platform that comprises entities and resources like computers, storage devices, memory units, and networks, onto which virtual services may be provisioned by the “manage from” platform.
- Cloud and non-cloud virtual computing environments may differ, however, in the way that resources are organized into these two types of platforms.
- “manage from” and “manage to” platforms may be maintained as physically distinct computing resources, wherein the “manage from” platform (the “cloud-management” platform) provisions services onto the “manage to” platform (the “cloud”).
- the “manage from” and the “manage to” platforms may share the same resources.
- a virtual service offered by a “manage from” cloud-management platform in a cloud-computing environment may be described in an entry in a service catalog.
- such an entry may be generated automatically by a component of the cloud-management platform or by software associated with the cloud-management platform.
- a service that is running on a virtual machine may not be associated with an entry in a service catalog because the service was not originally provisioned as part of a partitioned cloud-computing environment.
- it may not be possible to automatically generate a service-catalog entry for a migrated or integrated non-cloud service because a virtual machine associated with the non-cloud service was not provisioned as part of the cloud-computing environment; was configured with hardware, software, or communications settings that do not conform to a standard of, a convention of, or are not optimized for, the cloud-computing environment; or because the service was configured to run on physical or virtual hardware, software, or communications resources that do not conform to a standard or convention of, or are not optimized for, the cloud-computing environment.
- a data center that comprises both a cloud-computing environment and a legacy non-cloud computing environment.
- the two environments may each comprise several thousand virtual machines, storage devices, and networking resources configured in a same data center, where machines in one environment may have no knowledge of the other's virtual resources.
- non-cloud virtual resources may be provisioned in the non-cloud environment using heterogeneous hardware and using heterogeneous hypervisors, it may be difficult or impossible for the non-cloud “manage from” management platform to perform tasks such as the startup, shutdown, provisioning, decommissioning, and attribute revisioning of the non-cloud virtual resources.
- Migrating management of such resources to a cloud-computing environment may provide a common control mechanism that greatly simplifies management tasks because services within the cloud-computing environment that are described in the cloud-computing environment's service catalog may conform to standards that are more easily managed by the cloud-computing environment's cloud-management platform.
- Such a migration may require a review and assessment of all physical and virtual attributes of the virtual machines, operating systems, and application programs provisioned on the non-cloud virtual environment, and of the physical infrastructure on which such virtual machines, operating systems, and applications run.
- Such a review may comprise considerations that include, but are not limited to, relationships among virtual machines, operating systems, and application programs; dependencies of the virtual machines, operating systems, and application programs on underlying physical infrastructure; creation of a list of services provisioned in the non-cloud virtual environment and addition of the list of services into the cloud-computing environment's service catalog as a set of unique entries; migration of these services to the cloud-computing environment; testing to ensure conformance of the migrated services with standards or conventions of the cloud-computing environment; and further testing to ensure that the functionality of the migrated services is an appropriate function of the functionality that was provided by analogous services in the non-cloud virtual environment.
- Embodiments of the present invention address this issue with a method of automatically generating a cloud-computing environment service-catalog entry for a virtual business application or other virtual service that is already running on a virtual machine provisioned in a non-cloud environment.
- This task may comprise steps of analyzing and correlating information about the service and about the cloud-computing environment, where that information may be generated by automated application-discovery and infrastructure-discovery tools.
- An application-discovery tool is a hardware or software tool that may probe infrastructure and resources of a computing environment in order to identify, characterize, and inventory applications running on the computing environment's remote infrastructure. Such a tool may create a topological view of a computing environment that allows an administrator or other individual to identify dependencies among applications, wherein a dependency between two applications may exist if a certain implementation or a configuration of a first application is allowable only if associated with a particular implementation or a configuration of a second application.
- a task of deploying a 64-bit version of a word processor may depend upon first provisioning a 64-bit virtual machine on a physical host computer that comprises a 64-bit processor. In this way, an application-discovery tool may provide insight into characteristics of a complex application infrastructure.
- An application-discovery tool may further provide information about complex interdependencies among servers, applications, network devices, software, configuration files, operating systems and other IT infrastructure components. Such functionality may allow system administrators to more easily identify and troubleshoot configuration-related application problems, and to more efficiently perform functions like incident management, resource allocation, and critical-resource monitoring.
- Some application-discovery tools may further perform more specialized functions like identifying resources that are not actively being monitored, tracking changes to, or other characteristics of, virtual resources, or identifying a way in which a proposed change might affect a dependency, a resource allocation, or an other characteristic of a component of a computing environment.
- infrastructure-discovery tools generally identify, characterize, and catalog hardware and software infrastructure components of a computing environment, rather than application software.
- infrastructure components may comprise, but are not limited to, servers, storage devices, other types of peripherals, communications devices, virtualization software, middleware, operating systems, and other types of hardware or software entities that create a computing platform upon which applications may be run.
- an infrastructure-discovery tool may generate a topological or an other type of graphical depiction of a computing environment.
- Some infrastructure-discovery tools may automatically identify logical dependencies and other relationships among servers and other infrastructure components, utilization trending data and other information that enables administrators to rationalize, virtualize, or consolidate assets to improve operational efficiency, and risk analyses, including identification of an outdated operating system or middleware, a misconfigured or orphan servers, and redundant middleware or other components.
- An infrastructure-discovery tool's ability to generate and help users navigate custom views of large data sets may further facilitate other sophisticated functions.
- Embodiments of the present invention may interoperate both with application-discovery tools and infrastructure-discovery tools known to those skilled in the art of cloud computing today, and with application-discovery tools and infrastructure-discovery tools that may be developed in the future.
- FIG. 1 shows the structure of a computer system and computer program code that may be used to implement a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention.
- FIG. 1 refers to objects 101 - 115 .
- aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.”
- the present invention may take the form of a computer program product comprising one or more physically tangible (e.g., hardware) computer-readable medium(s) or devices having computer-readable program code stored therein, said program code configured to be executed by a processor of a computer system to implement the methods of the present invention.
- the physically tangible computer readable medium(s) and/or device(s) that store said program code, said program code implementing methods of the present invention, do not comprise a signal generally, or a transitory signal in particular.
- the computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium.
- the computer-readable storage medium may be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
- a computer-readable storage medium or device may include the following: an electrical connection, 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), Radio Frequency Identification tag, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
- a computer-readable storage medium may be any physically tangible medium or hardware device that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- a computer-readable signal medium may include a propagated data signal with computer-readable program code embodied therein, for example, a broadcast radio signal or digital data traveling through an Ethernet cable.
- a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic signals, optical pulses, modulation of a carrier signal, or any combination thereof.
- Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless communications media, optical fiber cable, electrically conductive cable, radio-frequency or infrared electromagnetic transmission, etc., or any suitable combination of the foregoing.
- Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including, but not limited to programming languages like Java, Smalltalk, and C++, and one or more scripting languages, including, but not limited to, scripting languages like JavaScript, Perl, and PHP.
- the program code 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.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN), a wide area network (WAN), an intranet, an extranet, or an enterprise network that may comprise combinations of LANs, WANs, intranets, and extranets, or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- LAN local area network
- WAN wide area network
- intranet an extranet
- enterprise network may comprise combinations of LANs, WANs, intranets, and extranets
- an Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
- These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data-processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture, including instructions that implement the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer 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 that execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- FIGS. 1-4 illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of code, wherein the module, segment, or portion of code comprises one or more executable instructions for implementing one or more specified logical function(s).
- 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.
- computer system 101 comprises a processor 103 coupled through one or more I/O Interfaces 109 to one or more hardware data storage devices 111 and one or more I/O devices 113 and 115 .
- Hardware data storage devices 111 may include, but are not limited to, magnetic tape drives, fixed or removable hard disks, optical discs, storage-equipped mobile devices, and solid-state random-access or read-only storage devices.
- I/O devices may comprise, but are not limited to: input devices 113 , such as keyboards, scanners, handheld telecommunications devices, touch-sensitive displays, tablets, biometric readers, joysticks, trackballs, or computer mice; and output devices 115 , which may comprise, but are not limited to printers, plotters, tablets, mobile telephones, displays, or sound-producing devices.
- Data storage devices 111 , input devices 113 , and output devices 115 may be located either locally or at remote sites from which they are connected to I/O Interface 109 through a network interface.
- Processor 103 may also be connected to one or more memory devices 105 , which may include, but are not limited to, Dynamic RAM (DRAM), Static RAM (SRAM), Programmable Read-Only Memory (PROM), Field-Programmable Gate Arrays (FPGA), Secure Digital memory cards, SIM cards, or other types of memory devices.
- DRAM Dynamic RAM
- SRAM Static RAM
- PROM Programmable Read-Only Memory
- FPGA Field-Programmable Gate Arrays
- SIM cards SIM cards, or other types of memory devices.
- At least one memory device 105 contains stored computer program code 107 , which is a computer program that comprises computer-executable instructions.
- the stored computer program code includes a program that implements a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention, and may implement other embodiments described in this specification, including the methods illustrated in FIGS. 1-4 .
- the data storage devices 111 may store the computer program code 107 .
- Computer program code 107 stored in the storage devices 111 is configured to be executed by processor 103 via the memory devices 105 .
- Processor 103 executes the stored computer program code 107 .
- the present invention discloses a process for supporting computer infrastructure, integrating, hosting, maintaining, and deploying computer-readable code into the computer system 101 , wherein the code in combination with the computer system 101 is capable of performing a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines.
- any of the components of the present invention could be created, integrated, hosted, maintained, deployed, managed, serviced, supported, etc. by a service provider who offers to facilitate a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines.
- the present invention discloses a process for deploying or integrating computing infrastructure, comprising integrating computer-readable code into the computer system 101 , wherein the code in combination with the computer system 101 is capable of performing a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines.
- One or more data storage units 111 may be used as a computer-readable hardware storage device having a computer-readable program embodied therein and/or having other data stored therein, wherein the computer-readable program comprises stored computer program code 107 .
- a computer program product (or, alternatively, an article of manufacture) of computer system 101 may comprise said computer-readable hardware storage device.
- program code 107 for generating a service-catalog entry from discovered attributes of provisioned virtual machines may be deployed by manually loading the program code 107 directly into client, server, and proxy computers (not shown) by loading the program code 107 into a computer-readable storage medium (e.g., computer data storage device 111 ), program code 107 may also be automatically or semi-automatically deployed into computer system 101 by sending program code 107 to a central server (e.g., computer system 101 ) or to a group of central servers. Program code 107 may then be downloaded into client computers (not shown) that will execute program code 107 .
- a central server e.g., computer system 101
- Program code 107 may then be downloaded into client computers (not shown) that will execute program code 107 .
- program code 107 may be sent directly to the client computer via e-mail.
- Program code 107 may then either be detached to a directory on the client computer or loaded into a directory on the client computer by an e-mail option that selects a program that detaches program code 107 into the directory.
- Another alternative is to send program code 107 directly to a directory on the client computer hard drive. If proxy servers are configured, the process selects the proxy server code, determines on which computers to place the proxy servers' code, transmits the proxy server code, and then installs the proxy server code on the proxy computer. Program code 107 is then transmitted to the proxy server and stored on the proxy server.
- program code 107 for generating a service-catalog entry from discovered attributes of provisioned virtual machines is integrated into a client, server and network environment by providing for program code 107 to coexist with software applications (not shown), operating systems (not shown) and network operating systems software (not shown) and then installing program code 107 on the clients and servers in the environment where program code 107 will function.
- the first step of the aforementioned integration of code included in program code 107 is to identify any software on the clients and servers, including the network operating system (not shown), where program code 107 will be deployed that are required by program code 107 or that work in conjunction with program code 107 .
- This identified software includes the network operating system, where the network operating system comprises software that enhances a basic operating system by adding networking features.
- the software applications and version numbers are identified and compared to a list of software applications and correct version numbers that have been tested to work with program code 107 . A software application that is missing or that does not match a correct version number is upgraded to the correct version.
- a program instruction that passes parameters from program code 107 to a software application is checked to ensure that the instruction's parameter list matches a parameter list required by the program code 107 .
- a parameter passed by the software application to program code 107 is checked to ensure that the parameter matches a parameter required by program code 107 .
- the client and server operating systems including the network operating systems, are identified and compared to a list of operating systems, version numbers, and network software programs that have been tested to work with program code 107 .
- An operating system, version number, or network software program that does not match an entry of the list of tested operating systems and version numbers is upgraded to the listed level on the client computers and upgraded to the listed level on the server computers.
- program code 107 After ensuring that the software, where program code 107 is to be deployed, is at a correct version level that has been tested to work with program code 107 , the integration is completed by installing program code 107 on the clients and servers.
- Embodiments of the present invention may be implemented as a method performed by a processor of a computer system, as a computer program product, as a computer system, or as a processor-performed process or service for supporting computer infrastructure.
- FIG. 2 is a flow chart that illustrates steps of a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention.
- FIG. 2 contains steps 201 - 207 .
- Step 201 begins an analysis of one or more services that are associated with one or more virtual machines, where the one or more virtual machines may have been provisioned on, or are otherwise hosted by, physical resources of an existing computing environment.
- This existing computing environment may comprise a combination of both non-cloud environments and cloud-computing environments.
- An objective of this analysis is to migrate a service of the one or more services to a target cloud-computing environment by automatically generating an entry in a service catalog of the target cloud-computing environment, where the automatically generated entry describes the service to be migrated.
- some physical or virtual components or resources may be comprised by both the existing computing environment and the target cloud-computing environment.
- This analysis may be performed by functions of a cloud-management platform of the target cloud-computing environment.
- This cloud-management platform performs tasks related to offering a virtualized “cloud” service to users of the cloud-computing environment, where the offering is a function of an entry in the target cloud-computing environment's service catalog, and where that entry describes a characteristic of the offered virtualized cloud service.
- the analysis begins by using one or more infrastructure-discovery tools, which may be known to those skilled in the art of cloud computing, to identify the physical infrastructure resources of the existing computing environment, including virtual machines that are provisioned or hosted in the existing computing environment.
- infrastructure-discovery tools which may be known to those skilled in the art of cloud computing, to identify the physical infrastructure resources of the existing computing environment, including virtual machines that are provisioned or hosted in the existing computing environment.
- the one or more infrastructure-discovery tools traverse the existing computing environment in order to capture information describing the environment's physical infrastructure.
- This physical infrastructure may comprise, but is not limited to, a CPU, a storage device, a network interface, an other interface, an other peripheral device, an area of memory, an other internal component of the first physical computer, a physical or virtual connection between the first physical computer and an other physical device, and a physical or virtual connection between the first physical computer and a virtual entity running on the other physical device.
- Infrastructure may also comprise system software, such as an operating system or a hypervisor.
- the infrastructure-discovery tool may further determine which components and resources of the existing computing environment are associated with a virtual machine of the one or more virtual machines, and may further determine a virtual network configuration allocated to a virtual infrastructure abstraction of the physical infrastructure of the existing computing environment.
- the infrastructure-discovery tool may present this information as a topological or an other type of graphical depiction of the one or more provisioned virtual machines and their relationships to the existing computing environment and may automatically identify logical dependencies and other relationships among virtual machines, infrastructure components, and other resources of the existing computing environment.
- Step 203 continues the analysis began in step 201 by using one or more application-discovery tools, which may be known to those skilled in the art of cloud computing, to probe the infrastructure discovered in step 201 in order to discover the software applications that are installed or running on the virtual and physical resources identified in step 201 .
- the application-discovery tool may also identify characteristics of the discovered applications, such as revision levels, dependencies upon other software, hardware, communications, or other resources, or configuration settings.
- Step 205 continues the analysis of steps 201 and 203 by correlating and analyzing the results of the infrastructure-discovery and application-discovery operations of steps 201 and 203 .
- This continued analysis may comprise a variety of implementation-dependent steps that are functions of the existing or the target computing environment, of a characteristic of a physical or virtual resource or infrastructure component of the existing or the target computing environment, of a software resource or software component of the existing or the target computing environment, of a goal of an entity that owns, manages, or uses a resource or component of the existing or the target computing environment, or of issues related to platform constraints, configuration constraints, revision levels, power, efficiency, productivity, licensing, contractual terms, or other factors.
- the continued analysis of step 205 may comprise identifying a unique application installed on a virtual machine discovered in step 201 .
- the continued analysis of step 205 may comprise using information that may have been discovered in step 201 or step 203 to build a list of software applications installed on the one or more virtual machines of the existing computing environment in order to build a list of unique possible combinations of virtual machines provisioned in the existing computing environment and applications that may be deployed on those virtual machines, wherein a possible combination of the list of unique possible combinations may be deemed “possible” only if it satisfies a condition.
- the continued analysis of step 205 may comprise comparing a first characteristic of a first configuration a first virtual machine to a second characteristic of a second configuration of a second virtual machine, where the first and second configurations may have been discovered in step 201 or step 203 , where the first virtual machine and the second virtual machine may each be deployed on either a same component or on distinct components of the physical infrastructure of the existing computing environment, and where the same component or the distinct components may each comprise one or more physical infrastructure resources that may include, but are not limited to, a CPU, memory, storage device, communications network, or other infrastructure component or resource.
- the continued analysis of step 205 may comprise using information that may have been discovered in step 201 or step 203 to build a unique list of operating systems by comparing a patch revision level or an operating system revision level of a first operating system installed on the first virtual machine with a patch revision level or an operating system revision level of a second operating system installed on the first virtual machine.
- the continued analysis of step 205 may comprise using information that may have been discovered in step 201 or step 203 to build a list of unique virtual machines provisioned in the existing operating environment, where a pair of virtual machines in this list may be deemed unique and distinct by discounting a difference of a value of a parameter, such as a characteristic of a CPU, memory, storage, or communications resource, associated with each of the two virtual machines, and where the hypervisors associated with the two virtual machines are configured to permit the difference between the values of the parameter.
- a parameter such as a characteristic of a CPU, memory, storage, or communications resource
- the continued analysis of step 205 may comprise using information that may have been discovered in step 201 or step 203 to build a list of unique virtual machines provisioned in the existing operating environment, where a pair of virtual machines in this list may be deemed unique and distinct as a function of a comparison of a first virtual network configuration of a first hypervisor of a first virtual machine of the pair of virtual machines with a second virtual network configuration of a second hypervisor of a second virtual machine of the pair of virtual machines, where each virtual network configuration is used by its associated hypervisor to manage resources comprised by the physical infrastructure of the existing operating environment.
- the continued analysis of step 205 may comprise using information discovered in steps 201 and 203 to facilitate a querying of a classification software application to retrieve a configuration attribute for a discovered application.
- the classification software application may be comprised by an application-discovery tool.
- the cloud-management platform may have used information discovered in steps 201 and 203 to assemble lists of combinations of applications, virtual machines, or other virtual or physical infrastructure and software components and resources of the existing computing environment, and may have analyzed and organized entries of these lists in order to reduce or eliminate redundant entries, duplicate entries, or types of other entries that satisfy or fail to satisfy a condition.
- step 207 the virtual machines and associated resources and components discovered in steps 201 and 203 are brought under the administrative control of the cloud-management platform by using information in the lists generated in step 205 to automatically generate entries to be added to the cloud-computing environment's service catalog.
- Such an automatically generated entry describes a characteristic of a service that may be offered to a user by the cloud-management platform, where the service may be provided to the user upon request, where that function may comprise one or more applications running on one or more virtual machines, and where the one or more virtual machines and associated applications are provisioned or run by the cloud-management platform in response to the user's request.
- the configuration, settings, or other requirements of the instantiation of virtual resources that are provisioned or run in order to provide the requested service, as well as physical hardware and software resources needed to provision or run the instantiation and its associated applications, are specified in the service's corresponding service-catalog entry.
- the information stored in an automatically generated service-catalog entry may thus describe a characteristic of a particular combination of physical and virtual resources that must be deployed in the target computing requirement when a user requests a service associated with the entry.
- Step 205 determines such entry information as a function of information discovered in steps 201 and 203 about applications and infrastructure in the existing computing environment.
- the cloud-management platform of the target computing environment may thus be able to use information stored in an automatically generated service-catalog entry to determine how to provision and configure resources of the existing computing environment needed to provide a requested service, where that provisioning and configuring may include provisioning a virtual machine or deploying a new instance of an application program according to specifications or configuration rules specified by the entry.
- Such an automatically generated entry may describe a service that will be added to the list of services offered by the cloud-computing environment, wherein the added service may be associated with a unique combination of physical and virtual resources of the existing computing environment.
- an automatically generated service-catalog entry may describe a virtual machine that has exactly the same configuration or an other characteristic of a virtual machine discovered in step 201 or 203 .
- a configuration or characteristic may be a function of parameters that comprise, but are not limited to, combinations of a size of RAM memory, a hard drive capacity, a revision level, or a number or type of network interface cards.
- a service entry may describe a unique combination of components and characteristics that may comprise, but are not limited to: an operating system, an installed operating system patch or upgrade, an infrastructure component, a middleware application (such as an installation of the WebLogic Server e-commerce transaction platform), a software revision level, or an other application attribute (such as a Java heap size, a communications configuration, or a security setting).
- an automatically generated service-catalog entry may comprise a description of a deployment pattern or of a deployment workflow.
- an automatically generated service-catalog entry may be formatted or structured in compliance with an open-standard format, such as the Open Virtualization Format (OVF) standard (ANSI standard INCITS 469-2010) for packaging and distributing virtual appliances and other types of software that runs on a virtual machine, or an other standard or commonly practiced or known standard or convention.
- OVF Open Virtualization Format
- all or part of the procedure of FIG. 2 may be packaged or implemented as a Service-Catalog Generation Utility or Service-Catalog Entry Generation Utility.
- This package or implementation may comprise either a distinct software application or module or may be comprised by one or more components of one or more cloud-management platforms.
- an automatically generated service-catalog entry may comprise a unique or minimal combination of operating-system and application software attributes.
- a cloud-management platform may provision a business application or virtual service one virtual machine and application at a time.
- This more granular approach to deployment or provisioning of business applications and services may facilitate adherence to relationships, dependencies, and other constraints among virtual machines and applications, and may help ensure the cloud-management platform's ability to perform required application-management functions, such as application startup, configuration, updating, and shutdown.
- the relationships, dependencies, and other constraints may be related to entities that comprise, but are not limited to, network connections, network port selection, file-system permissions, and cluster configurations.
- the analysis of step 205 comprises a determination of a list of unique applications installed on virtual machines of the existing computer platform and an automatic generation of one or more service entries that each describe a service to be offered by the target cloud-computing environment, wherein each described service is a function of one or more unique application of the list of unique applications.
- an automatically generated service-catalog entry may comprise a unique or minimal combination of operating system and application software attributes.
- an automatically generated service-catalog entry may make it possible for a cloud-management platform to allow a user to provision a corresponding business application by means of a self-service user interface.
- an automatically generated service-catalog entry may describe an entire topology of the business application.
- An automatically generated service-catalog entry that comprises discovered physical and logical attributes of an entity of the existing computing environment may specify that no changes to these attributes should be allowed when a user requests a service in the target computing environment based on the entry.
- such an entry may describe a legacy application for which little or no support is available in the target cloud-computing environment.
- An automatically generated service-catalog entry that comprises discovered physical and logical attributes of an entity of the existing computing environment may specify that a subset of attributes described by the entry may not be changed in a certain way or under certain conditions during instantiation of a service described by the entry.
- a service-catalog entry might, for example, be configured to bar a cloud-management platform or a user from changing certain characteristics of virtualized network interface cards deployed on a virtual machine associated with the entry.
- An automatically generated service-catalog entry may comprise a partial or complete logical representation or other function of discovered physical and logical attributes of an entity of the existing computing environment. In some cases, such an entry may describe a legacy application for which little or no support is available in the target cloud-computing environment.
- an automatically generated service-catalog entry may comprise a description of one or more characteristics of a virtual storage medium provisioned in the existing computing environment, such as a hard-drive image, or a description of a clone of a virtual machine provisioned in the existing computing environment.
- Such an entry may describe a characteristic of one or more configured software applications or of a characteristic of a virtual machine such as a CPU, memory, storage, or communications configuration, dependency, or an other requirement.
- an automatically generated service-catalog entry may comprise a description of a service offering or business application that comprises a grouping of one or more component services described in the service catalog.
- Such a component services may each comprise one or more applications, where the one or more component services were discovered by the application-discovery tool in step 203 to be related to each other as unique virtual machines on which related, discovered software applications are deployed; or as a combination of related applications with a combination virtual machines wherein instances of an application of the combination of applications may be deployed with distinct or unique configurations.
- an automatically generated service-catalog entry may comprise a base operating-system image that specifies a particular patch or upgrade of an application, of an operating software entity, of an other physical or virtual resource, or of a combination thereof.
- a first service may comprise a first virtual machine running a RedHat v5.4 operating system and a WebLogic Server v10.3.4 application-server middleware and a second service may comprise a second virtual machine running RedHat 5.4 with WebLogic Server 10.3.5.
- Some embodiments of the present invention might automatically generate a service-catalog entry that describes characteristics of both operating-system software and application software entities associated with a discovered virtual machine.
- the two exemplary virtual-machine deployments enumerated above might be represented by two automatically generated service-catalog entries.
- a first entry might describe a first service “RHEL54_WLS1034,” which comprises deployment of RedHat v5.4 and WebLogic Server v10.3.4; and a second entry might describe a second service “RHEL54_WLS1035,” which comprises deployment of RedHat v5.4 and WebLogic Server v10.3.5.
- an automatically generated service-catalog entry might describe either operating-system software or application software entities, but not both.
- the two virtual-machine deployments enumerated above might spawn three two automatically generated service-catalog entries, each of which describes characteristics of one distinct discovered software entity, not in combination with any other entity.
- a first entry might describe a “RHEL54” first service based on a virtual machine running the RedHat v5.4 operating system;
- a second entry might describe a “WLS_1034 deployment pattern” second service based on a deployment of WebLogic Server v10.34;
- a third entry might describe a “WLS_1035 deployment pattern” third service based on a deployment of WebLogic Server v10.3.5.
- a cloud-management platform might be able to layer one or more automatically generated service-catalog entries in order to build an offered service or business application that may be provisioned on more than one virtual machine.
- automatically generated service catalog entries may each comprise a common “application representation,” where an application representation might specify a unique or specific combination of virtual or physical platform or infrastructure components or resources, such as a specific combination of revisions of a Web server operating system and a database-management system application.
- the cloud-management platform of the target computing environment may collaborate with resources or platforms of one or more remote cloud-computing environments to identify service offerings that may match information discovered in steps 201 and 203 , and may automatically generate a service-catalog entry that requires federation with a resource or platform of a remote cloud-computing environment in order to instantiate that entry when a service requested by a user.
- an automatically generated service-catalog entry may be further generated as a function of other conditions.
- an other condition may be a rule that constrains a choice of physical location for deployments of a certain combination of application and system software entities.
- An software vendor's extrinsic collocation requirement might require an automatically generated service-catalog entry to constrain a service comprising two instances of the vendor's database-management application, each running on a distinct virtual machine, to be instantiated on two hosts that are anti-collocated (that is, installed at different sites).
- an automatically generated service-catalog entry may be designated as being accessible only to cloud administrators or to other authorized users.
- Methods in conformance with embodiments of the present invention may comprise other variations of the method of FIG. 2 when automatically generating service-catalog entries as a function of infrastructure and application information discovered in steps 201 and 203 .
- Examples cited in this document are for illustrative purposes only and are not meant to limit embodiments of the present invention to characteristics specific to those examples.
- FIG. 3 shows an example of a non-cloud computing environment, as described in FIG. 2 .
- the narrative below correlates FIG. 2 and FIG. 3 by showing how the method of FIG. 2 would automatically generate service-catalog entries for the non-cloud computing environment shown in FIG. 3 .
- FIG. 3 comprises items 301 - 329 .
- FIG. 3 shows an existing non-cloud computing environment that comprises three physical servers 301 , 311 , and 319 connected to a network backbone 329 .
- Server01 301 hosts one virtual machine VM1-1 303 , which in turn runs an instance of the Red Hat Enterprise Linux 5.4 operating system (RHEL 5.4) and the Oracle WebLogic Server 10.3.4 (WLS 10.3.4) application-server middleware.
- Three Java virtual-machine applications 305 - 309 run on virtual machine VM1-1 303 .
- Server02 311 hosts two virtual machines VM2-1 313 and VM2-2 315 , each of which run an instance of the Red Hat Enterprise Linux 5.3 operating system (RHEL 5.4) and the Apache 2.2 middleware.
- An open-source domain name system (DNS) application package bind97-9.7.0.17.P2.e15_9.1.i386.rpm 317 is installed on the second virtual machine VM2-2 315 .
- DNS domain name system
- Server03 hosts two virtual machines VM3-1 321 and VM3-2 323 , each of which run an instance of the IBM AIX 6.1 operating system in a distinct logical partition.
- a first instance of the Oracle database-management system application 325 version 11.2.0.2, is installed on the first virtual machine VM3-1 321 and a second instance of the Oracle database-management system application 327 , version 11.2.0.2, is installed on the second virtual machine VM3-1 321 .
- the method of FIG. 2 may be used to migrate the business applications or services running on these three servers in the non-cloud virtualized existing computing environment of FIG. 3 to a target cloud-computing environment, by automatically generating a set of unique entries for a service catalog of the target cloud-computing environment, where each entry may describe all or part of one or more of these business applications or services, and where each automatically generated service-catalog entry is unique and distinct from any other entry in the service catalog.
- the cloud-computing environment requests the application, or an associated service, from the cloud-management platform.
- the cloud-management platform refers to the service catalog in order to identify one or more entries of the service catalog that describes characteristics of the requested service. If the cloud-management platform identifies such an entry or entries, it may use information in those identified entries to provision resources necessary to provide the requested application or service.
- the information in those entries may comprise, but is not limited to, a listing of components of an application and components of an operating environment in which the application components are installed and launched, a description of configuration settings or revision levels of the application and the operating environment, and descriptions of other virtual or physical resources required in order to provide the requested business application or services.
- the method of FIG. 2 begins with an analysis step wherein a cloud-management platform of the target cloud-computing environment receives information from an infrastructure-discovery tool that analyzes the existing computing environment. This received information may describe the virtual and physical infrastructure of the existing computing environment.
- the infrastructure-discovery tool returns information that describes the three servers 301 , 311 , and 319 , identifying one virtual machine VM1-1 303 running Red Hat 5.4 and WebLogic Server 10.3.4 on Server01 301 , two virtual machines VM2-1 313 and VM2-2 315 running Red Hat 5.3 and Apache 2.2 on Server02 311 , and two virtual machines VM3-1 323 and VM3-2 323 running AIX 6.1 on Server03 319 .
- the infrastructure-discovery tool may further return additional information related to the configuration of physical and virtual resources related to each virtual machine, such as the number, speed, and type of network interfaces used by each virtual machine, the operating system or hypervisor under which each virtual machine runs, or the quantity and type of secondary storage available to each virtual machine.
- This returned information may take the form of raw, enumerated listings of data or may be presented as a topology that describes connectivity and dependencies among discovered virtual machines and their associated physical and virtual resources.
- the cloud-management platform of the target cloud-computing environment next receives information from an application-discovery tool that analyzes applications running on the existing computing environment infrastructure components discovered by the infrastructure-discovery tool.
- the cloud-management platform would receive information from the application-discovery tool that identifies the three Java VM applications, 305 , 307 , and 309 , running on virtual machine VM1-1 301 , the bind97 application running on virtual machine VM2-2 317 , a first instance of the Oracle database-management application 325 running on virtual machine VM3-1 321 , and a second instance of the Oracle database application 327 running on virtual machine VM3-2 323 .
- the method of the present invention might then perform implementation-dependent comparison and analysis functions, including, but not limited to, those discussed above in the description of step 205 of FIG. 2 , in order to generate a set of service-catalog entries that describe the business applications or services illustrated in FIG. 3 .
- Such entries may be in an open-source format, as described above, or may be in an other implementation-dependent form dictated all or in part by a characteristic of the cloud-computing environment.
- These automatically generated entries may each be unique or distinct, but in some embodiments, when necessary in order to accurately represent the business applications or services being imported into the cloud-computing environment, some entries may share duplicate or redundant information.
- these automatically generated service-catalog entries may be represented logically as records that each comprise an “Image Name” service-identifier field and a “Deployment Details” field that describes characteristics of a standardized virtual machine to be provisioned in order to provide the service.
- record 1 represents a service-catalog entry generated from received discovery-tool information that describes virtual machine VM1-1 301 .
- record 1 identifies the Red Hat 5.4 (“RHEL54”) operating system and WebLogic Server 10.3.4 (“WLS1034”) middleware running on virtual machine VM1-1 301 , and further describes discovered characteristics of the virtual machine associated with this business application or service.
- RHEL54 Red Hat 5.4
- WLS1034 WebLogic Server 10.3.4
- the virtual machine might comprise a virtual four-core Intel x86 processor configured with 8 GB of RAM memory, a 100-GB hard drive, and three network interface cards, wherein the configuration of this virtual machine may be a function of the configuration of discovered virtual machine VM1-1 301 in the existing computing environment, or may be a further function of a characteristic of the target cloud-computing environment.
- entries in this listing represent business applications or virtual services provided by the other virtual machines 303 , 313 , 315 , 321 , and 323 of FIG. 3 .
- many other possible combinations of physical hosts or servers, virtual machines, operating systems, middleware, applications, hardware components, communications devices, and other physical or virtual resources may be discovered and used to automatically generate service-catalog entries.
- the method of FIG. 2 might create a single service-catalog entry for a business application or service that comprises all five virtual machines shown in FIG. 3 and discovered by the infrastructure-discovery and application-discovery tools.
- characteristics of the existing computing platform and target cloud-computing platform may determine whether such a result is appropriate.
- this single entry might contain additional or different information, such as a system-configuration detail of a virtual machine or of a virtual peripheral associated with the virtual machine.
- the method of FIG. 2 might create distinct service-catalog entries for each system-software component and middleware component, possibly allowing the cloud-management platform to provide users the flexibility to request combinations of the business applications and services represented by the more granular entries.
- One example of such an embodiment is the below representation of service-catalog entries generated automatically by the method of FIG. 2 from the example existing computing environment of FIG. 3 .
- each record in the table is a logical representation of a business application or virtual service that may be provided by the cloud-management platform, where the business application or virtual service is a function of applications and services discovered running on virtualized resources in the existing computing environment.
- An automatically generated entry may, for example, describe only a particular revision level of an operating-software component, such as “RHEL 5.4 32 bit”.
- an entry might describe both the operating-software component and a deployment workflow for installing a specific patch to the software, such as “RHEL 5.4 32 bit with bind97 package.”
- an automatically generated service-catalog entry might represent a deployment workflow dependency, wherein installation of a “bind97” patch is dependent upon prior installation of a RHEL5.4 operating system.
- the dependency represented in the automatically generated service-catalog entry would bar a user from requesting a service to be configured to run under a RHEL5.6 operating system with a bind97 patch.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
- This application is a continuation application claiming priority to Ser. No. 13/971,883, filed Aug. 21, 2013.
- The present invention relates to managing a catalog of services in a cloud-computing environment.
- A cloud-computing management platform that manages a cloud-computing environment may maintain a service catalog that describes services that the cloud-computing environment can provide. When a user requests a service described by an entry in the service catalog, the cloud-computing management platform uses information comprised by the entry to provide the requested service by provisioning a virtual machine or by installing, configuring, or otherwise deploying application software. Fulfilling the user's request may further comprise, but is not limited to, provisioning, deprovisioning, or modifying an attribute of the service described by the entry in the service catalog.
- A virtual machine that is provisioned in an existing virtualized computing environment, where that existing virtualized environment is not a cloud-computing environment, may not be described in such a service catalog. One step of importing that virtual machine and the business applications or services it provides into a cloud-computing environment is generating and entering an entry for the virtual machine, applications, or services into the cloud-computing environment's service catalog.
- Such generating, however, generally cannot be performed by an automated means because, among other possible reasons, the virtual machine may be provisioned or configured in a way that does not conform with characteristics of services offered by the cloud-computing environment or with an other convention or standard of the cloud-computing environment. Resolving such issues may require a manual entry-generation procedure that may be cumbersome, vulnerable to error, or time-consuming. When a large enterprise must migrate thousands of such non-cloud virtual machines into a cloud-computing environment, generating corresponding service-catalog entries may become extraordinarily resource-intensive.
- A first embodiment of the present invention provides a method for automatically generating an entry of a service catalog of a cloud-computing environment, wherein the cloud-computing environment comprises a cloud-management platform, wherein the cloud-management platform comprises a processor of a computer system that has access to an infrastructure-discovery tool and an application-discovery tool, and wherein the entry describes a characteristic of a virtual service provided by the cloud-computing environment, the method comprising:
- the processor receiving infrastructure information about a virtualized computing infrastructure from the infrastructure-discovery tool, wherein the virtualized computing infrastructure comprises a first physical computer that runs a first application on a first virtual machine, and wherein the received information comprises a characteristic of the first virtual machine;
- the processor further receiving application information about a characteristic of the first application from the application-discovery tool; and
- the processor generating the entry as a function of the infrastructure information and the application infrastructure.
- A second embodiment of the present invention provides a computer program product, comprising a computer-readable hardware storage device having a computer-readable program code stored therein, said program code configured to be executed by a processor of a computer system to implement a method for automatically generating an entry of a service catalog of a cloud-computing environment, wherein the cloud-computing environment comprises a cloud-management platform, wherein the cloud-management platform comprises the processor of the computer system, wherein the processor of the computer system has access to an infrastructure-discovery tool and an application-discovery tool, and wherein the entry describes a characteristic of a virtual service provided by the cloud-computing environment, the method comprising:
- the processor receiving infrastructure information about a virtualized computing infrastructure from the infrastructure-discovery tool, wherein the virtualized computing infrastructure comprises a first physical computer that runs a first application on a first virtual machine, and wherein the received information comprises a characteristic of the first virtual machine;
- the processor further receiving application information about a characteristic of the first application from the application-discovery tool; and
- the processor generating the entry as a function of the infrastructure information and the application infrastructure.
- A third embodiment of the present invention provides a computer system comprising a processor, a memory coupled to said processor, and a computer-readable hardware storage device coupled to said processor, said storage device containing program code configured to be run by said processor via the memory to implement a method for automatically generating an entry of a service catalog of a cloud-computing environment, wherein the cloud-computing environment comprises a cloud-management platform, wherein the cloud-management platform comprises the processor of the computer system, wherein the processor of the computer system has access to an infrastructure-discovery tool and an application-discovery tool, and wherein the entry describes a characteristic of a virtual service provided by the cloud-computing environment, the method comprising:
- the processor receiving infrastructure information about a virtualized computing infrastructure from the infrastructure-discovery tool, wherein the virtualized computing infrastructure comprises a first physical computer that runs a first application on a first virtual machine, and wherein the received information comprises a characteristic of the first virtual machine;
- the processor further receiving application information about a characteristic of the first application from the application-discovery tool; and
- the processor generating the entry as a function of the infrastructure information and the application infrastructure.
-
FIG. 1 shows the structure of a computer system and computer program code that may be used to implement a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention. -
FIG. 2 is a flow chart that illustrates steps of a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention. -
FIG. 3 shows an example of a non-cloud computing environment, as described inFIG. 2 . - The National Institute of Standards and Technology defines the term “cloud computing” as “a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.” The NIST also lists three “service models” (software, platform and infrastructure), and four “deployment models” (private, community, public and hybrid) that categorize ways that a cloud-computing environment may deliver cloud-based virtual services and business applications. See http://www.nist.gov/itl/csd/cloud-102511.cfm. In this document, a reference to a virtualized service, whether offered by a cloud-computing environment or provided by a virtual machine provisioned in a non-cloud environment, may generally be construed to comprising business applications.
- Here, the term “deployment” or “deployment workflow” refers to a set of activities that must be performed in order to make a software application or service usable, where such activities may comprise, but are not limited to, provisioning, deprovisioning, installation, configuration, activation, deactivation, versioning, updating, and otherwise modifying an attribute. A “deployment pattern” is a definition of a topology that describes characteristics of a deployment in such a way that the deployment may be more easily performed with consistency by multiple parties at different times. Such a topology may comprise a virtual image that comprises a virtualized resource and applications deployed in the image. In some cases, a deployment pattern may be limited to a single virtual machine or to a single set of application components deployed on one or more similar, identical, or heterogeneous virtual machines.
- In some embodiments of the present invention, a “cloud-computing environment” may comprise computing technology that uses central remote servers, connected through the Internet, an intranet, or other networking technology, to offer a service related to maintaining a user's data or applications. In some cloud implementations, a user may request such a service by selecting it from a “service catalog” maintained by a “cloud-management platform” of the cloud-computing environment.
- The present invention may operate in a cloud-computing environment that provisions and configures virtual resources provisioned on the cloud-computing environment's physical infrastructure, where those virtual resources may comprise, but are not limited to, combinations of virtual processor, virtual storage, and virtual networking components. Such virtual resources may be provisioned and configured as needed to host business applications and services requested by users from the environment's service catalog.
- Such a cloud-computing environment may further comprise a cloud-management platform that manages these cloud-computing services (wherein such cloud-computing services may comprise business applications). The cloud-management platform may provision a service as a function of characteristics of one or more virtual machines, of an application running on a virtual machine, or of combinations thereof. When a user requests such a service, the cloud-management platform may respond by taking one or more actions requested by the user, where an action of the one or more actions may comprise, but is not limited to, provisioning, deprovisioning, or modifying an attribute of a virtual resource on a physical component of the cloud-computing environment and by then launching one or more applications on the virtual machine.
- Such a service may be a function of the cloud-computing environment's physical or virtual resources, where these resources may comprise combinations of physical or virtual resources that may comprise one or more computers, communications resources, application software, system software, computers, peripheral devices, other assets related to any of these resources, and combinations thereof.
- The requested business application or service may be provided as a further function of a characteristic of any of these resources or assets, where a characteristic may comprise a hardware or a software configuration, a setting, a license for a specific revision of a software entity, a hardware license, a deployment workflow, a deployment pattern, a dependency upon an other software or hardware entity or upon a revision or setting, or an other constraint that may be related to power usage, site configuration, contractual terms, or environmental factors.
- The cloud-management platform may manage such a service offering by describing such a characteristic of the offered service in an entry of the service catalog. If an authorized user requests the service described in the service-catalog entry, the cloud-management platform may respond by provisioning a virtual machine to provide all or part of the requested service, where the provisioning may be a function of the entry and wherein a selection of components that comprise the virtual machine and a configuration of the virtual machine and of its components may be further functions of the entry.
- This type of service-catalog service-management mechanism may allow the cloud-management platform to improve a characteristic of a service, where the improved characteristic might comprise, but is not limited to, reliability, compatibility, robustness, performance, efficiency, or conformance with a standard or with a convention of the cloud-computing environment.
- A cloud-computing service may comprise one or more software applications running all or in part on a virtual machine that is provisioned on a physical computer of the cloud-computing environment. Here, the physical machine may run an operating system and the virtual machine may run as a function of hypervisor software that runs under the operating system.
- A service that runs all or in part on such a virtual machine may be described in an associated service-catalog entry as being associated with a certain version of a software application, hypervisor, operating system, or other software, or as further requiring a certain configuration of a physical or virtual computer system, peripheral device, communications resource, or infrastructure. Such a description may enable the cloud-management system to offer standardized services that may be more readily interchangeable, predictable, stable, or robust, and that may be more reliably and efficiently deployed.
- Although cloud-computing environments almost always comprise virtual computing resources, it is also possible for a virtualized computing environment to be a “non-cloud” computing environment. Both types of virtualized environments may comprise two distinct types of platforms: a “manage from” platform that may comprise entities and resources like computers, storage devices, and memory units and that maintains and provides virtual services; and a “manage to” platform that comprises entities and resources like computers, storage devices, memory units, and networks, onto which virtual services may be provisioned by the “manage from” platform.
- Cloud and non-cloud virtual computing environments may differ, however, in the way that resources are organized into these two types of platforms. In cloud-computing environments, “manage from” and “manage to” platforms may be maintained as physically distinct computing resources, wherein the “manage from” platform (the “cloud-management” platform) provisions services onto the “manage to” platform (the “cloud”). But in a non-cloud virtual environment, the “manage from” and the “manage to” platforms may share the same resources.
- A virtual service offered by a “manage from” cloud-management platform in a cloud-computing environment may be described in an entry in a service catalog. In a cloud-computing environment, such an entry may be generated automatically by a component of the cloud-management platform or by software associated with the cloud-management platform.
- But in a “standard” non-cloud environment, a service that is running on a virtual machine may not be associated with an entry in a service catalog because the service was not originally provisioned as part of a partitioned cloud-computing environment. Furthermore, during an effort to migrate services of the non-cloud environment to, or to integrate non-cloud resources into, a cloud-computing environment, it may not be possible to automatically generate a service-catalog entry for a migrated or integrated non-cloud service because a virtual machine associated with the non-cloud service was not provisioned as part of the cloud-computing environment; was configured with hardware, software, or communications settings that do not conform to a standard of, a convention of, or are not optimized for, the cloud-computing environment; or because the service was configured to run on physical or virtual hardware, software, or communications resources that do not conform to a standard or convention of, or are not optimized for, the cloud-computing environment.
- When an enterprise plans to migrate virtual resources from a non-cloud environment to a cloud-computing environment, the resulting task of manually migrating large numbers of legacy virtual machines into the cloud environment may create an enormous burden.
- In one example, consider a data center that comprises both a cloud-computing environment and a legacy non-cloud computing environment. The two environments may each comprise several thousand virtual machines, storage devices, and networking resources configured in a same data center, where machines in one environment may have no knowledge of the other's virtual resources.
- Because the non-cloud virtual resources may be provisioned in the non-cloud environment using heterogeneous hardware and using heterogeneous hypervisors, it may be difficult or impossible for the non-cloud “manage from” management platform to perform tasks such as the startup, shutdown, provisioning, decommissioning, and attribute revisioning of the non-cloud virtual resources. Migrating management of such resources to a cloud-computing environment, however, may provide a common control mechanism that greatly simplifies management tasks because services within the cloud-computing environment that are described in the cloud-computing environment's service catalog may conform to standards that are more easily managed by the cloud-computing environment's cloud-management platform.
- Such a migration may require a review and assessment of all physical and virtual attributes of the virtual machines, operating systems, and application programs provisioned on the non-cloud virtual environment, and of the physical infrastructure on which such virtual machines, operating systems, and applications run. Such a review may comprise considerations that include, but are not limited to, relationships among virtual machines, operating systems, and application programs; dependencies of the virtual machines, operating systems, and application programs on underlying physical infrastructure; creation of a list of services provisioned in the non-cloud virtual environment and addition of the list of services into the cloud-computing environment's service catalog as a set of unique entries; migration of these services to the cloud-computing environment; testing to ensure conformance of the migrated services with standards or conventions of the cloud-computing environment; and further testing to ensure that the functionality of the migrated services is an appropriate function of the functionality that was provided by analogous services in the non-cloud virtual environment. In many cases, it may be difficult or impossible to automatically generate such service-catalog entries in the cloud-computing environment because of differences and inconsistencies between implementation details, compatibility issues, standards, and conventions of the cloud and non-cloud platforms.
- Embodiments of the present invention address this issue with a method of automatically generating a cloud-computing environment service-catalog entry for a virtual business application or other virtual service that is already running on a virtual machine provisioned in a non-cloud environment. This task may comprise steps of analyzing and correlating information about the service and about the cloud-computing environment, where that information may be generated by automated application-discovery and infrastructure-discovery tools.
- An application-discovery tool is a hardware or software tool that may probe infrastructure and resources of a computing environment in order to identify, characterize, and inventory applications running on the computing environment's remote infrastructure. Such a tool may create a topological view of a computing environment that allows an administrator or other individual to identify dependencies among applications, wherein a dependency between two applications may exist if a certain implementation or a configuration of a first application is allowable only if associated with a particular implementation or a configuration of a second application. In an example, a task of deploying a 64-bit version of a word processor may depend upon first provisioning a 64-bit virtual machine on a physical host computer that comprises a 64-bit processor. In this way, an application-discovery tool may provide insight into characteristics of a complex application infrastructure.
- An application-discovery tool may further provide information about complex interdependencies among servers, applications, network devices, software, configuration files, operating systems and other IT infrastructure components. Such functionality may allow system administrators to more easily identify and troubleshoot configuration-related application problems, and to more efficiently perform functions like incident management, resource allocation, and critical-resource monitoring.
- Some application-discovery tools may further perform more specialized functions like identifying resources that are not actively being monitored, tracking changes to, or other characteristics of, virtual resources, or identifying a way in which a proposed change might affect a dependency, a resource allocation, or an other characteristic of a component of a computing environment.
- The functionality of an infrastructure-discovery tool is much like that of an application-discovery tool, except that infrastructure-discovery tools generally identify, characterize, and catalog hardware and software infrastructure components of a computing environment, rather than application software. These infrastructure components may comprise, but are not limited to, servers, storage devices, other types of peripherals, communications devices, virtualization software, middleware, operating systems, and other types of hardware or software entities that create a computing platform upon which applications may be run.
- Like an application-discovery tool, an infrastructure-discovery tool may generate a topological or an other type of graphical depiction of a computing environment. Some infrastructure-discovery tools may automatically identify logical dependencies and other relationships among servers and other infrastructure components, utilization trending data and other information that enables administrators to rationalize, virtualize, or consolidate assets to improve operational efficiency, and risk analyses, including identification of an outdated operating system or middleware, a misconfigured or orphan servers, and redundant middleware or other components. An infrastructure-discovery tool's ability to generate and help users navigate custom views of large data sets may further facilitate other sophisticated functions.
- Embodiments of the present invention may interoperate both with application-discovery tools and infrastructure-discovery tools known to those skilled in the art of cloud computing today, and with application-discovery tools and infrastructure-discovery tools that may be developed in the future.
-
FIG. 1 shows the structure of a computer system and computer program code that may be used to implement a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention.FIG. 1 refers to objects 101-115. - Aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Furthermore, in one embodiment, the present invention may take the form of a computer program product comprising one or more physically tangible (e.g., hardware) computer-readable medium(s) or devices having computer-readable program code stored therein, said program code configured to be executed by a processor of a computer system to implement the methods of the present invention. In one embodiment, the physically tangible computer readable medium(s) and/or device(s) (e.g., hardware media and/or devices) that store said program code, said program code implementing methods of the present invention, do not comprise a signal generally, or a transitory signal in particular.
- Any combination of one or more computer-readable medium(s) or devices may be used. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. The computer-readable storage medium may be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium or device may include the following: an electrical connection, 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), Radio Frequency Identification tag, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any physically tangible medium or hardware device that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- A computer-readable signal medium may include a propagated data signal with computer-readable program code embodied therein, for example, a broadcast radio signal or digital data traveling through an Ethernet cable. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic signals, optical pulses, modulation of a carrier signal, or any combination thereof.
- Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless communications media, optical fiber cable, electrically conductive cable, radio-frequency or infrared electromagnetic transmission, etc., or any suitable combination of the foregoing.
- Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including, but not limited to programming languages like Java, Smalltalk, and C++, and one or more scripting languages, including, but not limited to, scripting languages like JavaScript, Perl, and PHP. The program code 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 latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN), a wide area network (WAN), an intranet, an extranet, or an enterprise network that may comprise combinations of LANs, WANs, intranets, and extranets, or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- Aspects of the present invention are described above and below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the present invention. It will be understood that each block of the flowchart illustrations, block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams of
FIGS. 1-4 can be implemented by computer program instructions. These computer 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 program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data-processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture, including instructions that implement the function/act specified in the flowchart and/or block diagram block or blocks.
- The computer 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 that execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- The flowchart illustrations and/or block diagrams
FIGS. 1-4 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 code, wherein the module, segment, or portion of code comprises one or more executable instructions for implementing one or more specified logical function(s). It should also be noted that, 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 illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by special-purpose hardware-based systems that perform the specified functions or acts, or combinations of special-purpose hardware and computer instructions. - In
FIG. 1 ,computer system 101 comprises a processor 103 coupled through one or more I/O Interfaces 109 to one or more hardwaredata storage devices 111 and one or more I/O devices 113 and 115. - Hardware
data storage devices 111 may include, but are not limited to, magnetic tape drives, fixed or removable hard disks, optical discs, storage-equipped mobile devices, and solid-state random-access or read-only storage devices. I/O devices may comprise, but are not limited to: input devices 113, such as keyboards, scanners, handheld telecommunications devices, touch-sensitive displays, tablets, biometric readers, joysticks, trackballs, or computer mice; andoutput devices 115, which may comprise, but are not limited to printers, plotters, tablets, mobile telephones, displays, or sound-producing devices.Data storage devices 111, input devices 113, andoutput devices 115 may be located either locally or at remote sites from which they are connected to I/O Interface 109 through a network interface. - Processor 103 may also be connected to one or
more memory devices 105, which may include, but are not limited to, Dynamic RAM (DRAM), Static RAM (SRAM), Programmable Read-Only Memory (PROM), Field-Programmable Gate Arrays (FPGA), Secure Digital memory cards, SIM cards, or other types of memory devices. - At least one
memory device 105 contains storedcomputer program code 107, which is a computer program that comprises computer-executable instructions. The stored computer program code includes a program that implements a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention, and may implement other embodiments described in this specification, including the methods illustrated inFIGS. 1-4 . Thedata storage devices 111 may store thecomputer program code 107.Computer program code 107 stored in thestorage devices 111 is configured to be executed by processor 103 via thememory devices 105. Processor 103 executes the storedcomputer program code 107. - Thus the present invention discloses a process for supporting computer infrastructure, integrating, hosting, maintaining, and deploying computer-readable code into the
computer system 101, wherein the code in combination with thecomputer system 101 is capable of performing a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines. - Any of the components of the present invention could be created, integrated, hosted, maintained, deployed, managed, serviced, supported, etc. by a service provider who offers to facilitate a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines. Thus the present invention discloses a process for deploying or integrating computing infrastructure, comprising integrating computer-readable code into the
computer system 101, wherein the code in combination with thecomputer system 101 is capable of performing a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines. - One or more data storage units 111 (or one or more additional memory devices not shown in
FIG. 1 ) may be used as a computer-readable hardware storage device having a computer-readable program embodied therein and/or having other data stored therein, wherein the computer-readable program comprises storedcomputer program code 107. Generally, a computer program product (or, alternatively, an article of manufacture) ofcomputer system 101 may comprise said computer-readable hardware storage device. - While it is understood that
program code 107 for generating a service-catalog entry from discovered attributes of provisioned virtual machines may be deployed by manually loading theprogram code 107 directly into client, server, and proxy computers (not shown) by loading theprogram code 107 into a computer-readable storage medium (e.g., computer data storage device 111),program code 107 may also be automatically or semi-automatically deployed intocomputer system 101 by sendingprogram code 107 to a central server (e.g., computer system 101) or to a group of central servers.Program code 107 may then be downloaded into client computers (not shown) that will executeprogram code 107. - Alternatively,
program code 107 may be sent directly to the client computer via e-mail.Program code 107 may then either be detached to a directory on the client computer or loaded into a directory on the client computer by an e-mail option that selects a program that detachesprogram code 107 into the directory. - Another alternative is to send
program code 107 directly to a directory on the client computer hard drive. If proxy servers are configured, the process selects the proxy server code, determines on which computers to place the proxy servers' code, transmits the proxy server code, and then installs the proxy server code on the proxy computer.Program code 107 is then transmitted to the proxy server and stored on the proxy server. - In one embodiment,
program code 107 for generating a service-catalog entry from discovered attributes of provisioned virtual machines is integrated into a client, server and network environment by providing forprogram code 107 to coexist with software applications (not shown), operating systems (not shown) and network operating systems software (not shown) and then installingprogram code 107 on the clients and servers in the environment whereprogram code 107 will function. - The first step of the aforementioned integration of code included in
program code 107 is to identify any software on the clients and servers, including the network operating system (not shown), whereprogram code 107 will be deployed that are required byprogram code 107 or that work in conjunction withprogram code 107. This identified software includes the network operating system, where the network operating system comprises software that enhances a basic operating system by adding networking features. Next, the software applications and version numbers are identified and compared to a list of software applications and correct version numbers that have been tested to work withprogram code 107. A software application that is missing or that does not match a correct version number is upgraded to the correct version. - A program instruction that passes parameters from
program code 107 to a software application is checked to ensure that the instruction's parameter list matches a parameter list required by theprogram code 107. Conversely, a parameter passed by the software application toprogram code 107 is checked to ensure that the parameter matches a parameter required byprogram code 107. The client and server operating systems, including the network operating systems, are identified and compared to a list of operating systems, version numbers, and network software programs that have been tested to work withprogram code 107. An operating system, version number, or network software program that does not match an entry of the list of tested operating systems and version numbers is upgraded to the listed level on the client computers and upgraded to the listed level on the server computers. - After ensuring that the software, where
program code 107 is to be deployed, is at a correct version level that has been tested to work withprogram code 107, the integration is completed by installingprogram code 107 on the clients and servers. - Embodiments of the present invention may be implemented as a method performed by a processor of a computer system, as a computer program product, as a computer system, or as a processor-performed process or service for supporting computer infrastructure.
-
FIG. 2 is a flow chart that illustrates steps of a method of generating a service-catalog entry from discovered attributes of provisioned virtual machines in accordance with embodiments of the present invention.FIG. 2 contains steps 201-207. - Step 201 begins an analysis of one or more services that are associated with one or more virtual machines, where the one or more virtual machines may have been provisioned on, or are otherwise hosted by, physical resources of an existing computing environment. This existing computing environment may comprise a combination of both non-cloud environments and cloud-computing environments.
- An objective of this analysis is to migrate a service of the one or more services to a target cloud-computing environment by automatically generating an entry in a service catalog of the target cloud-computing environment, where the automatically generated entry describes the service to be migrated. In some embodiments, some physical or virtual components or resources may be comprised by both the existing computing environment and the target cloud-computing environment.
- This analysis may be performed by functions of a cloud-management platform of the target cloud-computing environment. This cloud-management platform performs tasks related to offering a virtualized “cloud” service to users of the cloud-computing environment, where the offering is a function of an entry in the target cloud-computing environment's service catalog, and where that entry describes a characteristic of the offered virtualized cloud service.
- In
step 201, the analysis begins by using one or more infrastructure-discovery tools, which may be known to those skilled in the art of cloud computing, to identify the physical infrastructure resources of the existing computing environment, including virtual machines that are provisioned or hosted in the existing computing environment. - As described above, the one or more infrastructure-discovery tools traverse the existing computing environment in order to capture information describing the environment's physical infrastructure. This physical infrastructure may comprise, but is not limited to, a CPU, a storage device, a network interface, an other interface, an other peripheral device, an area of memory, an other internal component of the first physical computer, a physical or virtual connection between the first physical computer and an other physical device, and a physical or virtual connection between the first physical computer and a virtual entity running on the other physical device. Infrastructure may also comprise system software, such as an operating system or a hypervisor.
- The infrastructure-discovery tool may further determine which components and resources of the existing computing environment are associated with a virtual machine of the one or more virtual machines, and may further determine a virtual network configuration allocated to a virtual infrastructure abstraction of the physical infrastructure of the existing computing environment.
- As described above, the infrastructure-discovery tool may present this information as a topological or an other type of graphical depiction of the one or more provisioned virtual machines and their relationships to the existing computing environment and may automatically identify logical dependencies and other relationships among virtual machines, infrastructure components, and other resources of the existing computing environment.
- Step 203 continues the analysis began in
step 201 by using one or more application-discovery tools, which may be known to those skilled in the art of cloud computing, to probe the infrastructure discovered instep 201 in order to discover the software applications that are installed or running on the virtual and physical resources identified instep 201. The application-discovery tool may also identify characteristics of the discovered applications, such as revision levels, dependencies upon other software, hardware, communications, or other resources, or configuration settings. - Step 205 continues the analysis of
steps steps - In some embodiments, the continued analysis of
step 205 may comprise identifying a unique application installed on a virtual machine discovered instep 201. - In some embodiments, the continued analysis of
step 205 may comprise using information that may have been discovered instep 201 or step 203 to build a list of software applications installed on the one or more virtual machines of the existing computing environment in order to build a list of unique possible combinations of virtual machines provisioned in the existing computing environment and applications that may be deployed on those virtual machines, wherein a possible combination of the list of unique possible combinations may be deemed “possible” only if it satisfies a condition. - In some embodiments, the continued analysis of
step 205 may comprise comparing a first characteristic of a first configuration a first virtual machine to a second characteristic of a second configuration of a second virtual machine, where the first and second configurations may have been discovered instep 201 or step 203, where the first virtual machine and the second virtual machine may each be deployed on either a same component or on distinct components of the physical infrastructure of the existing computing environment, and where the same component or the distinct components may each comprise one or more physical infrastructure resources that may include, but are not limited to, a CPU, memory, storage device, communications network, or other infrastructure component or resource. - In some embodiments, the continued analysis of
step 205 may comprise using information that may have been discovered instep 201 or step 203 to build a unique list of operating systems by comparing a patch revision level or an operating system revision level of a first operating system installed on the first virtual machine with a patch revision level or an operating system revision level of a second operating system installed on the first virtual machine. - In some embodiments, the continued analysis of
step 205 may comprise using information that may have been discovered instep 201 or step 203 to build a list of unique virtual machines provisioned in the existing operating environment, where a pair of virtual machines in this list may be deemed unique and distinct by discounting a difference of a value of a parameter, such as a characteristic of a CPU, memory, storage, or communications resource, associated with each of the two virtual machines, and where the hypervisors associated with the two virtual machines are configured to permit the difference between the values of the parameter. - In some embodiments, the continued analysis of
step 205 may comprise using information that may have been discovered instep 201 or step 203 to build a list of unique virtual machines provisioned in the existing operating environment, where a pair of virtual machines in this list may be deemed unique and distinct as a function of a comparison of a first virtual network configuration of a first hypervisor of a first virtual machine of the pair of virtual machines with a second virtual network configuration of a second hypervisor of a second virtual machine of the pair of virtual machines, where each virtual network configuration is used by its associated hypervisor to manage resources comprised by the physical infrastructure of the existing operating environment. - In some embodiments, the continued analysis of
step 205 may comprise using information discovered insteps - At the completion of
step 205, the cloud-management platform may have used information discovered insteps - In
step 207, the virtual machines and associated resources and components discovered insteps step 205 to automatically generate entries to be added to the cloud-computing environment's service catalog. - Such an automatically generated entry describes a characteristic of a service that may be offered to a user by the cloud-management platform, where the service may be provided to the user upon request, where that function may comprise one or more applications running on one or more virtual machines, and where the one or more virtual machines and associated applications are provisioned or run by the cloud-management platform in response to the user's request. The configuration, settings, or other requirements of the instantiation of virtual resources that are provisioned or run in order to provide the requested service, as well as physical hardware and software resources needed to provision or run the instantiation and its associated applications, are specified in the service's corresponding service-catalog entry.
- The information stored in an automatically generated service-catalog entry may thus describe a characteristic of a particular combination of physical and virtual resources that must be deployed in the target computing requirement when a user requests a service associated with the entry. Step 205 determines such entry information as a function of information discovered in
steps - Upon completion of
step 205, the cloud-management platform of the target computing environment may thus be able to use information stored in an automatically generated service-catalog entry to determine how to provision and configure resources of the existing computing environment needed to provide a requested service, where that provisioning and configuring may include provisioning a virtual machine or deploying a new instance of an application program according to specifications or configuration rules specified by the entry. - Such an automatically generated entry may describe a service that will be added to the list of services offered by the cloud-computing environment, wherein the added service may be associated with a unique combination of physical and virtual resources of the existing computing environment.
- In some embodiments, an automatically generated service-catalog entry may describe a virtual machine that has exactly the same configuration or an other characteristic of a virtual machine discovered in
step - In other embodiments, an automatically generated service-catalog entry may comprise a description of a deployment pattern or of a deployment workflow.
- In some embodiments, an automatically generated service-catalog entry may be formatted or structured in compliance with an open-standard format, such as the Open Virtualization Format (OVF) standard (ANSI standard INCITS 469-2010) for packaging and distributing virtual appliances and other types of software that runs on a virtual machine, or an other standard or commonly practiced or known standard or convention.
- In some embodiments, all or part of the procedure of
FIG. 2 may be packaged or implemented as a Service-Catalog Generation Utility or Service-Catalog Entry Generation Utility. This package or implementation may comprise either a distinct software application or module or may be comprised by one or more components of one or more cloud-management platforms. - In some embodiments, an automatically generated service-catalog entry may comprise a unique or minimal combination of operating-system and application software attributes. Such an embodiment, may allow a cloud-management platform to provision a business application or virtual service one virtual machine and application at a time. This more granular approach to deployment or provisioning of business applications and services may facilitate adherence to relationships, dependencies, and other constraints among virtual machines and applications, and may help ensure the cloud-management platform's ability to perform required application-management functions, such as application startup, configuration, updating, and shutdown. Here, the relationships, dependencies, and other constraints may be related to entities that comprise, but are not limited to, network connections, network port selection, file-system permissions, and cluster configurations.
- In an embodiment, the analysis of
step 205 comprises a determination of a list of unique applications installed on virtual machines of the existing computer platform and an automatic generation of one or more service entries that each describe a service to be offered by the target cloud-computing environment, wherein each described service is a function of one or more unique application of the list of unique applications. - In some embodiments, an automatically generated service-catalog entry may comprise a unique or minimal combination of operating system and application software attributes.
- In some embodiments, an automatically generated service-catalog entry may make it possible for a cloud-management platform to allow a user to provision a corresponding business application by means of a self-service user interface. In such cases, an automatically generated service-catalog entry may describe an entire topology of the business application.
- An automatically generated service-catalog entry that comprises discovered physical and logical attributes of an entity of the existing computing environment may specify that no changes to these attributes should be allowed when a user requests a service in the target computing environment based on the entry. In some cases, such an entry may describe a legacy application for which little or no support is available in the target cloud-computing environment.
- An automatically generated service-catalog entry that comprises discovered physical and logical attributes of an entity of the existing computing environment may specify that a subset of attributes described by the entry may not be changed in a certain way or under certain conditions during instantiation of a service described by the entry. A service-catalog entry might, for example, be configured to bar a cloud-management platform or a user from changing certain characteristics of virtualized network interface cards deployed on a virtual machine associated with the entry.
- An automatically generated service-catalog entry may comprise a partial or complete logical representation or other function of discovered physical and logical attributes of an entity of the existing computing environment. In some cases, such an entry may describe a legacy application for which little or no support is available in the target cloud-computing environment.
- In some embodiments, an automatically generated service-catalog entry may comprise a description of one or more characteristics of a virtual storage medium provisioned in the existing computing environment, such as a hard-drive image, or a description of a clone of a virtual machine provisioned in the existing computing environment. Such an entry may describe a characteristic of one or more configured software applications or of a characteristic of a virtual machine such as a CPU, memory, storage, or communications configuration, dependency, or an other requirement.
- In some embodiments, an automatically generated service-catalog entry may comprise a description of a service offering or business application that comprises a grouping of one or more component services described in the service catalog. Such a component services may each comprise one or more applications, where the one or more component services were discovered by the application-discovery tool in
step 203 to be related to each other as unique virtual machines on which related, discovered software applications are deployed; or as a combination of related applications with a combination virtual machines wherein instances of an application of the combination of applications may be deployed with distinct or unique configurations. - In some embodiments, an automatically generated service-catalog entry may comprise a base operating-system image that specifies a particular patch or upgrade of an application, of an operating software entity, of an other physical or virtual resource, or of a combination thereof. In one example, a first service may comprise a first virtual machine running a RedHat v5.4 operating system and a WebLogic Server v10.3.4 application-server middleware and a second service may comprise a second virtual machine running RedHat 5.4 with WebLogic Server 10.3.5.
- Some embodiments of the present invention might automatically generate a service-catalog entry that describes characteristics of both operating-system software and application software entities associated with a discovered virtual machine. In such an embodiment, the two exemplary virtual-machine deployments enumerated above might be represented by two automatically generated service-catalog entries. A first entry might describe a first service “RHEL54_WLS1034,” which comprises deployment of RedHat v5.4 and WebLogic Server v10.3.4; and a second entry might describe a second service “RHEL54_WLS1035,” which comprises deployment of RedHat v5.4 and WebLogic Server v10.3.5.
- But in other embodiments, an automatically generated service-catalog entry might describe either operating-system software or application software entities, but not both. In such a case, the two virtual-machine deployments enumerated above might spawn three two automatically generated service-catalog entries, each of which describes characteristics of one distinct discovered software entity, not in combination with any other entity. Here, a first entry might describe a “RHEL54” first service based on a virtual machine running the RedHat v5.4 operating system; a second entry might describe a “WLS_1034 deployment pattern” second service based on a deployment of WebLogic Server v10.34; and a third entry might describe a “WLS_1035 deployment pattern” third service based on a deployment of WebLogic Server v10.3.5. In some embodiments, a cloud-management platform might be able to layer one or more automatically generated service-catalog entries in order to build an offered service or business application that may be provisioned on more than one virtual machine.
- In some embodiments, automatically generated service catalog entries may each comprise a common “application representation,” where an application representation might specify a unique or specific combination of virtual or physical platform or infrastructure components or resources, such as a specific combination of revisions of a Web server operating system and a database-management system application.
- In some embodiments, the cloud-management platform of the target computing environment may collaborate with resources or platforms of one or more remote cloud-computing environments to identify service offerings that may match information discovered in
steps - In some embodiments, an automatically generated service-catalog entry may be further generated as a function of other conditions. In one example, an other condition may be a rule that constrains a choice of physical location for deployments of a certain combination of application and system software entities. An software vendor's extrinsic collocation requirement, for example, might require an automatically generated service-catalog entry to constrain a service comprising two instances of the vendor's database-management application, each running on a distinct virtual machine, to be instantiated on two hosts that are anti-collocated (that is, installed at different sites).
- In some embodiments, an automatically generated service-catalog entry may be designated as being accessible only to cloud administrators or to other authorized users.
- Methods in conformance with embodiments of the present invention may comprise other variations of the method of
FIG. 2 when automatically generating service-catalog entries as a function of infrastructure and application information discovered insteps -
FIG. 3 shows an example of a non-cloud computing environment, as described inFIG. 2 . The narrative below correlatesFIG. 2 andFIG. 3 by showing how the method ofFIG. 2 would automatically generate service-catalog entries for the non-cloud computing environment shown inFIG. 3 .FIG. 3 comprises items 301-329. -
FIG. 3 shows an existing non-cloud computing environment that comprises threephysical servers network backbone 329. -
Server01 301 hosts one virtual machine VM1-1 303, which in turn runs an instance of the Red Hat Enterprise Linux 5.4 operating system (RHEL 5.4) and the Oracle WebLogic Server 10.3.4 (WLS 10.3.4) application-server middleware. Three Java virtual-machine applications 305-309 run on virtual machine VM1-1 303. -
Server02 311 hosts two virtual machines VM2-1 313 and VM2-2 315, each of which run an instance of the Red Hat Enterprise Linux 5.3 operating system (RHEL 5.4) and the Apache 2.2 middleware. An open-source domain name system (DNS) application package bind97-9.7.0.17.P2.e15_9.1.i386.rpm 317 is installed on the second virtual machine VM2-2 315. - Server03 hosts two virtual machines VM3-1 321 and VM3-2 323, each of which run an instance of the IBM AIX 6.1 operating system in a distinct logical partition. A first instance of the Oracle database-
management system application 325, version 11.2.0.2, is installed on the first virtual machine VM3-1 321 and a second instance of the Oracle database-management system application 327, version 11.2.0.2, is installed on the second virtual machine VM3-1 321. - The method of
FIG. 2 may be used to migrate the business applications or services running on these three servers in the non-cloud virtualized existing computing environment ofFIG. 3 to a target cloud-computing environment, by automatically generating a set of unique entries for a service catalog of the target cloud-computing environment, where each entry may describe all or part of one or more of these business applications or services, and where each automatically generated service-catalog entry is unique and distinct from any other entry in the service catalog. - Here, when a user requests a business application service from the cloud-computing environment, the cloud-computing environment requests the application, or an associated service, from the cloud-management platform. The cloud-management platform refers to the service catalog in order to identify one or more entries of the service catalog that describes characteristics of the requested service. If the cloud-management platform identifies such an entry or entries, it may use information in those identified entries to provision resources necessary to provide the requested application or service. The information in those entries may comprise, but is not limited to, a listing of components of an application and components of an operating environment in which the application components are installed and launched, a description of configuration settings or revision levels of the application and the operating environment, and descriptions of other virtual or physical resources required in order to provide the requested business application or services.
- In this example, the method of
FIG. 2 , wherein entries of the service catalog that describe virtualized services and business applications not yet within the scope of the cloud-management platform are automatically generated, begins with an analysis step wherein a cloud-management platform of the target cloud-computing environment receives information from an infrastructure-discovery tool that analyzes the existing computing environment. This received information may describe the virtual and physical infrastructure of the existing computing environment. - In this example the infrastructure-discovery tool returns information that describes the three
servers Server01 301, two virtual machines VM2-1 313 and VM2-2 315 running Red Hat 5.3 and Apache 2.2 onServer02 311, and two virtual machines VM3-1 323 and VM3-2 323 running AIX 6.1 onServer03 319. - The infrastructure-discovery tool may further return additional information related to the configuration of physical and virtual resources related to each virtual machine, such as the number, speed, and type of network interfaces used by each virtual machine, the operating system or hypervisor under which each virtual machine runs, or the quantity and type of secondary storage available to each virtual machine.
- This returned information may take the form of raw, enumerated listings of data or may be presented as a topology that describes connectivity and dependencies among discovered virtual machines and their associated physical and virtual resources.
- The cloud-management platform of the target cloud-computing environment next receives information from an application-discovery tool that analyzes applications running on the existing computing environment infrastructure components discovered by the infrastructure-discovery tool.
- In this example, the cloud-management platform would receive information from the application-discovery tool that identifies the three Java VM applications, 305, 307, and 309, running on virtual machine VM1-1 301, the bind97 application running on virtual machine VM2-2 317, a first instance of the Oracle database-
management application 325 running on virtual machine VM3-1 321, and a second instance of theOracle database application 327 running on virtual machine VM3-2 323. - The method of the present invention might then perform implementation-dependent comparison and analysis functions, including, but not limited to, those discussed above in the description of
step 205 ofFIG. 2 , in order to generate a set of service-catalog entries that describe the business applications or services illustrated inFIG. 3 . - Such entries may be in an open-source format, as described above, or may be in an other implementation-dependent form dictated all or in part by a characteristic of the cloud-computing environment. These automatically generated entries may each be unique or distinct, but in some embodiments, when necessary in order to accurately represent the business applications or services being imported into the cloud-computing environment, some entries may share duplicate or redundant information.
- In one embodiment, these automatically generated service-catalog entries may be represented logically as records that each comprise an “Image Name” service-identifier field and a “Deployment Details” field that describes characteristics of a standardized virtual machine to be provisioned in order to provide the service.
- In the table below, for example,
record 1 represents a service-catalog entry generated from received discovery-tool information that describes virtual machine VM1-1 301. Here,record 1 identifies the Red Hat 5.4 (“RHEL54”) operating system and WebLogic Server 10.3.4 (“WLS1034”) middleware running on virtual machine VM1-1 301, and further describes discovered characteristics of the virtual machine associated with this business application or service. Here, the virtual machine might comprise a virtual four-core Intel x86 processor configured with 8 GB of RAM memory, a 100-GB hard drive, and three network interface cards, wherein the configuration of this virtual machine may be a function of the configuration of discovered virtual machine VM1-1 301 in the existing computing environment, or may be a further function of a characteristic of the target cloud-computing environment. - Similarly other entries in this listing represent business applications or virtual services provided by the other
virtual machines FIG. 3 . In other implementations, many other possible combinations of physical hosts or servers, virtual machines, operating systems, middleware, applications, hardware components, communications devices, and other physical or virtual resources may be discovered and used to automatically generate service-catalog entries. -
Image Name Deployment Details 1-1 RHEL54_WLS1034 Intel x86 VM with 4 CPU cores, 8 GB RAM, 100 GB HDD, with RHEL 5.4, WLS 10.3.4, 3 NICs 2-1 RHEL53_Apache22x Intel x86 VM with 2 CPU cores, 4 GB RAM, 30 GB HDD, with RHEL 5.3, Apache 2.2.x, 3 NICs 2-2 RHEL53_Apache22x_bind Intel x86 VM with 4 CPU cores, 8 GB RAM, 60 GB HDD, with RHEL 5.3, Apache 2.2.x with bind97 rpm package, 3 NICs 3-1 AIX61_Ora11202 AIX LPAR with 4 CPU cores, 16 GB RAM, 500 GB HDD, with AIX 6.1, Oracle 11.2.0.2, 3 NICs 3-2 AIX61_Ora11202 AIX LPAR with 4 CPU cores, 32 GB RAM, 500 GB HDD, with AIX 6.1, Oracle 11.2.0.2, 3 NICs - In another embodiment, the method of
FIG. 2 might create a single service-catalog entry for a business application or service that comprises all five virtual machines shown inFIG. 3 and discovered by the infrastructure-discovery and application-discovery tools. In such embodiments, characteristics of the existing computing platform and target cloud-computing platform may determine whether such a result is appropriate. - Such an entry might be represented as:
-
Application Images VM1-1-3-2 1 × RHEL54_WLS1034 1 × RHEL56_Apache22x 1 × RHEL56_Apache22x_bind 2 × AIX61_Ora11202 - In variations of this embodiment, this single entry might contain additional or different information, such as a system-configuration detail of a virtual machine or of a virtual peripheral associated with the virtual machine.
- In yet another embodiment, the method of
FIG. 2 might create distinct service-catalog entries for each system-software component and middleware component, possibly allowing the cloud-management platform to provide users the flexibility to request combinations of the business applications and services represented by the more granular entries. - One example of such an embodiment is the below representation of service-catalog entries generated automatically by the method of
FIG. 2 from the example existing computing environment ofFIG. 3 . - Here, as above, each record in the table is a logical representation of a business application or virtual service that may be provided by the cloud-management platform, where the business application or virtual service is a function of applications and services discovered running on virtualized resources in the existing computing environment.
-
Image Name Deployment Details RHEL_54 Intel x86 VM with 4 CPU cores, 8 GB RAM, 100 GB HDD, with RHEL 5.4 RHEL_53 Intel x86 VM with 4 CPU cores, 8 GB RAM, 100 GB HDD, with RHEL 5.6 WLS_1034 WebLogic Server 10.3.4 install Bind_97 Bind97 rpm package install AIX_Ora11202 AIX LPAR with 4 CPU cores, 16 GB RAM, 500 GB HDD, with Aix 6.1, Oracle 11.2.0.2, 3 NICs Apache_22x Apache 2.2.x install - Many other possible embodiments of these methods are possible, based on the factors enumerated above. An automatically generated entry may, for example, describe only a particular revision level of an operating-software component, such as “RHEL 5.4 32 bit”. Alternatively, an entry might describe both the operating-software component and a deployment workflow for installing a specific patch to the software, such as “RHEL 5.4 32 bit with bind97 package.”
- In yet another embodiment, an automatically generated service-catalog entry might represent a deployment workflow dependency, wherein installation of a “bind97” patch is dependent upon prior installation of a RHEL5.4 operating system. In this example, the dependency represented in the automatically generated service-catalog entry would bar a user from requesting a service to be configured to run under a RHEL5.6 operating system with a bind97 patch.
- Common to all these embodiments, however, is the concept of using information discovered about physical and virtual components and resources of an infrastructure of and applications of a virtualized computing environment to automatically generate service-catalog entries of a cloud-computing environment, wherein those automatically generated entries allow users of the cloud-computing environment to request a business applications or virtualized services analogous to those provisioned in the existing computing environment.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/405,584 US9992080B2 (en) | 2013-08-21 | 2017-01-13 | Using discovered virtual-infrastructure attributes to automatically generate a service-catalog entry |
US15/908,887 US10250461B2 (en) | 2013-08-21 | 2018-03-01 | Migrating legacy non-cloud applications into a cloud-computing environment |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/971,883 US9686154B2 (en) | 2013-08-21 | 2013-08-21 | Generating a service-catalog entry from discovered attributes of provisioned virtual machines |
US15/405,584 US9992080B2 (en) | 2013-08-21 | 2017-01-13 | Using discovered virtual-infrastructure attributes to automatically generate a service-catalog entry |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/971,883 Continuation US9686154B2 (en) | 2013-08-21 | 2013-08-21 | Generating a service-catalog entry from discovered attributes of provisioned virtual machines |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/908,887 Continuation US10250461B2 (en) | 2013-08-21 | 2018-03-01 | Migrating legacy non-cloud applications into a cloud-computing environment |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170134246A1 true US20170134246A1 (en) | 2017-05-11 |
US9992080B2 US9992080B2 (en) | 2018-06-05 |
Family
ID=52481390
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/971,883 Active 2034-07-15 US9686154B2 (en) | 2013-08-21 | 2013-08-21 | Generating a service-catalog entry from discovered attributes of provisioned virtual machines |
US15/405,584 Active US9992080B2 (en) | 2013-08-21 | 2017-01-13 | Using discovered virtual-infrastructure attributes to automatically generate a service-catalog entry |
US15/908,887 Active US10250461B2 (en) | 2013-08-21 | 2018-03-01 | Migrating legacy non-cloud applications into a cloud-computing environment |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/971,883 Active 2034-07-15 US9686154B2 (en) | 2013-08-21 | 2013-08-21 | Generating a service-catalog entry from discovered attributes of provisioned virtual machines |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/908,887 Active US10250461B2 (en) | 2013-08-21 | 2018-03-01 | Migrating legacy non-cloud applications into a cloud-computing environment |
Country Status (1)
Country | Link |
---|---|
US (3) | US9686154B2 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160105321A1 (en) * | 2014-10-13 | 2016-04-14 | Vmware, Inc. | Cross-cloud policy management for hybrid cloud deployments |
US10193753B1 (en) * | 2015-08-31 | 2019-01-29 | EMC IP Holding Company LLC | Automated configuration and deployment of internet of things platforms |
US10673973B2 (en) | 2018-09-12 | 2020-06-02 | International Business Machines Corporation | Multiple vendor services oriented architecture (SOA) service requesting proxy |
US10999162B1 (en) * | 2020-05-15 | 2021-05-04 | HashiCorp | Ticket-based provisioning of cloud infrastructure for a SaaS provider |
US11307848B2 (en) | 2019-07-01 | 2022-04-19 | Bank Of America Corporation | System for electronic integration and deployment of computer code in a code development network |
US11397606B2 (en) | 2019-08-14 | 2022-07-26 | T-Mobile Usa, Inc. | Systems and methods for automated monitoring and troubleshooting of unknown dependencies in a virtual infrastructure |
Families Citing this family (102)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140201017A1 (en) | 2008-06-19 | 2014-07-17 | Servicemesh, Inc. | Systems and methods for providing repeated use of computing resources |
US9489647B2 (en) * | 2008-06-19 | 2016-11-08 | Csc Agility Platform, Inc. | System and method for a cloud computing abstraction with self-service portal for publishing resources |
US9736065B2 (en) | 2011-06-24 | 2017-08-15 | Cisco Technology, Inc. | Level of hierarchy in MST for traffic localization and load balancing |
US8908698B2 (en) | 2012-01-13 | 2014-12-09 | Cisco Technology, Inc. | System and method for managing site-to-site VPNs of a cloud managed network |
US10367914B2 (en) | 2016-01-12 | 2019-07-30 | Cisco Technology, Inc. | Attaching service level agreements to application containers and enabling service assurance |
US9043439B2 (en) | 2013-03-14 | 2015-05-26 | Cisco Technology, Inc. | Method for streaming packet captures from network access devices to a cloud server over HTTP |
US9686154B2 (en) | 2013-08-21 | 2017-06-20 | International Business Machines Corporation | Generating a service-catalog entry from discovered attributes of provisioned virtual machines |
US20150106805A1 (en) * | 2013-10-15 | 2015-04-16 | Cisco Technology, Inc. | Accelerated instantiation of cloud resource |
US9755858B2 (en) | 2014-04-15 | 2017-09-05 | Cisco Technology, Inc. | Programmable infrastructure gateway for enabling hybrid cloud services in a network environment |
US9473365B2 (en) | 2014-05-08 | 2016-10-18 | Cisco Technology, Inc. | Collaborative inter-service scheduling of logical resources in cloud platforms |
US10122605B2 (en) | 2014-07-09 | 2018-11-06 | Cisco Technology, Inc | Annotation of network activity through different phases of execution |
US9836332B2 (en) * | 2014-07-31 | 2017-12-05 | Corent Technology, Inc. | Software defined SaaS platform |
US9800477B2 (en) | 2014-07-31 | 2017-10-24 | International Business Machines Corporation | Generating a service cost model using discovered attributes of provisioned virtual machines |
US9825878B2 (en) | 2014-09-26 | 2017-11-21 | Cisco Technology, Inc. | Distributed application framework for prioritizing network traffic using application priority awareness |
US9942351B2 (en) * | 2014-12-16 | 2018-04-10 | International Business Machines Corporation | Enabling and disabling execution environments |
US10050862B2 (en) | 2015-02-09 | 2018-08-14 | Cisco Technology, Inc. | Distributed application framework that uses network and application awareness for placing data |
US10037617B2 (en) | 2015-02-27 | 2018-07-31 | Cisco Technology, Inc. | Enhanced user interface systems including dynamic context selection for cloud-based networks |
US10708342B2 (en) | 2015-02-27 | 2020-07-07 | Cisco Technology, Inc. | Dynamic troubleshooting workspaces for cloud and network management systems |
US10382534B1 (en) | 2015-04-04 | 2019-08-13 | Cisco Technology, Inc. | Selective load balancing of network traffic |
US10476982B2 (en) | 2015-05-15 | 2019-11-12 | Cisco Technology, Inc. | Multi-datacenter message queue |
US10034201B2 (en) | 2015-07-09 | 2018-07-24 | Cisco Technology, Inc. | Stateless load-balancing across multiple tunnels |
US11005682B2 (en) | 2015-10-06 | 2021-05-11 | Cisco Technology, Inc. | Policy-driven switch overlay bypass in a hybrid cloud network environment |
US10067780B2 (en) | 2015-10-06 | 2018-09-04 | Cisco Technology, Inc. | Performance-based public cloud selection for a hybrid cloud environment |
US10462136B2 (en) | 2015-10-13 | 2019-10-29 | Cisco Technology, Inc. | Hybrid cloud security groups |
US10523657B2 (en) | 2015-11-16 | 2019-12-31 | Cisco Technology, Inc. | Endpoint privacy preservation with cloud conferencing |
US10205677B2 (en) | 2015-11-24 | 2019-02-12 | Cisco Technology, Inc. | Cloud resource placement optimization and migration execution in federated clouds |
US10084703B2 (en) | 2015-12-04 | 2018-09-25 | Cisco Technology, Inc. | Infrastructure-exclusive service forwarding |
US9537720B1 (en) * | 2015-12-10 | 2017-01-03 | International Business Machines Corporation | Topology discovery for fault finding in virtual computing environments |
US10515119B2 (en) | 2015-12-15 | 2019-12-24 | At&T Intellectual Property I, L.P. | Sequential recommender system for virtualized network services |
US10938665B2 (en) * | 2015-12-15 | 2021-03-02 | At&T Intellectual Property I, L.P. | Method and apparatus for creating a custom service |
US11650848B2 (en) | 2016-01-21 | 2023-05-16 | Suse Llc | Allocating resources for network function virtualization |
US9990222B2 (en) | 2016-03-18 | 2018-06-05 | Airwatch Llc | Enforcing compliance rules against hypervisor and virtual machine using host management component |
US10728106B1 (en) * | 2016-04-29 | 2020-07-28 | Architecture Technology Corporation | Multi-domain cloud computing |
US10412192B2 (en) * | 2016-05-10 | 2019-09-10 | International Business Machines Corporation | Jointly managing a cloud and non-cloud environment |
US10129177B2 (en) | 2016-05-23 | 2018-11-13 | Cisco Technology, Inc. | Inter-cloud broker for hybrid cloud networks |
US10523762B2 (en) | 2016-06-30 | 2019-12-31 | Red Hat, Inc. | Persistent real-time communication channels with cloud computing systems |
US10659283B2 (en) | 2016-07-08 | 2020-05-19 | Cisco Technology, Inc. | Reducing ARP/ND flooding in cloud environment |
US10432532B2 (en) | 2016-07-12 | 2019-10-01 | Cisco Technology, Inc. | Dynamically pinning micro-service to uplink port |
US10382597B2 (en) | 2016-07-20 | 2019-08-13 | Cisco Technology, Inc. | System and method for transport-layer level identification and isolation of container traffic |
US10263898B2 (en) | 2016-07-20 | 2019-04-16 | Cisco Technology, Inc. | System and method for implementing universal cloud classification (UCC) as a service (UCCaaS) |
US10142346B2 (en) | 2016-07-28 | 2018-11-27 | Cisco Technology, Inc. | Extension of a private cloud end-point group to a public cloud |
US9977670B2 (en) * | 2016-08-10 | 2018-05-22 | Bank Of America Corporation | Application programming interface for providing access to computing platform definitions |
US10469315B2 (en) | 2016-08-10 | 2019-11-05 | Bank Of America Corporation | Using computing platform definitions to provide segmented computing platforms in a computing system |
US10567344B2 (en) | 2016-08-23 | 2020-02-18 | Cisco Technology, Inc. | Automatic firewall configuration based on aggregated cloud managed information |
US10491689B2 (en) * | 2016-09-16 | 2019-11-26 | Oracle International Corporation | Centralized monitoring of cloud operations |
US10523592B2 (en) | 2016-10-10 | 2019-12-31 | Cisco Technology, Inc. | Orchestration system for migrating user data and services based on user information |
US11044162B2 (en) | 2016-12-06 | 2021-06-22 | Cisco Technology, Inc. | Orchestration of cloud and fog interactions |
US10558445B2 (en) * | 2016-12-13 | 2020-02-11 | International Business Machines Corporation | Constructing and enhancing a deployment pattern |
US10326817B2 (en) | 2016-12-20 | 2019-06-18 | Cisco Technology, Inc. | System and method for quality-aware recording in large scale collaborate clouds |
US10334029B2 (en) | 2017-01-10 | 2019-06-25 | Cisco Technology, Inc. | Forming neighborhood groups from disperse cloud providers |
US10552191B2 (en) | 2017-01-26 | 2020-02-04 | Cisco Technology, Inc. | Distributed hybrid cloud orchestration model |
US10320683B2 (en) | 2017-01-30 | 2019-06-11 | Cisco Technology, Inc. | Reliable load-balancer using segment routing and real-time application monitoring |
US10671571B2 (en) | 2017-01-31 | 2020-06-02 | Cisco Technology, Inc. | Fast network performance in containerized environments for network function virtualization |
US11005731B2 (en) | 2017-04-05 | 2021-05-11 | Cisco Technology, Inc. | Estimating model parameters for automatic deployment of scalable micro services |
US10382291B2 (en) | 2017-04-26 | 2019-08-13 | Oracle International Corporation | Provisioning framework for binding related cloud services |
US10225140B2 (en) * | 2017-04-26 | 2019-03-05 | Oracle International Corporation | Portable instance provisioning framework for cloud services |
US10382274B2 (en) | 2017-06-26 | 2019-08-13 | Cisco Technology, Inc. | System and method for wide area zero-configuration network auto configuration |
US10439877B2 (en) | 2017-06-26 | 2019-10-08 | Cisco Technology, Inc. | Systems and methods for enabling wide area multicast domain name system |
US10892940B2 (en) | 2017-07-21 | 2021-01-12 | Cisco Technology, Inc. | Scalable statistics and analytics mechanisms in cloud networking |
US10425288B2 (en) | 2017-07-21 | 2019-09-24 | Cisco Technology, Inc. | Container telemetry in data center environments with blade servers and switches |
US10601693B2 (en) | 2017-07-24 | 2020-03-24 | Cisco Technology, Inc. | System and method for providing scalable flow monitoring in a data center fabric |
US10541866B2 (en) | 2017-07-25 | 2020-01-21 | Cisco Technology, Inc. | Detecting and resolving multicast traffic performance issues |
US10353800B2 (en) | 2017-10-18 | 2019-07-16 | Cisco Technology, Inc. | System and method for graph based monitoring and management of distributed systems |
US11159490B2 (en) * | 2017-11-03 | 2021-10-26 | F5 Networks, Inc. | Methods and devices for service-discovering reverse-tunnel proxy and tunnel service center |
US11481362B2 (en) | 2017-11-13 | 2022-10-25 | Cisco Technology, Inc. | Using persistent memory to enable restartability of bulk load transactions in cloud databases |
US20190158367A1 (en) * | 2017-11-21 | 2019-05-23 | Hewlett Packard Enterprise Development Lp | Selection of cloud service providers to host applications |
US10705882B2 (en) | 2017-12-21 | 2020-07-07 | Cisco Technology, Inc. | System and method for resource placement across clouds for data intensive workloads |
US11595474B2 (en) | 2017-12-28 | 2023-02-28 | Cisco Technology, Inc. | Accelerating data replication using multicast and non-volatile memory enabled nodes |
US10445221B2 (en) | 2018-03-08 | 2019-10-15 | Sauce Labs Inc. | Automated application testing system |
US10511534B2 (en) | 2018-04-06 | 2019-12-17 | Cisco Technology, Inc. | Stateless distributed load-balancing |
US10728361B2 (en) | 2018-05-29 | 2020-07-28 | Cisco Technology, Inc. | System for association of customer information across subscribers |
US10904322B2 (en) | 2018-06-15 | 2021-01-26 | Cisco Technology, Inc. | Systems and methods for scaling down cloud-based servers handling secure connections |
EP3808149A4 (en) * | 2018-06-15 | 2022-02-23 | Nokia Technologies OY | Dynamic management of application servers on network edge computing device |
US10764266B2 (en) | 2018-06-19 | 2020-09-01 | Cisco Technology, Inc. | Distributed authentication and authorization for rapid scaling of containerized services |
US11019083B2 (en) | 2018-06-20 | 2021-05-25 | Cisco Technology, Inc. | System for coordinating distributed website analysis |
CN109144526B (en) * | 2018-06-28 | 2022-04-12 | 山东鲁软数字科技有限公司智慧能源分公司 | A system and method for rapid deployment of substation automation software |
US10819571B2 (en) | 2018-06-29 | 2020-10-27 | Cisco Technology, Inc. | Network traffic optimization using in-situ notification system |
US10904342B2 (en) | 2018-07-30 | 2021-01-26 | Cisco Technology, Inc. | Container networking using communication tunnels |
US10656930B2 (en) * | 2018-09-12 | 2020-05-19 | Microsoft Technology Licensing, Llc | Dynamic deployment target control |
US11243793B2 (en) * | 2019-02-05 | 2022-02-08 | Hewlett Packard Enterprise Development Lp | Virtual machine management |
US11695654B2 (en) * | 2019-02-27 | 2023-07-04 | Hewlett Packard Enterprise Development Lp | High performance compute infrastructure as a service |
US11385920B2 (en) | 2019-03-28 | 2022-07-12 | Amazon Technologies, Inc. | Compute platform optimization over the life of a workload in a distributed computing environment |
US11360795B2 (en) * | 2019-03-28 | 2022-06-14 | Amazon Technologies, Inc. | Determining configuration parameters to provide recommendations for optimizing workloads |
US11128696B2 (en) | 2019-03-28 | 2021-09-21 | Amazon Technologies, Inc. | Compute platform optimization across heterogeneous hardware in a distributed computing environment |
US11372663B2 (en) | 2019-03-28 | 2022-06-28 | Amazon Technologies, Inc. | Compute platform recommendations for new workloads in a distributed computing environment |
US11200319B2 (en) | 2019-04-04 | 2021-12-14 | Cisco Technology, Inc. | Cloud enabling of legacy trusted networking devices for zero touch provisioning and enterprise as a service |
US11129159B2 (en) * | 2019-04-11 | 2021-09-21 | Servicenow, Inc. | Programmatic orchestration of cloud-based services |
US11216296B2 (en) * | 2019-04-17 | 2022-01-04 | Hewlett Packard Enterprise Development Lp | Identifying a least cost cloud network for deploying a virtual machine instance |
US11526770B2 (en) | 2019-06-20 | 2022-12-13 | International Business Machines Corporation | Latent computing property preference discovery and computing environment migration plan recommendation |
US12192273B1 (en) | 2019-10-07 | 2025-01-07 | Allstate Insurance Company | Systems and methods for automated application deployment |
US11113186B1 (en) * | 2019-12-13 | 2021-09-07 | Amazon Technologies, Inc. | Testing and publishing of resource handlers in a cloud environment |
US11579913B2 (en) * | 2019-12-18 | 2023-02-14 | Vmware, Inc. | System and method for optimizing network topology in a virtual computing environment |
US11671506B2 (en) * | 2020-01-27 | 2023-06-06 | Dell Products L.P. | Microservice management system for recommending modifications to optimize operation of microservice-based systems |
US11221855B2 (en) * | 2020-03-06 | 2022-01-11 | International Business Machines Corporation | Transformation of an enterprise application into a cloud native application |
US11221846B2 (en) | 2020-03-19 | 2022-01-11 | International Business Machines Corporation | Automated transformation of applications to a target computing environment |
US11212171B1 (en) | 2020-06-30 | 2021-12-28 | Oracle International Corporation | Customer self-service cloud application provisioning |
US11481213B2 (en) * | 2020-07-02 | 2022-10-25 | Atlassian Pty Ltd. | Systems and methods for project migration |
US20220100715A1 (en) * | 2020-09-25 | 2022-03-31 | Sap Se | Database migration |
US20230185561A1 (en) * | 2021-12-14 | 2023-06-15 | Vmware, Inc. | Virtual appliance functionality transformations |
US12184504B1 (en) * | 2022-06-09 | 2024-12-31 | Amazon Technologies, Inc. | Decomposition of monoliths into multi-account provider network structures |
US20250094315A1 (en) * | 2022-08-05 | 2025-03-20 | Rakuten Mobile, Inc. | System, method, and non-transitory computer-readable media for performing end-to-end application onboarding |
US12182176B2 (en) * | 2023-03-28 | 2024-12-31 | Accenture Global Solutions Limited | System and method for intelligent synthetic test data generation |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276771A1 (en) * | 2005-09-15 | 2009-11-05 | 3Tera, Inc. | Globally Distributed Utility Computing Cloud |
US7813822B1 (en) * | 2000-10-05 | 2010-10-12 | Hoffberg Steven M | Intelligent electronic appliance system and method |
US7920549B2 (en) * | 2005-07-20 | 2011-04-05 | Verizon Business Global Llc | Method and system for providing secure media gateways to support interdomain traversal |
US20110126197A1 (en) * | 2009-11-25 | 2011-05-26 | Novell, Inc. | System and method for controlling cloud and virtualized data centers in an intelligent workload management system |
US8184641B2 (en) * | 2005-07-20 | 2012-05-22 | Verizon Business Global Llc | Method and system for providing secure communications between proxy servers in support of interdomain traversal |
US8316125B2 (en) * | 2009-08-31 | 2012-11-20 | Red Hat, Inc. | Methods and systems for automated migration of cloud processes to external clouds |
US20120304170A1 (en) * | 2011-05-27 | 2012-11-29 | Morgan Christopher Edwin | Systems and methods for introspective application reporting to facilitate virtual machine movement between cloud hosts |
US20130339510A1 (en) * | 2012-06-15 | 2013-12-19 | Digital River, Inc | Fast provisioning service for cloud computing |
US9742873B2 (en) * | 2012-11-29 | 2017-08-22 | International Business Machines Corporation | Adjustment to managed-infrastructure-as-a-service cloud standard |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007141378A1 (en) | 2006-06-05 | 2007-12-13 | Comptel Corporation | Provisioning and activation using a service catalog |
US9218218B2 (en) | 2008-08-27 | 2015-12-22 | International Business Machines Corporation | Method and system for policy based lifecycle management of virtual software appliances |
US8046468B2 (en) | 2009-01-26 | 2011-10-25 | Vmware, Inc. | Process demand prediction for distributed power and resource management |
US8924559B2 (en) | 2009-12-03 | 2014-12-30 | International Business Machines Corporation | Provisioning services using a cloud services catalog |
US8924569B2 (en) | 2009-12-17 | 2014-12-30 | Intel Corporation | Cloud federation as a service |
US9235442B2 (en) | 2010-10-05 | 2016-01-12 | Accenture Global Services Limited | System and method for cloud enterprise services |
US8713147B2 (en) | 2010-11-24 | 2014-04-29 | Red Hat, Inc. | Matching a usage history to a new cloud |
US10192246B2 (en) | 2010-11-24 | 2019-01-29 | Red Hat, Inc. | Generating multi-cloud incremental billing capture and administration |
US20120290678A1 (en) | 2011-05-12 | 2012-11-15 | International Business Machines Corporation | Dynamic, user-driven service catalog |
US8533715B2 (en) | 2011-08-09 | 2013-09-10 | International Business Machines Corporation | Virtual machine management |
US8826277B2 (en) | 2011-11-29 | 2014-09-02 | International Business Machines Corporation | Cloud provisioning accelerator |
KR101675818B1 (en) | 2012-01-27 | 2016-11-14 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | Parameterized Dynamic Model for Cloud Migration |
US9292330B2 (en) * | 2012-11-29 | 2016-03-22 | International Business Machines Corporation | Replacing virtual machine disks |
US9092837B2 (en) * | 2012-11-29 | 2015-07-28 | International Business Machines Corporation | Use of snapshots to reduce risk in migration to a standard virtualized environment |
US9282166B2 (en) * | 2012-11-29 | 2016-03-08 | International Business Machines Corporation | Management infrastructure analysis for cloud migration |
US9444896B2 (en) | 2012-12-05 | 2016-09-13 | Microsoft Technology Licensing, Llc | Application migration between clouds |
US20140282456A1 (en) | 2013-03-15 | 2014-09-18 | Cloud Technology Partners, Inc. | Methods, systems and computer-readable media for code profiling and migration effort estimation |
US9686154B2 (en) | 2013-08-21 | 2017-06-20 | International Business Machines Corporation | Generating a service-catalog entry from discovered attributes of provisioned virtual machines |
-
2013
- 2013-08-21 US US13/971,883 patent/US9686154B2/en active Active
-
2017
- 2017-01-13 US US15/405,584 patent/US9992080B2/en active Active
-
2018
- 2018-03-01 US US15/908,887 patent/US10250461B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7813822B1 (en) * | 2000-10-05 | 2010-10-12 | Hoffberg Steven M | Intelligent electronic appliance system and method |
US7920549B2 (en) * | 2005-07-20 | 2011-04-05 | Verizon Business Global Llc | Method and system for providing secure media gateways to support interdomain traversal |
US8184641B2 (en) * | 2005-07-20 | 2012-05-22 | Verizon Business Global Llc | Method and system for providing secure communications between proxy servers in support of interdomain traversal |
US20090276771A1 (en) * | 2005-09-15 | 2009-11-05 | 3Tera, Inc. | Globally Distributed Utility Computing Cloud |
US8316125B2 (en) * | 2009-08-31 | 2012-11-20 | Red Hat, Inc. | Methods and systems for automated migration of cloud processes to external clouds |
US20110126197A1 (en) * | 2009-11-25 | 2011-05-26 | Novell, Inc. | System and method for controlling cloud and virtualized data centers in an intelligent workload management system |
US20120304170A1 (en) * | 2011-05-27 | 2012-11-29 | Morgan Christopher Edwin | Systems and methods for introspective application reporting to facilitate virtual machine movement between cloud hosts |
US20130339510A1 (en) * | 2012-06-15 | 2013-12-19 | Digital River, Inc | Fast provisioning service for cloud computing |
US9742873B2 (en) * | 2012-11-29 | 2017-08-22 | International Business Machines Corporation | Adjustment to managed-infrastructure-as-a-service cloud standard |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160105321A1 (en) * | 2014-10-13 | 2016-04-14 | Vmware, Inc. | Cross-cloud policy management for hybrid cloud deployments |
US10530650B2 (en) * | 2014-10-13 | 2020-01-07 | Vmware, Inc. | Cross-cloud policy management for hybrid cloud deployments |
US10193753B1 (en) * | 2015-08-31 | 2019-01-29 | EMC IP Holding Company LLC | Automated configuration and deployment of internet of things platforms |
US10673973B2 (en) | 2018-09-12 | 2020-06-02 | International Business Machines Corporation | Multiple vendor services oriented architecture (SOA) service requesting proxy |
US11307848B2 (en) | 2019-07-01 | 2022-04-19 | Bank Of America Corporation | System for electronic integration and deployment of computer code in a code development network |
US11397606B2 (en) | 2019-08-14 | 2022-07-26 | T-Mobile Usa, Inc. | Systems and methods for automated monitoring and troubleshooting of unknown dependencies in a virtual infrastructure |
US10999162B1 (en) * | 2020-05-15 | 2021-05-04 | HashiCorp | Ticket-based provisioning of cloud infrastructure for a SaaS provider |
US11418415B2 (en) | 2020-05-15 | 2022-08-16 | HashiCorp | Ticket-based provisioning of cloud infrastructure for a SaaS provider |
US11924066B2 (en) | 2020-05-15 | 2024-03-05 | HashiCorp | Ticket-based provisioning of cloud infrastructure for a SaaS provider |
Also Published As
Publication number | Publication date |
---|---|
US9686154B2 (en) | 2017-06-20 |
US20150058459A1 (en) | 2015-02-26 |
US9992080B2 (en) | 2018-06-05 |
US10250461B2 (en) | 2019-04-02 |
US20180191582A1 (en) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10250461B2 (en) | Migrating legacy non-cloud applications into a cloud-computing environment | |
US11405274B2 (en) | Managing virtual network functions | |
CN113678100B (en) | A method, system and computer program product for unified and automated installation, deployment, configuration and management of software-defined storage assets | |
US11119746B2 (en) | Extensions for deployment patterns | |
US11281442B1 (en) | Discovery and distribution of software applications between multiple operational environments | |
US10225335B2 (en) | Apparatus, systems and methods for container based service deployment | |
US20190149420A1 (en) | System and method for automated system management | |
US9513938B2 (en) | Virtual appliance integration with cloud management software | |
US10873501B2 (en) | Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment | |
US20190327144A1 (en) | Methods and apparatus for template driven infrastructure in virtualized server systems | |
US20170201569A1 (en) | Apparatus, systems and methods for automatic distributed application deployment in heterogeneous environments | |
US11528186B2 (en) | Automated initialization of bare metal servers | |
US10951469B2 (en) | Consumption-based elastic deployment and reconfiguration of hyper-converged software-defined storage | |
US9959157B1 (en) | Computing instance migration | |
US20180157560A1 (en) | Methods and apparatus for transparent database switching using master-replica high availability setup in relational databases | |
US12177227B2 (en) | Methods and apparatus to expose cloud infrastructure resources to tenants in a multi-tenant software system | |
US20230239301A1 (en) | Methods and apparatus for sharing cloud resources in a multi-tenant system using self-referencing adapter | |
US20220357997A1 (en) | Methods and apparatus to improve cloud management | |
US9747091B1 (en) | Isolated software installation | |
US11750451B2 (en) | Batch manager for complex workflows | |
US20230237402A1 (en) | Methods, systems, apparatus, and articles of manufacture to enable manual user interaction with automated processes | |
WO2024118056A1 (en) | Cloud initiated bare metal as a service for on-premises servers | |
US11647105B1 (en) | Generating multi-layer configuration templates for deployment across multiple infrastructure stack layers | |
US11743188B2 (en) | Check-in monitoring for workflows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AMENDJIAN, HAGOP;BERGMAN, THOMAS S.;GUPTA, MANVENDRA;AND OTHERS;SIGNING DATES FROM 20130812 TO 20130820;REEL/FRAME:040975/0517 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: KYNDRYL, INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:057885/0644 Effective date: 20210930 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: SURCHARGE FOR LATE PAYMENT, LARGE ENTITY (ORIGINAL EVENT CODE: M1554); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |