WO2020067871A1 - Virtual appliance configuration management in cloud environment - Google Patents
Virtual appliance configuration management in cloud environment Download PDFInfo
- Publication number
- WO2020067871A1 WO2020067871A1 PCT/MY2019/050064 MY2019050064W WO2020067871A1 WO 2020067871 A1 WO2020067871 A1 WO 2020067871A1 MY 2019050064 W MY2019050064 W MY 2019050064W WO 2020067871 A1 WO2020067871 A1 WO 2020067871A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- environmental
- vas
- applications
- attributes
- application
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Definitions
- the present invention relates to the field of virtual appliance configuration management in cloud environment for updating/upgrading a virtual machine image.
- VA virtual appliance
- customers may then run the operating system within a hypervisor that emulates the relevant hardware environment.
- VAs may be deployed in multiple varying ways, including in hosted environments (e.g., to deliver an application as a service), cloud computing environments (e.g., to reduce the resources needed to run an application), or various other environments.
- VAs also aid in simplifying issues relating to support, security, and complexity of software products by reducing the volume of operating system components, services, and applications necessary to deliver an application to customers with different computational requirements.
- the‘910 publication also discloses about selective updating of the portions of the VM image, wherein risk, cost, urgency and time involved in the updates are determined and evaluated, and, based on the updates due date/time and total time of updates, the updates are queued and the alerts are generated to the user.
- the‘910 publication has certain limitations, for example, it does not support VA configuration management in cloud environment.
- the ‘910 publication does not determine factors that influence functioning of the corresponding VA images to achieve a substantial control over the updating/upgrading process.
- the present invention proposes a system and method for managing configuration of one or more virtual appliances (VAs) in a cloud environment.
- the VAs can be configured in the cloud environment using a user manager operatively coupled with a computing device, which maintains records of each of the one or more VAs.
- An aspect of the present invention relates to a method for managing configuration of one or more VAs in a cloud environment, characterized in that the method can include the steps of: configuring a user manager that is operatively coupled with a computing device, wherein the user manager can perform the steps of: managing the one or more VAs, said managing comprising maintaining, for each of said one or more managed VAs, a record pertaining to one or more environmental attributes and one or more applications configured therein, analyzing a set of said plurality of records of the one or more VAs so as to determine dependency of each VA with respect to its said one or more environmental attributes and said one or more applications configured therein, determining whether an existing VA with respect to at least one of an environmental attribute or an application configured therein requires an upgrade such that upon said determination being affirmative, one or more potential VAs are generated based on any or a combination of said determined dependencies, the environment attribute, the application and threshold time duration for upgrading.
- said maintaining can further comprise categorizing said one or more environmental attributes and said one or more applications of each VA, and then maintaining the plurality of records for each VA.
- an alert is generated to confirm requirement of the upgrade.
- an alert is generated to confirm that no upgrade is possible.
- each category of the one or more environmental attributes and the one or more applications of each VA is associated with an impact based on severity and influence of the said one or more environmental attributes and said one or more applications on said VA, and wherein a sequence of upgrading any of the one or more environment attributes or the one or more applications is based on said impact.
- VA management engine for managing the one or more virtual appliances (VAs), said managing comprising maintaining, for each of said one or more managed VAs, a record pertaining to one or more environmental attributes and one or more applications configured therein, a dependency analysis engine for analyzing a set of said plurality of records of the one or more VAs so as to determine dependency of each VA with respect to its said one or more environmental attributes and said one or more applications configured therein, and a VA upgrade engine for determining whether an existing VA with respect to at least one of an environmental attribute or an application requires an upgrade such that upon said determination being affirmative, one or more potential VAs are generated based on any or a combination of said determined dependencies, the environment attribute, the application and threshold time duration for upgrading.
- VA management engine for managing the one or more virtual appliances (VAs)
- VAs virtual appliances
- FIG. 1 illustrates an exemplary network architecture in which or with which proposed system can be implemented in accordance with an embodiment of the present invention.
- FIG. 2 illustrates exemplary functional modules of a user manager in accordance with an embodiment of the present invention
- FIG. 3 illustrates an exemplary architecture representing implementation of a user manager to manage configuration of one or more VAs in cloud environment in accordance with an embodiment of the present invention.
- FIG. 4 illustrates an exemplary architecture representing implementation of a user manager to maintain a list of VAs based on dependency information in accordance with an embodiment of the present invention.
- FIGs 5A-B illustrate exemplary representations of triggering an alert to a user device for VA configuration according to an embodiment of the present invention.
- FIG. 6 illustrates an exemplary flow diagram representing working of the proposed system in accordance with an embodiment of the present invention.
- FIG. 7 illustrates an exemplary representation of a flow diagram for creating different categories in accordance with an embodiment of the present invention.
- FIG. 8 illustrates an exemplary representation of a flow diagram to create identification for category breakdown in accordance with an embodiment of the present invention.
- FIG. 9 illustrates an exemplary computer system in which or with which embodiments of the present invention can be utilized in accordance with embodiments of the present invention.
- VAs Virtual Appliances
- Virtual Appliance A software application that resides and operates in a preconfigured virtual environment or platform and is accessed remotely by users with no requirement of locally-installed hardware.
- Cloud Environment An environment to implement a computing paradigm with virtual network of remote servers allowing users to store, process and access data, providing on-demand computational services with features like elasticity, scalability, security and redundancy.
- the present invention relates to a system for providing VA configuration management in a cloud environment.
- the system can manage one or more available VAs by maintaining a record for each of the one or more available VAs.
- the record for each available VA can include a plurality of environment attributes and application(s) that pertain to the respective available VA.
- the system can analyze its respective record so as to determine dependency between the environment attributes and the application (s) of the respective VA.
- one or more potential VAs are generated based on the at least the application or the environment, dependencies between the environment attributes and the application(s), and threshold time duration for upgradation.
- the front-end is the side that is visible to client, customer, or user and can include user computing devices and applications required to access computing services.
- the back-end side can be used by a service provider and can include various servers, computers, data storage systems, virtual machines, and programs that together constitute the cloud of computing services.
- the back-end side can also be responsible for providing security mechanisms, traffic control and protocols that connect networked computers for communication.
- FIG. 1 illustrates an exemplary network architecture (100) in which or with which proposed system can be implemented in accordance with an embodiment of the present invention.
- proposed system can include a user manager (102) that can be communicatively coupled with plurality of user devices (106-1 , 106-2. 108-N) (collectively referred to as user devices (106) and individually referred to as user device (106) hereinafter) through network (104)
- the user manager (102) can be implemented in a computing device configured in a network (104) such as a server.
- the user manager (102) is implemented as an application on a server, it may be understood that the user manager (102) may also be implemented in a variety of computing systems using any or a combination of hardware components and software components such as a computing system, a computing device, a security device, a network device and the like, such that embodiments of the present invention can manage configuration of VAs.
- the user manager (102) can interact with users (108-1 , 1G8-2...108-N) (collectively referred to as users (108), and individually referred to as user (108) hereinafter), through the user devices (106) or through applications residing on the user devices (106).
- the user manager (102) can be accessed by applications residing on any operating system, including but not limited to, AndroidTM, iOSTM, and the like.
- Examples of the user devices (106) can include, but are not limited to, mobile phones, desktop computers, personal computers, laptops, tablet PCs, portable computers, personal digital assistants and handheld devices.
- the user devices (106) can be any suitable computing device configured, programmed, or adapted to perform one or more of the functions of the user manager (102).
- the network (104) can be a wireless network, a wired network or a combination thereof that can be implemented as one of the different types of networks, such as Intranet, Local Area Network (LAN), Wide Area Network (WAN), Internet, and the like. Further, the network (104) can either be a dedicated network or a shared network.
- the shared network can represent an association of the different types of networks that can use variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), and the like.
- HTTP Hypertext Transfer Protocol
- TCP/IP Transmission Control Protocol/Internet Protocol
- WAP Wireless Application Protocol
- the user devices (106) can be physically or virtually grouped, in one or more networks, such as private, community, public, or hybrid clouds, or a combination thereof that can allow cloud computing environment 100 to offer infrastructure, platforms and/or software as services for which that user (108) may not require to maintain resources on user device (106).
- networks such as private, community, public, or hybrid clouds, or a combination thereof that can allow cloud computing environment 100 to offer infrastructure, platforms and/or software as services for which that user (108) may not require to maintain resources on user device (106).
- the user manager (102) aims to enable the user (108) to create own suitable binary environment from existing VAs, advise the users (108) on the list of upgradable software binary, and estimate time duration for preparing the package binary environment.
- the user manager (102) can manage available VAs by maintaining record of each VA.
- the records of each VA can include environmental attributes and applications configured in the respective VA along with date of creating or installing, version of VA, bug fixes, and the likes. Further, the user manager (102) can analyze each record to determine dependency between the applications and the environment.
- the dependency information can be listed in a separate repository such as a database, a hard disk or cloud storage. Further, the list can include breakdown categories of the environmental attributes and the applications, which can be required to determine a synchronize condition for upgrading configuration of the VA.
- FIG. 2 illustrates exemplary functional modules of the user manager (102) in accordance with an embodiment of the present invention.
- a system (200), which may comprise a user manager (102), can include one or more processor(s) (202).
- the processor(s) (202) can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, logic circuitries, and/or any devices that manipulate data based on operational instructions.
- the processor(s) (202) are configured to fetch and execute computer- readable instructions stored in a memory (204) of the system (200).
- the memory (204) can store one or more computer-readable instructions or routines, which may be fetched and executed to create or share the data units over a network service.
- the memory (204) can include any non-transitory storage device including, for example, volatile memory such as RAM, or non-volatile memory such as EPROM, flash memory, and the like.
- volatile memory such as RAM
- non-volatile memory such as EPROM, flash memory, and the like.
- the memory (204) may be a local memory or may be located remotely, such as a server, a file server, a data server, and the cloud.
- the system (200) can also include one or more interface(s) (206).
- the interface(s) (206) may include a variety of interfaces, for example, interfaces for data input and output devices, referred to as I/O devices, storage devices, and the like.
- the interface(s) (206) may facilitate communication of the system (200) with various devices coupled to the system (200).
- the interface(s) (206) may also provide a communication pathway for one or more components of the system (200). Examples of such components include, but are not limited to, processing engine(s) (208) and data (210).
- the processing engine(s) (208) can be implemented as a combination of hardware and software or firmware programming (for example, programmable instructions) to implement one or more functionalities of the engine(s) (208).
- the programming for the engine(s) may be processor executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the engine(s) (208) may include a processing resource (for example, one or more processors), to execute such instructions.
- the machine-readable storage medium may store instructions that, when executed by the processing resource, implement one or more functionalities of the engine(s) (208).
- the system (200) can include the machine-readable storage medium storing the instructions and the processing resource to execute the instructions, or the machine-readable storage medium may be separate but accessible to the system (200) and the processing resource.
- the processing engine(s) (208) may be implemented by electronic circuitry.
- the data (210) can include data that is either stored or generated as a result of functionalities implemented by any of the components of the processing engine(s) (208).
- the processing engine(s) (208) can include a VA management engine (212), a dependency analysis engine (214), a VA upgrade engine (216) and other engine(s) (218).
- Other engine(s) (218) can implement functionalities that supplement applications or functions performed by system or processing engine(s) (208).
- the VA can be a virtual machine image file that can include a pre-configured environment and ready-to-run applications.
- the VA management engine (212) can manage various available VAs by maintaining a record of each VA.
- Each record can pertain to one or more attributes of the environment (referred to as environmental attributes hereinafter) and one or more applications configured in the VA.
- the environmental attributes can include operating system, software binaries, libraries, bug/security fixes, hardware attributes, and the likes.
- the records can also include information, such as but not limited to, date of creating or installing VAs, version of VAs and the likes.
- the environmental attributes and the applications of each VA can be categorized or broken down into categories including but not limited to operating system, bugs/security fixes, programming language, and the like that can influence functioning of the corresponding VA.
- categories including but not limited to operating system, bugs/security fixes, programming language, and the like that can influence functioning of the corresponding VA.
- the categorization can be significant for updating/upgrading the VAs to achieve a synchronize condition.
- each category can be associated with an impact, for example, a high impact, a medium impact or a low/no impact, based on severity and influence of the environmental attributes and/or the applications on the VA such that the sequence of upgrading any of the environment attribute or the application can be based on the impact.
- the categories with high impact can be given a priority during the upgrade process.
- the VA like any other software product, may need to be upgraded to fix bugs or add features. Upgrading the VA is complicated as both applications as well as environment attributes may be required to be updated, and there are often dependencies between these two components. Therefore, in an embodiment, a dependency analysis engine (214) can analyze a set of plurality of records to determine dependency of each VA with respect to its environmental attributes and applications.
- a VA upgrade engine (216) can determine whether an existing VA requires an upgrade with respect to any environmental attribute or any application. Upon the determination being affirmative, the VA upgrade engine (216) can generate various potential VAs based on any or a combination of the determined dependencies, the environment attribute and the application. Various potential VA can also be generated based on threshold time duration for upgrading. An exemplary technique for determining threshold time duration for upgrading is further elaborated below.
- the VA upgrade engine (216) can select a potential VA from the various potential VAs that can be an upgraded version of the existing VA. The selection can be based on an optimal combination of the environmental attributes and applications that form part of each potential VA.
- the VA upgrade engine (216) can also trigger alerts for upgrading the VA on the user device (106) such that the user (108) is aware whether an existing VA requires an upgrade or not. In an example, when at least one environmental attribute or the application of the existing VA is in synchronization with the corresponding environmental attribute or the application of the selected potential VA, an alert can be generated to confirm requirement of the upgrade.
- FIG. 3 illustrates an exemplary architecture (300) representing implementation of a user manager (102) to manage configuration of one or more VAs (302) in a cloud environment in accordance with an embodiment of the present invention.
- VAs (302) multiple different VAs (302-1 , 302-2...302-N) (collectively referred to as VAs (302) and individually referred to as VA (302)) can be configured or used by users (108).
- the user manager (102) manages configuration of existing VAs (304) as well as potential VAs (306) that are required for upgrading the existing VAs (304).
- a new set of potential VAs (306) can be created based on different types of potential environmental attributes, applications, time, etc.
- Each of the potential environmental attributes and applications can be further broken down into categories including, but not limited to, operating system, bugs, programming language and the like.
- the user manager (102) can also perform synchronization as each VA has dependency on the categories of each other.
- FIG. 4 illustrates an exemplary architecture representing implementation of a user manager (102) to maintain a list of VAs based on dependency information in accordance with an embodiment of the present invention.
- a user (108) can install/configure a VA (302) through a user manager (102).
- the user manager (102) can maintain records of the VAs (302) that can contain environmental attributes and applications configured in each VA (302).
- the user manager (102) can further breakdown/categorize the environmental attributes and applications into categories such as operating system, bugs, programming language and the likes. Further, dependencies between environmental attributes and applications or their corresponding categories and can be stored as identified dependency information in a repository (404).
- the identification dependency of each VA (302) stored in repository (404) can be updated frequently A list of VAs ⁇ 302 ⁇ along with their identified dependency can be listed in the VA list (402)
- the VA list (402) can be embedded in the user manager (102)
- the VA list (402) can include information on which the following functions can be performed by checking and identification of the VA (302) to be configured, getting an identification for dependency related to each VA (302), and then determining and verifying the date of upgrade of the VA (302) to determine if the VA (302) is updated to a correct version.
- threshold time configuration can be determined for various categories. Examples of various time configurations based on a set of time values are mentioned below:
- the user manager (102) can select an appropriate version of an operating system and services and can determine threshold time duration for upgrading the VA.
- the user manager (102) can analyze the record of the VA (302) before triggering an alert to a user. Examples of configuration items (environmental attributes or application) are listed below:
- changes observed during the configuration/ update of the VA (302) can be tracked and controlled.
- An example of identifying configuration item (environmental attribute or application), which may require an upgrade is provided below:
- a trigger for generating an alert on the user device (106) can be created.
- Each identification can have a corresponding sensitive condition that can trigger some alarm or alert on the user device (106) such that the user (108) is informed about the VA (302) that is due for upgrade or new configuration.
- F!Gs 5A ⁇ B illustrate exemplary representations of triggering an alert to a user device for VA configuration according to an embodiment of the present invention.
- a trigger can be generated to indicate a category to be upgraded in a VA (302).
- analysis of the VA (302) can be performed for upgradation.
- each category of the environmental attribute or the application can be associated with an impact based on severity and influence of the environmental attribute or the application on the VA (302).
- sequence in which the environmental attribute or the application is required to be upgraded can depend on the associated impact. For example, as illustrated in FIG 5B, based on associated impact; the sequence of upgrade can be determined to be operating system followed by software binaries and library.
- FIG. 6 illustrates an exemplary flow diagram (600) representing working of the proposed system in accordance with an embodiment of the present invention.
- various VAs can be managed by maintaining a record for each VA.
- the record can include environmental attributes as well as applications configured in the VA.
- the records can be maintained after categorizing the environmental attributes and the applications into various categories including, but not limited to, operating system, bugs, library, programming language and the like.
- a set of plurality of records can be analyzed to determine dependency of each VA with respect to its environmental attributes and applications. For example, dependency between environmental attributes and applications in each VA can be determined.
- it can be determined whether an existing VA requires an upgrade with respect to any environmental attribute or any application. Upon the determination being affirmative, various potential VAs can be generated based on any or a combination of the determined dependencies, the environment attribute, the application, or the threshold time duration for upgrading.
- FIG. 7 illustrates an exemplary representation of a flow diagram (700) for creating different categories in accordance with an embodiment of the present invention.
- categories of various environmental attributes and applications of each VA are found and created from records maintained by the user manager. Further, at block (704), the environmental attributes and the applications can be broken down into detail relationship category. At block (706) dependency of the categories on each other can be determined, for example, dependencies between environmental attributes and applications of each VA can be determined. If a dependency of the categories on each other is not found (708), the process may continue at block (702), to categorize sub-attributes of each of environmental attribute and sub-application of each application. A sub-record pertaining to one or more sub-attributes and one or more sub-applications is maintained for each of the environmental attributes and applications and is analyzed to determine dependencies between the environmental attributes and the applications of each VA.
- each category can be distinguished based on an associated impact, such that at block (714) a sequence can be consolidated based on the impact being scaled from high to low/no impact.
- an upgrade sequence can be generated at (716) by arranging the categories to be configured in the VA in an order from a high impact to no impact.
- FIG. 8 illustrates an exemplary representation of a flow diagram (800) to create identification for category breakdown in accordance with an embodiment of the present invention.
- a unique identity for each breakdown category can be provided.
- a probable due VA upgrade period can be determined.
- time for each breakdown category to be upgraded can be estimated.
- the estimated time for upgrade of each breakdown category can be combined with an expected date on which the VA is due for upgrade.
- a list of the items that are required to be upgraded in the VA can be created, at block (812), based on the identification information and when an upgrade is due, an alert can be triggered that can inform the user about the upgrade.
- FIG. 9 illustrates an exemplary computer system (900) in which or with which embodiments of the present invention can be utilized in accordance with embodiments of the present invention.
- computer system (900) which may represent the proposed system (200) or user manager (102) can include an external storage device (910), a bus (920), a main memory (930), a read only memory (940), a mass storage device (950), communication port (960), and a processor (970).
- processor (970) include, but are not limited to, an Intel® Itanium® or Itanium 2 processor(s), or AMD® Opteron® or Athlon MR® processor(s), Motorola® lines of processors, FortiSOCTM system on a chip processors or other future processors.
- Processor (970) may include various modules associated with embodiments of the present invention.
- Communication port (960) can be any of an RS-232 port for use with a modem-based dialup connection, a 10/100 Ethernet port, a Gigabit or 10 Gigabit port using copper or fiber, a serial port, a parallel port, or other existing or future ports.
- Communication port (960) may be chosen depending on a network, such a Local Area Network (LAN), Wide Area Network (WAN), or any network to which computer system connects.
- LAN Local Area Network
- WAN Wide Area Network
- Memory (930) can be Random Access Memory (RAM), or any other dynamic storage device commonly known in the art.
- Read only memory (940) can be any static storage device(s) e.g., but not limited to, a Programmable Read Only Memory (PROM) chips for storing static information e.g , start-up or BIOS instructions for processor (970).
- Mass storage (950) may be any current or future mass storage solution, which can be used to store information and/or instructions. Exemplary mass storage solutions include, but are not limited to, Parallel Advanced Technology Attachment (RATA) or Serial Advanced Technology Attachment (SATA) hard disk drives or solid-state drives (internal or external, e.g., having Universal Serial Bus (USB) and/or Firewire interfaces), e.g.
- RAA Parallel Advanced Technology Attachment
- SATA Serial Advanced Technology Attachment
- USB Universal Serial Bus
- Firewire interfaces e.g.
- Seagate e.g., the Seagate Barracuda 7200 family
- Hitachi e.g., the Hitachi Deskstar 7K1000
- one or more optical discs e.g., Redundant Array of Independent Disks (RAID) storage, e.g. an array of disks (e.g., SATA arrays), available from various vendors including Dot Hill Systems Corp., LaCie, Nexsan Technologies, Inc. and Enhance Technology, Inc.
- RAID Redundant Array of Independent Disks
- Bus (920) communicatively couples processor(s) (970) with the other memory, storage and communication blocks.
- Bus (920) can be, e.g. a Peripheral Component Interconnect (PCI) / PCI Extended (PCI-X) bus, Small Computer System Interface (SCSI), USB or the like, for connecting expansion cards, drives and other subsystems as well as other buses, such a front side bus (FSB), which connects processor (970) to software system.
- PCI Peripheral Component Interconnect
- PCI-X PCI Extended
- SCSI Small Computer System Interface
- FFB front side bus
- operator and administrative interfaces e.g. a display, keyboard, and a cursor control device
- bus (920) may also be coupled to bus (920) to support direct operator interaction with computer system.
- Other operator and administrative interfaces can be provided through network connections connected through communication port (960).
- External storage device (910) can be any kind of external hard-drives, floppy drives, IOMEGA® Zip Drives, Compact Disc - Read Only Memory (CD- ROM), Compact Disc - Re-Writable (CD-RW), Digital Video Disk - Read Only Memory (DVD-ROM).
- CD- ROM Compact Disc - Read Only Memory
- CD-RW Compact Disc - Re-Writable
- DVD-ROM Digital Video Disk - Read Only Memory
- Embodiments of the present invention may be provided as a computer program product, which may include a machine-readable storage medium tangibly embodying thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process.
- the machine-readable medium may include, but is not limited to, fixed (hard) drives, magnetic tape, floppy diskettes, optical disks, compact disc read-only memories (CD-ROMs), and magneto-optical disks, semiconductor memories, such as ROMs, PROMs, random access memories (RAMs), programmable read-only memories (PROMs), erasable PROMs (EPROMs), electrically erasable PROMs (EEPROMs), flash memory, magnetic or optical cards, or other type of media/machine-readable medium suitable for storing electronic instructions (e.g., computer programming code, such as software or firmware).
- An apparatus for practicing various embodiments of the present invention may involve one or more computers (or one or more processors within a single computer) and storage systems containing or having network access to computer program(s) coded in accordance with various methods described herein, and the method steps of the invention could be accomplished by modules, routines, subroutines, or subparts of a computer program product.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
A method for managing configuration of virtual appliances (VAs) in a cloud environment is disclosed. The method comprises configuring a user manager that is operatively coupled with a computing device, wherein the user manager performs: managing (602) the VAs, said managing comprising maintaining, for each of the managed VAs, a record pertaining to environmental attributes and application(s) configured therein; analyzing (604) the records of the VAs; and determining (606) whether an existing VA with respect to at least one of an environmental attribute or an application configured therein requires an upgrade.
Description
VIRTUAL APPLIANCE CONFIGURATION MANAGEMENT IN CLOUD
ENVIRONMENT
FIELD OF THE INVENTION
The present invention relates to the field of virtual appliance configuration management in cloud environment for updating/upgrading a virtual machine image.
BACKGROUND
The concept of virtualization can simplify production and distribution of software by reducing or eliminating a need for hardware optimization. For example, an operating system vendor may create a virtual appliance (VA) including components of the operating system, and customers may then run the operating system within a hypervisor that emulates the relevant hardware environment. Furthermore, VAs may be deployed in multiple varying ways, including in hosted environments (e.g., to deliver an application as a service), cloud computing environments (e.g., to reduce the resources needed to run an application), or various other environments. In addition to this, VAs also aid in simplifying issues relating to support, security, and complexity of software products by reducing the volume of operating system components, services, and applications necessary to deliver an application to customers with different computational requirements.
Despite the various advantages that virtualization can provide to software providers, existing systems and methods do not provide for methods to update the existing VAs as customers are unaware of contents of the provided packaged binary versions delivered along with the VA, which can only be upgraded and/or installed. Further, addition and/or removal of an element from the provided packaged binary version can lead to dependency errors.
The US Patent Publication No.US20150081910A1 {‘910 publication) discloses various aspects of receiving update requests for a Virtual Machine (VM) image and determining portions of the VM image to be updated based on history of the logged past VM requests and data regarding software patch and update information about pending patches and/or updates. Further, the‘910 publication also discloses about selective updating of the portions of the VM image, wherein risk, cost, urgency and time involved in the updates are determined and evaluated, and, based on the updates due date/time and total time of updates, the updates are queued and the alerts are generated to the user. However, the‘910 publication has certain limitations, for example, it does not support VA configuration management in cloud environment. Furthermore, the ‘910 publication does not determine factors that influence functioning of the corresponding VA images to achieve a substantial control over the updating/upgrading process.
There is therefore a need in the art for an efficient virtual appliance configuration management system in a cloud environment that enables the users to create suitable binary environment from the VMs for updating/upgrading the VM image while alerting the users about upgradable software binary.
SUGARY
The present invention proposes a system and method for managing configuration of one or more virtual appliances (VAs) in a cloud environment. In accordance with this invention, the VAs can be configured in the cloud environment using a user manager operatively coupled with a computing device, which maintains records of each of the one or more VAs.
An aspect of the present invention relates to a method for managing configuration of one or more VAs in a cloud environment, characterized in that the method can include the steps of: configuring a user manager that is operatively coupled with a computing device, wherein the user manager can perform the steps of: managing the one or more VAs, said managing comprising maintaining, for each of said one
or more managed VAs, a record pertaining to one or more environmental attributes and one or more applications configured therein, analyzing a set of said plurality of records of the one or more VAs so as to determine dependency of each VA with respect to its said one or more environmental attributes and said one or more applications configured therein, determining whether an existing VA with respect to at least one of an environmental attribute or an application configured therein requires an upgrade such that upon said determination being affirmative, one or more potential VAs are generated based on any or a combination of said determined dependencies, the environment attribute, the application and threshold time duration for upgrading.
According to an embodiment, said maintaining can further comprise categorizing said one or more environmental attributes and said one or more applications of each VA, and then maintaining the plurality of records for each VA.
According to an embodiment, when the at least one environmental attribute or the application of the existing VA is in synchronization with the corresponding environmental attribute or the application of the selected potential VA, an alert is generated to confirm requirement of the upgrade. Conversely, when the environmental attribute or the application for none of the one or more potential VAs is in synchronization with the corresponding environmental attribute or the application of the existing VA, an alert is generated to confirm that no upgrade is possible.
According to an embodiment, each category of the one or more environmental attributes and the one or more applications of each VA is associated with an impact based on severity and influence of the said one or more environmental attributes and said one or more applications on said VA, and wherein a sequence of upgrading any of the one or more environment attributes or the one or more applications is based on said impact.
Another aspect of the present invention relates to a system comprising a user manager that is operatively coupled with a computing device, characterized in that the user manager can enable management of configuration of one or more VAs in
a cloud environment by means of: a VA management engine for managing the one or more virtual appliances (VAs), said managing comprising maintaining, for each of said one or more managed VAs, a record pertaining to one or more environmental attributes and one or more applications configured therein, a dependency analysis engine for analyzing a set of said plurality of records of the one or more VAs so as to determine dependency of each VA with respect to its said one or more environmental attributes and said one or more applications configured therein, and a VA upgrade engine for determining whether an existing VA with respect to at least one of an environmental attribute or an application requires an upgrade such that upon said determination being affirmative, one or more potential VAs are generated based on any or a combination of said determined dependencies, the environment attribute, the application and threshold time duration for upgrading.
Various objects, features, aspects and advantages of the inventive subject matter will become more apparent from the following detailed description of preferred embodiments, along with the accompanying drawing figures in which like numerals represent like components.
BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS
In the figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label with a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.
FIG. 1 illustrates an exemplary network architecture in which or with which proposed system can be implemented in accordance with an embodiment of the present invention.
FIG. 2 illustrates exemplary functional modules of a user manager in accordance with an embodiment of the present invention
FIG. 3 illustrates an exemplary architecture representing implementation of a user manager to manage configuration of one or more VAs in cloud environment in accordance with an embodiment of the present invention.
FIG. 4 illustrates an exemplary architecture representing implementation of a user manager to maintain a list of VAs based on dependency information in accordance with an embodiment of the present invention.
FIGs 5A-B illustrate exemplary representations of triggering an alert to a user device for VA configuration according to an embodiment of the present invention.
FIG. 6 illustrates an exemplary flow diagram representing working of the proposed system in accordance with an embodiment of the present invention.
FIG. 7 illustrates an exemplary representation of a flow diagram for creating different categories in accordance with an embodiment of the present invention. FIG. 8 illustrates an exemplary representation of a flow diagram to create identification for category breakdown in accordance with an embodiment of the present invention.
FIG. 9 illustrates an exemplary computer system in which or with which embodiments of the present invention can be utilized in accordance with embodiments of the present invention.
DETAILED DESCRIPTION
!n accordance with the present invention, there is provided a system and a method for enabling management of configuration of Virtual Appliances (VAs) in a cloud environment, which will now be described with reference to the embodiment shown in the accompanying drawings. The embodiment does not limit the scope
and ambit of the invention. The description relates purely to the exemplary embodiment and its suggested applications.
The embodiment herein and the various features and advantageous details thereof are explained with reference to the non-limiting embodiment in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiment herein may be practiced and to further enable those of skill in the art to practice the embodiment herein. Accordingly, the description should not be construed as limiting the scope of the embodiment herein.
The description hereinafter, of the specific embodiment will so fully reveal the general nature of the embodiments herein that others can, by applying current knowledge, readily modify or adapt or perform both for various applications such specific embodiment without departing from the generic concept, and, therefore, such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Various terms as used herein are defined below. To the extent a term used in a claim is not defined below, it should be given the broadest definition persons in the pertinent art have given that term as reflected in printed publications and issued patents at the time of filing.
Definitions:
Virtual Appliance: A software application that resides and operates in a preconfigured virtual environment or platform and is accessed remotely by users with no requirement of locally-installed hardware.
Cloud Environment: An environment to implement a computing paradigm with virtual network of remote servers allowing users to store, process and access data, providing on-demand computational services with features like elasticity, scalability, security and redundancy.
The present invention relates to a system for providing VA configuration management in a cloud environment. The system can manage one or more available VAs by maintaining a record for each of the one or more available VAs. The record for each available VA can include a plurality of environment attributes and application(s) that pertain to the respective available VA. Further, for each available VA, the system can analyze its respective record so as to determine dependency between the environment attributes and the application (s) of the respective VA. Finally, if it is determined that the existing VA is to be upgraded with respect to at least the application or the environment, one or more potential VAs are generated based on the at least the application or the environment, dependencies between the environment attributes and the application(s), and threshold time duration for upgradation.
Those skilled in the art would appreciate that architecture of a cloud computing environment can be divided into two sections, namely front end and back end, which are operatively coupled with each other through a network that is usually the Internet. The front-end is the side that is visible to client, customer, or user and can include user computing devices and applications required to access computing services. On the other hand, the back-end side can be used by a service provider and can include various servers, computers, data storage systems, virtual machines, and programs that together constitute the cloud of computing services. The back-end side can also be responsible for providing security mechanisms, traffic control and protocols that connect networked computers for communication.
Referring to the accompanying drawings, FIG. 1 illustrates an exemplary network architecture (100) in which or with which proposed system can be implemented in accordance with an embodiment of the present invention.
As illustrated, in a network architecture (100) that represents a cloud environment, proposed system can include a user manager (102) that can be communicatively coupled with plurality of user devices (106-1 , 106-2. 108-N) (collectively referred to as user devices (106) and individually referred to as user device (106) hereinafter) through network (104) The user manager (102) can be implemented in a computing device configured in a network (104) such as a server. Although the present subject-matter is explained considering that the user manager (102) is implemented as an application on a server, it may be understood that the user manager (102) may also be implemented in a variety of computing systems using any or a combination of hardware components and software components such as a computing system, a computing device, a security device, a network device and the like, such that embodiments of the present invention can manage configuration of VAs.
Further, the user manager (102) can interact with users (108-1 , 1G8-2...108-N) (collectively referred to as users (108), and individually referred to as user (108) hereinafter), through the user devices (106) or through applications residing on the user devices (106). In an implementation, the user manager (102) can be accessed by applications residing on any operating system, including but not limited to, Android™, iOS™, and the like. Examples of the user devices (106) can include, but are not limited to, mobile phones, desktop computers, personal computers, laptops, tablet PCs, portable computers, personal digital assistants and handheld devices. Further, it may also be envisioned that the user devices (106) can be any suitable computing device configured, programmed, or adapted to perform one or more of the functions of the user manager (102).
The network (104) can be a wireless network, a wired network or a combination thereof that can be implemented as one of the different types of networks, such as Intranet, Local Area Network (LAN), Wide Area Network (WAN), Internet, and the like. Further, the network (104) can either be a dedicated network or a shared network. The shared network can represent an association of the different types of networks that can use variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP),
Wireless Application Protocol (WAP), and the like. Also, the user devices (106) can be physically or virtually grouped, in one or more networks, such as private, community, public, or hybrid clouds, or a combination thereof that can allow cloud computing environment 100 to offer infrastructure, platforms and/or software as services for which that user (108) may not require to maintain resources on user device (106).
According to various embodiments of the present invention, the user manager (102) aims to enable the user (108) to create own suitable binary environment from existing VAs, advise the users (108) on the list of upgradable software binary, and estimate time duration for preparing the package binary environment.
According to an embodiment, the user manager (102) can manage available VAs by maintaining record of each VA. The records of each VA can include environmental attributes and applications configured in the respective VA along with date of creating or installing, version of VA, bug fixes, and the likes. Further, the user manager (102) can analyze each record to determine dependency between the applications and the environment. The dependency information can be listed in a separate repository such as a database, a hard disk or cloud storage. Further, the list can include breakdown categories of the environmental attributes and the applications, which can be required to determine a synchronize condition for upgrading configuration of the VA.
FIG. 2 illustrates exemplary functional modules of the user manager (102) in accordance with an embodiment of the present invention.
As illustrated, a system (200), which may comprise a user manager (102), can include one or more processor(s) (202). The processor(s) (202) can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, logic circuitries, and/or any devices that manipulate data based on operational instructions. Among other capabilities, the processor(s) (202) are configured to fetch and execute computer- readable instructions stored in a memory (204) of the system (200). The memory (204) can store one or more computer-readable instructions or routines, which
may be fetched and executed to create or share the data units over a network service. The memory (204) can include any non-transitory storage device including, for example, volatile memory such as RAM, or non-volatile memory such as EPROM, flash memory, and the like. In an example embodiment, the memory (204) may be a local memory or may be located remotely, such as a server, a file server, a data server, and the cloud.
The system (200) can also include one or more interface(s) (206). The interface(s) (206) may include a variety of interfaces, for example, interfaces for data input and output devices, referred to as I/O devices, storage devices, and the like. The interface(s) (206) may facilitate communication of the system (200) with various devices coupled to the system (200). The interface(s) (206) may also provide a communication pathway for one or more components of the system (200). Examples of such components include, but are not limited to, processing engine(s) (208) and data (210).
The processing engine(s) (208) can be implemented as a combination of hardware and software or firmware programming (for example, programmable instructions) to implement one or more functionalities of the engine(s) (208). In the examples described herein, such combinations of hardware and software or firmware programming may be implemented in several different ways. For example, the programming for the engine(s) may be processor executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the engine(s) (208) may include a processing resource (for example, one or more processors), to execute such instructions. In the examples, the machine-readable storage medium may store instructions that, when executed by the processing resource, implement one or more functionalities of the engine(s) (208). In such examples, the system (200) can include the machine-readable storage medium storing the instructions and the processing resource to execute the instructions, or the machine-readable storage medium may be separate but accessible to the system (200) and the processing resource. In other examples, the processing engine(s) (208) may be implemented by electronic circuitry. The data (210) can include data that is either stored or generated as a result of
functionalities implemented by any of the components of the processing engine(s) (208).
!n an example, the processing engine(s) (208) can include a VA management engine (212), a dependency analysis engine (214), a VA upgrade engine (216) and other engine(s) (218). Other engine(s) (218) can implement functionalities that supplement applications or functions performed by system or processing engine(s) (208).
Those skilled in the art would appreciate that the VA can be a virtual machine image file that can include a pre-configured environment and ready-to-run applications. In an embodiment, the VA management engine (212) can manage various available VAs by maintaining a record of each VA. Each record can pertain to one or more attributes of the environment (referred to as environmental attributes hereinafter) and one or more applications configured in the VA. The environmental attributes can include operating system, software binaries, libraries, bug/security fixes, hardware attributes, and the likes. The records can also include information, such as but not limited to, date of creating or installing VAs, version of VAs and the likes.
In an embodiment, while maintaining the records, the environmental attributes and the applications of each VA can be categorized or broken down into categories including but not limited to operating system, bugs/security fixes, programming language, and the like that can influence functioning of the corresponding VA. Those skilled in the art would appreciate that the categorization can be significant for updating/upgrading the VAs to achieve a synchronize condition.
In an embodiment, each category can be associated with an impact, for example, a high impact, a medium impact or a low/no impact, based on severity and influence of the environmental attributes and/or the applications on the VA such that the sequence of upgrading any of the environment attribute or the application can be based on the impact. In an example, the categories with high impact can be given a priority during the upgrade process.
Those skilled in the art would appreciate that the VA, like any other software product, may need to be upgraded to fix bugs or add features. Upgrading the VA is complicated as both applications as well as environment attributes may be required to be updated, and there are often dependencies between these two components. Therefore, in an embodiment, a dependency analysis engine (214) can analyze a set of plurality of records to determine dependency of each VA with respect to its environmental attributes and applications.
In an embodiment, a VA upgrade engine (216) can determine whether an existing VA requires an upgrade with respect to any environmental attribute or any application. Upon the determination being affirmative, the VA upgrade engine (216) can generate various potential VAs based on any or a combination of the determined dependencies, the environment attribute and the application. Various potential VA can also be generated based on threshold time duration for upgrading. An exemplary technique for determining threshold time duration for upgrading is further elaborated below.
In an embodiment, the VA upgrade engine (216) can select a potential VA from the various potential VAs that can be an upgraded version of the existing VA. The selection can be based on an optimal combination of the environmental attributes and applications that form part of each potential VA. In an embodiment, the VA upgrade engine (216) can also trigger alerts for upgrading the VA on the user device (106) such that the user (108) is aware whether an existing VA requires an upgrade or not. In an example, when at least one environmental attribute or the application of the existing VA is in synchronization with the corresponding environmental attribute or the application of the selected potential VA, an alert can be generated to confirm requirement of the upgrade. Conversely, when none of the environmental attribute or the application of various potential VAs is in synchronization with the corresponding environmental attribute or the application of the existing VA, an alert can be generated to confirm that no upgrade is possible.
FIG. 3 illustrates an exemplary architecture (300) representing implementation of a user manager (102) to manage configuration of one or more VAs (302) in a cloud environment in accordance with an embodiment of the present invention.
Those skilled in the art would appreciate that, in existing architectures, structure to build a VA is fixed. If a user requires expanding of an environment, directly updating existing VAs may not be possible and thus, the user may have to download/configure new VA. Referring to FIG. 3, according to an aspect of the present invention, multiple different VAs (302-1 , 302-2...302-N) (collectively referred to as VAs (302) and individually referred to as VA (302)) can be configured or used by users (108). The user manager (102) manages configuration of existing VAs (304) as well as potential VAs (306) that are required for upgrading the existing VAs (304). For upgradation of existing VAs (304), a new set of potential VAs (306) can be created based on different types of potential environmental attributes, applications, time, etc. Each of the potential environmental attributes and applications can be further broken down into categories including, but not limited to, operating system, bugs, programming language and the like. The user manager (102) can also perform synchronization as each VA has dependency on the categories of each other.
FIG. 4 illustrates an exemplary architecture representing implementation of a user manager (102) to maintain a list of VAs based on dependency information in accordance with an embodiment of the present invention.
According to an embodiment, a user (108) can install/configure a VA (302) through a user manager (102). The user manager (102) can maintain records of the VAs (302) that can contain environmental attributes and applications configured in each VA (302). The user manager (102) can further breakdown/categorize the environmental attributes and applications into categories such as operating system, bugs, programming language and the likes. Further, dependencies between environmental attributes and applications or their corresponding categories and can be stored as identified dependency information in a repository (404). The identification dependency of each VA (302) stored in repository (404)
can be updated frequently A list of VAs {302} along with their identified dependency can be listed in the VA list (402)
According to an embodiment, the VA list (402) can be embedded in the user manager (102) The VA list (402) can include information on which the following functions can be performed by checking and identification of the VA (302) to be configured, getting an identification for dependency related to each VA (302), and then determining and verifying the date of upgrade of the VA (302) to determine if the VA (302) is updated to a correct version.
In an aspect, to determine which environmental attribute or the application of the VA (302) is to be upgraded initially, threshold time configuration can be determined for various categories. Examples of various time configurations based on a set of time values are mentioned below:
«* 0 - 29 seconds Initial configuration
® 30 - 60 seconds Second configuration «* 60 - 120 seconds Third configuration
According to an embodiment, to configure/update any VA (302), the user manager (102) can select an appropriate version of an operating system and services and can determine threshold time duration for upgrading the VA. The user manager (102) can analyze the record of the VA (302) before triggering an alert to a user. Examples of configuration items (environmental attributes or application) are listed below:
Table 1
According to an embodiment, changes observed during the configuration/ update of the VA (302) can be tracked and controlled. An example of identifying configuration item (environmental attribute or application), which may require an upgrade is provided below:
Table 2
According to an embodiment, upon identification of an item to be upgraded during VA configuration a trigger for generating an alert on the user device (106) can be created. Each identification can have a corresponding sensitive condition that can trigger some alarm or alert on the user device (106) such that the user (108) is informed about the VA (302) that is due for upgrade or new configuration.
F!Gs 5A~B illustrate exemplary representations of triggering an alert to a user device for VA configuration according to an embodiment of the present invention.
As illustrated in FIG 5A, a trigger can be generated to indicate a category to be upgraded in a VA (302). As illustrated in FIG 5B before triggering an alert, analysis of the VA (302) can be performed for upgradation. According to an embodiment each category of the environmental attribute or the application can be associated with an impact based on severity and influence of the environmental attribute or the application on the VA (302). Further, sequence in which the environmental attribute or the application is required to be upgraded can depend on the associated impact. For example, as illustrated in FIG 5B, based on associated impact; the sequence of upgrade can be determined to be operating system followed by software binaries and library.
FIG. 6 illustrates an exemplary flow diagram (600) representing working of the proposed system in accordance with an embodiment of the present invention. According to an embodiment, at block (602), various VAs can be managed by maintaining a record for each VA. The record can include environmental attributes as well as applications configured in the VA. In an embodiment, the records can be maintained after categorizing the environmental attributes and the applications into various categories including, but not limited to, operating system, bugs, library, programming language and the like.
At block (604), a set of plurality of records can be analyzed to determine dependency of each VA with respect to its environmental attributes and applications. For example, dependency between environmental attributes and applications in each VA can be determined.
At block (606), it can be determined whether an existing VA requires an upgrade with respect to any environmental attribute or any application. Upon the determination being affirmative, various potential VAs can be generated based on any or a combination of the determined dependencies, the environment attribute, the application, or the threshold time duration for upgrading.
FIG. 7 illustrates an exemplary representation of a flow diagram (700) for creating different categories in accordance with an embodiment of the present invention.
According to an embodiment, at block (702), categories of various environmental attributes and applications of each VA are found and created from records maintained by the user manager. Further, at block (704), the environmental attributes and the applications can be broken down into detail relationship category. At block (706) dependency of the categories on each other can be determined, for example, dependencies between environmental attributes and applications of each VA can be determined. If a dependency of the categories on each other is not found (708), the process may continue at block (702), to categorize sub-attributes of each of environmental attribute and sub-application of each application. A sub-record pertaining to one or more sub-attributes and one or more sub-applications is maintained for each of the environmental attributes and applications and is analyzed to determine dependencies between the environmental attributes and the applications of each VA.
If the dependency of the categories on each other is found (708), then at block (710) a sequence of upgrading the categories can be initiated. At block (712), each category can be distinguished based on an associated impact, such that at block (714) a sequence can be consolidated based on the impact being scaled from high to low/no impact. Lastly, at block (716) an upgrade sequence can be generated at (716) by arranging the categories to be configured in the VA in an order from a high impact to no impact.
FIG. 8 illustrates an exemplary representation of a flow diagram (800) to create identification for category breakdown in accordance with an embodiment of the present invention.
According to an embodiment, at block (802), a unique identity for each breakdown category can be provided. At block (804), a probable due VA upgrade period can be determined. Further, at block (806) time for each breakdown category to be upgraded can be estimated. At block (808), the estimated time for upgrade of each breakdown category can be combined with an expected date on which the VA is due for upgrade. At block (810), a list of the items that are required to be upgraded in the VA can be created, at block (812), based on the identification information and when an upgrade is due, an alert can be triggered that can inform the user about the upgrade.
FIG. 9 illustrates an exemplary computer system (900) in which or with which embodiments of the present invention can be utilized in accordance with embodiments of the present invention.
As shown in FIG. 9, computer system (900) which may represent the proposed system (200) or user manager (102) can include an external storage device (910), a bus (920), a main memory (930), a read only memory (940), a mass storage device (950), communication port (960), and a processor (970). A person skilled in the art will appreciate that computer system may include more than one processor and communication ports. Examples of processor (970) include, but are not limited to, an Intel® Itanium® or Itanium 2 processor(s), or AMD® Opteron® or Athlon MR® processor(s), Motorola® lines of processors, FortiSOC™ system on a chip processors or other future processors. Processor (970) may include various modules associated with embodiments of the present invention. Communication port (960) can be any of an RS-232 port for use with a modem-based dialup connection, a 10/100 Ethernet port, a Gigabit or 10 Gigabit port using copper or fiber, a serial port, a parallel port, or other existing or future ports. Communication port (960) may be chosen depending on a network, such a Local Area Network (LAN), Wide Area Network (WAN), or any network to which computer system connects.
Memory (930) can be Random Access Memory (RAM), or any other dynamic storage device commonly known in the art. Read only memory (940) can be any static storage device(s) e.g., but not limited to, a Programmable Read Only
Memory (PROM) chips for storing static information e.g , start-up or BIOS instructions for processor (970). Mass storage (950) may be any current or future mass storage solution, which can be used to store information and/or instructions. Exemplary mass storage solutions include, but are not limited to, Parallel Advanced Technology Attachment (RATA) or Serial Advanced Technology Attachment (SATA) hard disk drives or solid-state drives (internal or external, e.g., having Universal Serial Bus (USB) and/or Firewire interfaces), e.g. those available from Seagate (e.g., the Seagate Barracuda 7200 family) or Hitachi (e.g., the Hitachi Deskstar 7K1000), one or more optical discs, Redundant Array of Independent Disks (RAID) storage, e.g. an array of disks (e.g., SATA arrays), available from various vendors including Dot Hill Systems Corp., LaCie, Nexsan Technologies, Inc. and Enhance Technology, Inc.
Bus (920) communicatively couples processor(s) (970) with the other memory, storage and communication blocks. Bus (920) can be, e.g. a Peripheral Component Interconnect (PCI) / PCI Extended (PCI-X) bus, Small Computer System Interface (SCSI), USB or the like, for connecting expansion cards, drives and other subsystems as well as other buses, such a front side bus (FSB), which connects processor (970) to software system.
Optionally, operator and administrative interfaces, e.g. a display, keyboard, and a cursor control device, may also be coupled to bus (920) to support direct operator interaction with computer system. Other operator and administrative interfaces can be provided through network connections connected through communication port (960). External storage device (910) can be any kind of external hard-drives, floppy drives, IOMEGA® Zip Drives, Compact Disc - Read Only Memory (CD- ROM), Compact Disc - Re-Writable (CD-RW), Digital Video Disk - Read Only Memory (DVD-ROM). Components described above are meant only to exemplify various possibilities. In no way should the aforementioned exemplary computer system limit the scope of the present invention.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular
forms "a", "an" and "the" may be intended to include the plural forms as well, unless the context dearly indicates otherwise.
The terms "comprises," "comprising,"“including,” and“having," are inclusive and therefore specify the presence of stated features, integers, steps, operations, elements, or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof. The method steps, processes, and operations described herein are not to be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as an order of performance. It is also to be understood that additional or alternative steps may be employed.
The use of the expression“at least” or“at least one” suggests the use of one or more elements, as the use may be in one of the embodiments to achieve one or more of the desired objects or results.
The process steps, method steps, algorithms or the like may be described in a sequential order, such processes, methods and algorithms may be configured to work in alternate orders. In other words, any sequence or order of steps that may be described does not necessarily indicate a requirement that the steps be performed in that order. The steps of processes described herein may be performed in any order practical. Further, some steps may be performed simultaneously, in parallel, or concurrently.
Embodiments of the present invention may be provided as a computer program product, which may include a machine-readable storage medium tangibly embodying thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process. The machine-readable medium may include, but is not limited to, fixed (hard) drives, magnetic tape, floppy diskettes, optical disks, compact disc read-only memories (CD-ROMs), and magneto-optical disks, semiconductor memories, such as ROMs, PROMs, random access memories (RAMs), programmable read-only memories (PROMs), erasable PROMs (EPROMs), electrically erasable PROMs (EEPROMs), flash memory, magnetic or optical cards, or other type of media/machine-readable medium
suitable for storing electronic instructions (e.g., computer programming code, such as software or firmware).
Various methods described herein may be practiced by combining one or more machine-readable storage media containing the code according to the present invention with appropriate standard computer hardware to execute the code contained therein. An apparatus for practicing various embodiments of the present invention may involve one or more computers (or one or more processors within a single computer) and storage systems containing or having network access to computer program(s) coded in accordance with various methods described herein, and the method steps of the invention could be accomplished by modules, routines, subroutines, or subparts of a computer program product.
While the foregoing describes various embodiments of the invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof. The scope of the invention is determined by the claims that follow. The invention is not limited to the described embodiments, versions or examples, which are included to enable a person having ordinary skill in the art to make and use the invention when combined with information and knowledge available to the person having ordinary skill in the art.
Claims
1. A method for managing configuration of one or more virtual appliances, VA, in a cloud environment, characterized in that the method comprises the steps of: configuring a user manager that is operatively coupled with a computing device, wherein the user manager performs the steps of: i. managing (802) the one or more VAs, said managing comprising maintaining, for each of said one or more managed VAs, a record pertaining to one or more environmental attributes and one or more applications configured therein; ii. analyzing (804) a set of said plurality of records of the one or more VAs so as to determine dependency of each VA with respect to its said one or more environmental attributes and said one or more applications configured therein; and iii. determining (808) whether an existing VA with respect to at least one of an environmental attribute or an application configured therein requires an upgrade such that upon said determination being affirmative, one or more potential VAs are generated based on any or a combination of said determined dependencies, the environment attribute, the application and threshold time duration for upgrading.
2. The method of claim 1 , wherein said one or more environmental attributes are selected from any or a combination of operating system, software binaries, libraries, bug/security fixes, and hardware attributes.
3. The method of claim 1 , wherein a first of said one or more potential VAs is selected as the upgraded version of the existing VA based on an optimal combination of the one or more environmental attributes and the one or more applications that form part of each respective potential VA.
4. The method of claim 1 , wherein said maintaining further comprises categorizing said one or more environmental attributes and said one or more applications of each VA, and then maintaining the plurality of records for each VA.
5. The method of claim 3, wherein when the at least one environmental attribute or the application of the existing VA is in synchronization with the corresponding environmental attribute or the application of the selected potential VA, an alert is generated to confirm requirement of the upgrade.
6. The method of claim 1 , wherein when the environmental attribute or the application for none of the one or more potential VAs is in synchronization with the corresponding environmental atribute or the application of the existing VA, an alert is generated to confirm that no upgrade is possible.
7. The method of claim 4, wherein each category of the one or more environmental attributes and the one or more applications is associated with an impact based on severity and influence of the one or more environmental attributes and the one or more applications on said VA, and wherein a sequence of upgrading any of the one or more environment attributes and the one or more applications is based on said impact.
8. The method of claim 7, wherein the associated impact is any of a high impact, a medium impact, a low impact or no impact.
9. The method of claim 7, wherein the sequence is consolidated (714) based on the impact being scaled from high to low or no impact.
10. The method of claim 4, wherein maintaining the plurality of records for each VA includes: - giving a unique identification for each category of said one or more environmental attributes and said one or more applications (802); getting a probable due VA upgrade period (804);
estimating time for upgrading each category (806); combining the estimated time with an expected date on which the VA is due for upgrade (808); creating a list of items to be upgraded (810); and triggering an alert to inform a user about a upgrade due (812).
11.The method of claim 1 , wherein analyzing said plurality of records (604) further includes: if dependency of each VA with respect to said one or more environmental attributes and said one or more applications configured therein cannot be determined, categorizing sub-attributes each of environmental attribute and sub-application of each application; maintaining, for each of said environmental attributes and applications, a sub-record pertaining to one or more sub-attributes and one or more sub-applications; and analyzing the sub-records to determine dependency of each VA with respect to its said one or more environmental attributes and said one or more applications configured therein.
12. A system (200) comprising a user manager (102) that is operatively coupled with a computing device, characterized in that the user manager (102) enables management of configuration of one or more Virtual Appliances, VA, (302) in a cloud environment by means of: i. a VA management engine (212) for managing the one or more VAs (302), said managing comprising maintaining, for each of said one or
more managed VAs (302), a record pertaining to one or more environmental attributes and one or more applications configured therein; a dependency analysis engine (214) for analyzing a set of said plurality of records of the one or more VAs (302) so as to determine dependency of each VA (302) with respect to its said one or more environmental atributes and said one or more applications configured therein; and a VA upgrade engine (216) for determining whether an existing VA (304) with respect to at least one of an environmental attribute or an application requires an upgrade such that upon said determination being affirmative, one or more potential VAs (306) are generated based on any or a combination of said determined dependencies, the environment attribute, the application and threshold time duration for upgrading.
13. The system (200) of claim 12, wherein said VA management engine (212) categorizes said one or more environmental attributes and said one or more applications of each VA (302), and then maintains the plurality of records for each VA (302).
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| MYPI2018001659 | 2018-09-28 | ||
| MYPI2018001659 | 2018-09-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020067871A1 true WO2020067871A1 (en) | 2020-04-02 |
Family
ID=69949499
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/MY2019/050064 Ceased WO2020067871A1 (en) | 2018-09-28 | 2019-09-24 | Virtual appliance configuration management in cloud environment |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2020067871A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090300641A1 (en) * | 2008-05-30 | 2009-12-03 | Novell, Inc. | System and method for supporting a virtual appliance |
| US20120054736A1 (en) * | 2010-08-27 | 2012-03-01 | International Business Machines Corporation | Automatic upgrade of virtual appliances |
| US20150113530A1 (en) * | 2013-10-22 | 2015-04-23 | International Business Machines Corporation | Managing Virtual Appliances Supporting Multiple Profiles |
| US20150379167A1 (en) * | 2014-06-26 | 2015-12-31 | Vmware, Inc. | Crowd-sourced operational metric analysis of virtual appliances |
| US10019272B1 (en) * | 2013-11-12 | 2018-07-10 | VCE IP Holding Company LLC | Virtual appliance manager |
-
2019
- 2019-09-24 WO PCT/MY2019/050064 patent/WO2020067871A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090300641A1 (en) * | 2008-05-30 | 2009-12-03 | Novell, Inc. | System and method for supporting a virtual appliance |
| US20120054736A1 (en) * | 2010-08-27 | 2012-03-01 | International Business Machines Corporation | Automatic upgrade of virtual appliances |
| US20150113530A1 (en) * | 2013-10-22 | 2015-04-23 | International Business Machines Corporation | Managing Virtual Appliances Supporting Multiple Profiles |
| US10019272B1 (en) * | 2013-11-12 | 2018-07-10 | VCE IP Holding Company LLC | Virtual appliance manager |
| US20150379167A1 (en) * | 2014-06-26 | 2015-12-31 | Vmware, Inc. | Crowd-sourced operational metric analysis of virtual appliances |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11029938B1 (en) | Software update compatibility assessment | |
| US8316224B2 (en) | Systems and methods for tracking a history of changes associated with software packages and configuration management in a computing system | |
| US8443361B2 (en) | Systems and methods for tracking a history of changes associated with software packages in a computing system | |
| US8387038B2 (en) | Method and system for automatic computer and user migration | |
| US10001990B2 (en) | Method and system for enhancing application container and host operating system security in a multi-tenant computing environment | |
| US9098364B2 (en) | Migration services for systems | |
| US8707297B2 (en) | Apparatus and methods for updating firmware | |
| US8839221B2 (en) | Automatic acquisition and installation of software upgrades for collections of virtual machines | |
| US20160162286A1 (en) | Managing user access to alternative versions of a particular function of a software product from within a current version of the software product | |
| US11586430B2 (en) | Distribution and execution of instructions in a distributed computing environment | |
| US11797285B2 (en) | Systems and/or methods for facilitating software-based deployments into potentially complex heterogeneous computing environments | |
| US11119751B2 (en) | Self-learning optimized patch orchestration | |
| US20100058327A1 (en) | Methods and systems for providing customized actions related to software provisioning | |
| US10318273B2 (en) | Updating software components through online stores | |
| US20090222808A1 (en) | Methods and systems for providing a software appliance based on a role | |
| US20100223607A1 (en) | Systems and methods for abstracting software content management in a software provisioning environment | |
| US8494964B1 (en) | Software as a service via virtualization | |
| US20210141632A1 (en) | Automated software patching for versioned code | |
| US20090300584A1 (en) | Methods and systems for providing a demo appliance and migrating the demo appliance to a production appliance | |
| US11960873B2 (en) | System and method for managing a model for solving issues using a set of actions performed on the client environment | |
| US11528185B1 (en) | Automated network device provisioning | |
| US11750451B2 (en) | Batch manager for complex workflows | |
| US20240272893A1 (en) | Version compatibility metadata transformation | |
| US8745620B2 (en) | Software tool and method for updating a virtual appliance | |
| EP3333698B1 (en) | System and method for managing machine images on a plurality of distributed servers |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19865393 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19865393 Country of ref document: EP Kind code of ref document: A1 |