Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS20150281398 A1
Publication typeApplication
Application numberUS 14/736,801
Publication date1 Oct 2015
Filing date11 Jun 2015
Priority date21 Oct 2013
Also published asUS9083653, US20150113145
Publication number14736801, 736801, US 2015/0281398 A1, US 2015/281398 A1, US 20150281398 A1, US 20150281398A1, US 2015281398 A1, US 2015281398A1, US-A1-20150281398, US-A1-2015281398, US2015/0281398A1, US2015/281398A1, US20150281398 A1, US20150281398A1, US2015281398 A1, US2015281398A1
InventorsJeffrey Joel Walls, Mark Perreira
Original AssigneeHewlett-Packard Development Company, L.P.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Automated Cloud Set Up
US 20150281398 A1
Abstract
Automated cloud set up may include collecting compute resources available for setting up a cloud, identifying packages available to apply to the compute resources, and determining which subsets of the packages to apply to which compute resource.
Images(6)
Previous page
Next page
Claims(19)
What is claimed is:
1. A computer program product for automated setup of a cloud, comprising:
a non-transitory computer readable storage medium that comprises instructions that, when executed, causes at least one processor to:
discover compute resources available for setting up the cloud;
identify a plurality of roles that are compatible for a given compute resource of the compute resources based on attributes of the given compute resource;
select a role from the plurality of roles for assignment to the given compute resource;
identify packages available to apply to the given compute resource; and
determine a subset of the packages to apply to the given compute resource based on the selected role.
2. The computer program product of claim 1, wherein the plurality of roles comprise a controller role, a compute role, and a storage role, and the selected role is one of the controller role, the compute role, and the storage role.
3. The computer program product of claim 1, wherein each of the packages comprises an operating system and program instructions.
4. The computer program product of claim 1, wherein the instructions when executed cause the at least one processor to:
initialize each respective compute resource of the discovered compute resources using preboot execution environment (PXE) booting of the respective compute resource, wherein the initializing transitions the respective compute resource from an initial state to a state in which a package is installable on the respective compute resource.
5. The computer program product of claim 1, wherein the instructions when executed cause the at least one processor to automatically apply a package from the determined subset of packages to the given compute resource.
6. The computer program product of claim 1, wherein the instructions when executed cause the at least one processor to:
make the given compute resource visible to a setup system that comprises the at least one processor; and
install a base operating system on the given compute resource.
7. The computer program product of claim 1, wherein the role is selected from among a cloud controller role, a network controller role, a storage controller role, or combinations thereof.
8. The computer program product of claim 1, wherein the instructions when executed cause the at least one processor to assign the given compute resource to a region within the cloud, wherein compute resources within the region perform operations together, and the assignment to the region is based on the selected role of the given compute resource.
9. The computer program product of claim 1, wherein the attributes of the given compute resource comprise at least one of memory attributes and processing speed attributes.
10. A method comprising:
discovering, by a system comprising a processor, compute resources available for setting up a cloud;
identifying, by the system, a plurality of roles that are compatible for a given compute resource of the compute resources based on attributes of the given compute resource;
selecting, by the system, a role from the plurality of roles for assignment to the given compute resource;
identifying, by the system, packages available to apply to the given compute resource; and
determining, by the system, a subset of the packages to apply to the given compute resource based on the selected role.
11. The method of claim 10, wherein the plurality of roles comprise a cloud controller role, a network controller role, and a storage controller role, and the selected role is one of the cloud controller role, the network controller role, and the storage controller role.
12. The method of claim 10, wherein each of the packages comprises an operating system and program instructions.
13. The method of claim 10, further comprising:
initializing each respective compute resource of the discovered compute resources using preboot execution environment (PXE) booting of the respective compute resource, wherein the initializing transitions the respective compute resource from an initial state to a state in which a package is installable on the respective compute resource.
14. The method of claim 10, further comprising assigning the given compute to an operating region based on the selected role, wherein the given compute resource performs operations together with other compute resources in the operating region.
15. The method of claim 10, wherein the plurality of roles that are compatible with the given compute resources is further based on a performance of the cloud.
16. A system, comprising:
at least one processor to:
discover nodes available for setting up the cloud;
identify a plurality of roles that are compatible for a given node of the nodes based on attributes of the given node;
select a role from the plurality of roles for assignment to the given node;
identify packages available to apply to the given node; and
determine a subset of the packages to apply to the given node based on the selected role.
17. The system of claim 16, wherein the plurality of roles comprise a cloud controller role, a network controller role, and a storage controller role, and the selected role is one of the cloud controller role, the network controller role, and the storage controller role.
18. The system of claim 16, wherein each of the packages comprises an operating system and program instructions.
19. The system of claim 16, wherein the at least one processor is to:
initialize each respective node of the discovered nodes using preboot execution environment (PXE) booting of the respective node, wherein the initializing transitions the respective node from an initial state to a state in which a package is installable on the respective node.
Description
    CROSS-REFERENCE TO RELATED APPLICATION
  • [0001]
    This is a continuation of U.S. application Ser. No. 14/058,939, filed Oct. 21, 2013, which is hereby incorporated by reference.
  • BACKGROUND
  • [0002]
    A cloud is a group of computing devices connected through a real-time communication network, such as the internet, that are organized to perform network based services. The cloud may employ the use of physical computing devices or virtual devices. The resources of the computing devices are shared to maximize efficiencies. The cloud can operate to run programs remotely on client devices, store an enormous amount of data, perform complex tasks, and other functions.
  • [0003]
    A cloud can be set up manually. In such a case, the user can take all of the raw packages, such as operating systems, program instructions, or downloaded information, from a repository, like OpenStack. Then the user can build and install the packages as desired. Next, the user can install and configure the packages on the correct computing device and then prepare those computing devices for operation in the cloud.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0004]
    The accompanying drawings illustrate various examples of the principles described herein and are a part of the specification. The illustrated examples are merely examples and do not limit the scope of the claims.
  • [0005]
    FIG. 1 is a diagram of an example of a set up system according to the principles described herein.
  • [0006]
    FIG. 2 a is a diagram of an example of a process for automated cloud set up according to the principles described herein.
  • [0007]
    FIG. 2 b is a diagram of an example of a process for automated cloud set up according to the principles described herein.
  • [0008]
    FIG. 3 is a diagram of an example of a process for developing a region of a cloud according to the principles described herein.
  • [0009]
    FIG. 4 is a diagram of an example of a method for automated cloud set up according to the principles described herein.
  • [0010]
    FIG. 5 is a diagram of an example of a set up system according to the principles described herein.
  • [0011]
    FIG. 6 is a diagram of an example of a set up system according to the principles described herein.
  • DETAILED DESCRIPTION
  • [0012]
    Some programs have been developed to assist with the creation of a cloud. Such programs include Chef, Crowbar, and JuJu. All of these approaches try to simplify setting up a cloud, but each still relies on the user or a community of users to create a specification for each service to be performed by the cloud. In Crowbar, the specification is called a barclamp, and in JuJu, the specification is called a charm. These are complicated elements that take time to create. Once created, the specifications still have to be applied to each cloud device and manually instantiated, configured, and deployed one at a time.
  • [0013]
    The process of defining and standing up a cloud is labor intensive, error prone, and time consuming. The process involves many tasks. First, the cloud administrator has to specify which compute resources (nodes) will be included in the cloud. The next task is to decide which nodes will be used as “controllers” and which nodes will be purposed for compute, storage, or other functions. Once the nodes have been assigned roles, a series of packages have to be installed on the correct nodes. For example, nodes assigned a controller role will have a different set of packages than a node assigned a compute or storage role. For each package, a series of attributes have to be specified. Once the attributes have been selected for each package, the packages have to be applied in the correct order.
  • [0014]
    Creating a cloud is a very complicated process. If you were to take raw packages from OpenStack and then provision them into a cloud, it would take many days and a lot of assistance to prepare everything correctly. Each service has its own mechanism for configuring itself and the details of this configuration can be low level and involve intimate knowledge of the system and the service.
  • [0015]
    The principles described herein simplify the entire process of cloud setup. In the simplest case, the process of automating a cloud can be completed with fewer than ten mouse clicks. The principles described herein involve examining the available compute resources (nodes) and the packages available and then automatically applying the correct packages to the right nodes. Attribute specification is also greatly simplified in that default values are used where possible and just those attributes that make sense to be overridden can be.
  • [0016]
    The principles described herein include a method for automated cloud set up. Such a method may include collecting compute resources available for setting up a cloud, identifying packages available to apply to the compute resources, and determining which subsets of the packages to apply to which compute resource. The compute resources may be nodes or other components used to run the operations of the cloud. The packages may include operating systems, program instructions, or other downloadable information to operate the compute resources.
  • [0017]
    In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present systems and methods. It will be apparent, however, to one skilled in the art that the present apparatus, systems, and methods may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described is included in at least that one example, but not necessarily in other examples.
  • [0018]
    FIG. 1 is a diagram of an example of a set up system (100) according to the principles described herein. In this example, the set up system (100) discovers nodes (102, 104, 106) that can be used in a cloud (108). The cloud (108) is a group of computing resources, such as the nodes (102, 104, 106) that are organized together to carry out at least one function. Each of the nodes (102, 104, 106) can be assigned specific roles within the cloud (108) to carry out the cloud's tasks.
  • [0019]
    The set up system (100) can initiate an automated cloud set up procedure that involves a minimal amount of user input. For example, the set up system (100) can discover the nodes (102, 104, 106) that are available to be part of the cloud. The set up system (100) can automatically pre-initialize these nodes (102, 104, 106) so that they are visible to the rest of the system. In some examples, the set up system (100) can recognize that a discovered node has parameters that are incompatible with the cloud (108). In such a situation, the set up system (100) will not pre-initialize the node.
  • [0020]
    In response to pre-initializing a node, the set up system (100) can seek user input to determine whether the user wants to include the node in the cloud. The set up system (100) can seek user input through any appropriate mechanism. In some examples, the set up system (100) uses a communication mechanism that will involve minimal interaction from the user. For example, the communication mechanism may involve displaying a message on a screen of a user interface that identifies the node in question and asks if the user wants to include that node in the cloud (108). The message may be accompanied with a first button that indicates that the user wants to include the node and a second button that indicates that the user does not want to include the node.
  • [0021]
    If the user wants to include the node in the cloud, the set up system will complete the initialization procedure so that the node can be assigned roles within the cloud (108). In such a condition, the node can have general purpose machine readable instructions that are specific to the cloud (108). Thus, the node is capable of operating within the cloud (108), but at this point does not have an assignment.
  • [0022]
    In response to having a node without a role, the set up system (100) can request input from the user for which type of role to assign the node. Again, such a communication may include any appropriate communication mechanism. In some examples, the set up system (100) determines which roles are suitable for the node based on the node's attributes and recommends just those roles that are compatible for such a node. In determining which roles to assign to a node, the set up system (100) can determine which roles are underperforming in the cloud (108), which roles can take advantages of the characteristics of the node, other factors, or combinations thereof. In the example of FIG. 1, the set up system (100) includes a roles table (110), which contains the types of roles that are available for nodes or other computing devices in the cloud (108). Such a roles table (110) can include attributes that are compatible with computing resources, such as memory attributes, processing speed attributes, other types of attributes, or combinations thereof. The set up system (100) can determine based on the information in the roles table (110) which roles are appropriate to assign to the node. In the example of FIG. 1, the roles in the role table include a network controller role (112), a cloud controller role (114), a storage controller role (116), and another type of role (117). While this example has been described with reference to specific types of roles, any appropriate type of role may be used in accordance with the principles described herein.
  • [0023]
    In response to determining which type of role is appropriate for the node, the set up system can seek user input to determine which role to assign to the node. In response to receiving input from the user, the set up system (100) can determine which package to install on the node based on its role. The set up system (110) may include a group of packages (118), each package being a subset of the packages that are available for each node. The packages (118) may include operating systems, program instructions, other machine readable instructions, other types of information, or combinations thereof that the node can use to properly operate within its function. In response to determining which role to assign the node, the set up system can automatically install the appropriate package onto the node. In this manner, the user is spared from making a manual determination of which packages are available for a node of a specific role and also spared from manually initializing the installation for each portion of the package that should be downloaded to a node of that particular role.
  • [0024]
    Further, the set up system (100) can seek user input for which region to assign the role. The cloud (108) may include multiple regions that cluster specific nodes to perform operations together. Such regions may be based on geographic regions, logical regions, task oriented regions, regions based on other criteria, or combinations thereof. In examples where the cloud (108) is first being established, the cloud (108) may not have any regions yet established. In such examples, the set up system may request input from the user for establishing a region. Then, as nodes are assigned roles, the set up system (100) can seek input from the user for which region to assign the nodes.
  • [0025]
    In the example of FIG. 1, the set up system (100) has a regions table (120), which tracks the regions in the cloud (108). Such a regions table (120) may include an identifier for each of the regions, an identifier for each of the nodes assigned to the region, types of computing resources desired for each region, other types of information, or combinations thereof.
  • [0026]
    The principles described herein can eliminate multiple set up tasks for the user to perform and thereby eliminate potential manual errors that a user often encounters in cloud creation. The first task in cloud creation is node collection. Here, nodes are discovered and allocated for general purposes. Along the cloud creation process, each node can be classified into one of the following categories: initial state, ready for allocation, allocated, and deployed. A node can be booted into the set up system (100) in a preboot execution environment (PXE) that is independent of the node's installed operating system. Before a node is PXE-booted, the node is classified in the initial state and is not visible to the set up system (100). Once the system has recognized and pre-initialized the node, the node is classified in the ready for allocation category. Here, the user can decide to complete the setup of this node. If the user desires to complete the node's set up, a complete and custom operating system is installed onto the node, and the node is classified in the allocated category. When a node is classified as allocated, the node is ready to be used in the cloud (108). Nodes that are being used in a cloud are classified in the deployed category.
  • [0027]
    Once a set of nodes are allocated, a cloud can be created. The user provides a specification at this point by choosing what role a node should play. Depending upon the user's cloud parameters, a single node or set of nodes can fulfill multiple roles. For example, a single node can act as a cloud controller, a network controller, and a network controller. However any combinations of nodes may be employed to fulfill multiple roles or a single role. Once the nodes have been specified, a minimal set of attributes can be modified. In some examples, the node's attributes can be left alone if the node's default attributes are sufficient.
  • [0028]
    The user then builds the cloud and the set up system (100) goes through the process of preparing the packages and installing them to the appropriate nodes. In response to the creation of a cloud, the user can specify and create compute regions, storage regions, other types of regions, or combinations thereof that are to be associated with the cloud. In some examples, the process for region creation is identical to cloud creation.
  • [0029]
    Such processes can be implemented as an abstraction on top of any existing technology, including Chef, Crowbar, JuJu, or other programs. Chef is an automation platform that is available through Opscode, Inc., which has operations in Seattle, Wash., U.S.A. Crowbar is an automation platform that is available through Dell, Inc, which headquartered in Round Rock, Tex., U.S.A. JuJu is an orchestration tool that is available through Canonical Ltd., which has operations in London, United Kingdom.
  • [0030]
    In some examples that build off of Crowbar, the barclamp writer can specify two things: that the Crowbar specifications (barclamps) are included in the suite of packages and which node types apply to the barclamp role. The node types can be: cloud controller, network controller, storage controller, compute controller, compute node, storage node, another role, or combinations thereof. With this information, the set up system (100) can determine which packages and configurations should be installed on which nodes. Thus, the automation can proceed with no further user input.
  • [0031]
    The principles described herein provide a very simple mechanism to set up a cloud from the user's side. Further, such a mechanism is very fast compared to other commercially available programs that assist the user in creating clouds. The principles herein allow a user to get an operational cloud in about fifteen minutes from the time that the user has obtained a set of allocated nodes. The principles herein also provide a robust cloud creation mechanism. A vast majority of errors that are often in cloud creation are eliminated. Further, the set up system (100) allows multiple independent clouds to be created easily as well as to set up multiple compute and/or storage regions associated with the individual clouds.
  • [0032]
    FIG. 2 a is a diagram of an example of a process (200) for automated cloud set up according to the principles described herein. In this example, the process (200) includes discovering (202) a node and pre-initializing (204) the node. The process (200) also includes determining (206) whether the user wants to complete the node's set up. If the user does not want to complete the set up, the process ends (208). On the other hand, if the user wants to complete the node's set up, the process (200) includes allocating (210) the node.
  • [0033]
    FIG. 2 b is a diagram of an example of a process (250) for automated cloud set up according to the principles described herein. In this example, the process (250) includes discovering (252) a package and creating (254) a template for the package. The process (250) also includes determining (256) configurations should be made to the template. If so, specific parameters are applied (258) to the template. The process (250) continues by identifying (260) nodes associated with this package per node role and installing (262) the package on the node.
  • [0034]
    FIG. 3 is a diagram of an example of a process (300) for developing a region of a cloud according to the principles described herein. In this example, the user has an ability to create a cloud and/or a region. Likewise, the user has an ability to remove a region of the cloud or remove the cloud itself. In some examples, the user can extend and reduce the regions simultaneously. Likewise, the user can extend and/or reduce the regions multiple times.
  • [0035]
    The process (300) includes creating (302) a cloud. Here, the cloud is a framework in which nodes and regions can be added such that the nodes can operate together based on their roles to accomplish predetermined tasks, such as remote network services. Further, the process (300) includes creating (304) a compute region. The region can be extended (306) by assigning a node to the compute region. Likewise, the compute region can be reduced (308) by unassigning a node to the compute region. While this example has been described with specific reference to creating, modifying, and removing compute regions, any appropriate type of region may be created, modified, or removed. For example, the regions may be storage regions, other types of regions, or combinations thereof.
  • [0036]
    Further, the user can instruct the set up system to remove (310) the compute region. Likewise, the user can instruct the set up system to remove the cloud.
  • [0037]
    FIG. 4 is a diagram of an example of a method (400) for automated cloud set up according to the principles described herein. In this example, the method (400) includes collecting (402) compute resources available for setting up a cloud, identifying (404) packages available to apply to the compute resources, and determining (406) which subsets of the packages to apply to which compute resources.
  • [0038]
    The user will be able to create and organize a cloud in a user interface. The user interface may present user friendly buttons, free text fields, and other mechanism that allow the user to interact with the set up system. The information requests for the user may be limited to just specific questions that cannot be determined by the set up system alone. The principles described herein may reduce the time and complexity, from the user's side, for setting up of the cloud.
  • [0039]
    In some examples, a node will be set up with PXE-boot in response to a compute resource being introduced into the set up system. The set up system may include a server which such PXE booting capabilities. In response to the new compute resource being powered on, the node will search for a PXE server and this server will give the node the correct operating system image to install. At this time, an administrative node takes notice of the new node and tracks the new node continually. Once the node has received a base operating system from the set up system, the new node is classified as in a not allocated category. In this classification, the node is unable to be used in the cloud, so the user will allocate the node by clicking an allocate node button. In examples where the crowbar program is used with the set up system, during this process, crowbar will install a different operating system on the node and then will apply a series of barclamps to prepare the node for usage as an element of a cloud.
  • [0040]
    In some examples, the user can change multiple parameters about the node at any time desired by the user. For example, the user may be able to change the node's alias or its description. The alias may replace a serial number or other type of identifier in the user interface. The user may want to make the alias a user friendly name so that the user can easily identify the node based on the alias. The alias may be a word that can be used as a system hostname. The description may be changed in a free form description field with a limited number of characters.
  • [0041]
    In some examples, to create a cloud, the user can click a create cloud button on the manage cloud's page. This action raises a create cloud dialog where the user can specify the name of the cloud, which can also be a domain name that is used to initialize other programs. This dialog also lets the user specify the nodes that will be used in the cloud controller role, network controller role, storage controller role, or other role.
  • [0042]
    An additional information button can be used to fill in properties about the cloud to be created. The user may input information in response to selecting this button that guide the set up system in creating the cloud.
  • [0043]
    In response to a user selecting a create cloud button, the set up system will go through a series of tasks to create an active cloud automatically. However, in some examples, no compute regions, storage regions, or other types of regions are established automatically at this stage. The compute region, storage regions, or other types of regions can be added to a cloud at any time based on user input after the cloud has been created. A create compute region dialog can be displayed in the user interface in response to a request from a user to create the compute region. Within this dialog, the user can specify the name of the compute region and additional information about the region. Also, another additional information tab can be used to fill in properties by the user for building the compute region.
  • [0044]
    If at least one compute region already exists when a new node is brought into the set up system, the new node can be assigned to one of those regions through the use of extend compute region buttons or other mechanisms. In some examples, to add nodes to a compute region, the user may specify which compute region will be extended and then will select the compute nodes to be added to the selected compute region. In some examples, a node that is already assigned to first region may be removed from its currently assigned region to be reassigned to another region. However, in some examples, if a compute node is assigned a role as a controller, that node cannot be removed from the region without completely removing the region.
  • [0045]
    If the user wants to completely remove a compute region, the user may accomplish this using with a remove compute region button or similar mechanism. In such an example, the user may select which compute region to remove and then type the remove command in an appropriate validation field.
  • [0046]
    Likewise, if the user wants to completely remove a cloud, the user may select a remove cloud button or activate the cloud removal through another type of mechanism. Here, the set up system may request that the user input a remove command in an appropriate validation field to ensure that the cloud is not unintentionally removed.
  • [0047]
    In some examples, the user may view more detail about a cloud by clicking the cloud's name in the user interface or through another type of mechanism. In response to such a selection, details about the cloud, the cloud's resources, the cloud's regions, the cloud's identifier, the cloud's alias, other information about the cloud, or combinations thereof may appear in a screen of the user interface. Likewise, a user may be able to click a node's name or a region's name to view details for that node or region.
  • [0048]
    FIG. 5 is a diagram of an example of a set up system (500) according to the principles described herein. The set up system (500) includes a collection engine (502), an identifying engine (504), a determining engine (506), and an applying engine (508). In this example, the set up system (500) also includes an initialization engine (510), an options engine (512), a role engine (514), a region engine (516), a creating engine (517), an extending engine (518), a reducing engine (520), and a removing engine (522). The engines (502, 504, 506, 508, 510, 512, 514, 516, 517, 518, 520, 522) refer to a combination of hardware and program instructions to perform a designated function. Each of the engines (502, 504, 506, 508, 510, 512, 514, 516, 517, 518, 520, 522) may include a processor and memory. The program instructions are stored in the memory and cause the processor to execute the designated function of the engine.
  • [0049]
    The collecting engine (502) collects the nodes that are to be included in the cloud. The process of collecting may include node discovery. The initialization engine (510) pre-initializes the discovered node. The identifying engine (504) identifies packages available to apply to the nodes, and the determining engine (506) determines which subsets of the packages to apply to which of the nodes. The applying engine (508) applies the selected subsets of the packages to the appropriate nodes.
  • [0050]
    The options engine (512) provides options to the user through a user interface to guide the user in providing input about how to build the cloud. For example, the options engine (512) may provide options to complete the set up of a node, which role to apply to which node, whether to create a region, whether to extend a region, whether to reduce a region, whether to remove a region, other options, or combinations thereof.
  • [0051]
    The role engine (514) assigns a role to the node based on user input. The region engine (516) assigns a region to a node based on user input. The creating engine (517) creates a region based on user input. The extending engine (518) extends a region by adding new nodes to the region based on user input. The reducing engine (520) removes nodes from a region based on user input. The removing engine (522) removes a region based on user input.
  • [0052]
    FIG. 6 is a diagram of an example of a set up system (600) according to the principles described herein. In this example, the set up system (600) includes processing resources (602) that are in communication with memory resources (604). Processing resources (602) include at least one processor and other resources used to process programmed instructions. The memory resources (604) represent generally any memory capable of storing data such as programmed instructions or data structures used by the set up system (600). The programmed instructions shown stored in the memory resources (604) include a compute resource discoverer (606), a node pre-initializer (608), a set up completion option provider (610), a set up completer (612), a role options provider (613), a role assigner (616), a package installer (620), a region option provider (621), a region creator (622), a region extender (626), and a region reducer (628). The data structures shown stored in the memory resources (604) include a role table (614), a package repository (618), and a region table (624).
  • [0053]
    The memory resources (604) include a computer readable storage medium that contains computer readable program code to cause tasks to be executed by the processing resources (602). The computer readable storage medium may be tangible and/or non-transitory storage medium. The computer readable storage medium may be any appropriate storage medium that is not a transmission storage medium. A non-exhaustive list of computer readable storage medium types includes non-volatile memory, volatile memory, random access memory, memristor based memory, write only memory, flash memory, electrically erasable program read only memory, magnetic storage media, other types of memory, or combinations thereof.
  • [0054]
    The compute resource discoverer (606) represents programmed instructions that, when executed, cause the processing resources (602) to discover compute resources available for creating or modifying a cloud. The node pre-initializer (608) represents programmed instructions that, when executed, cause the processing resources (602) to pre-initialize discovered nodes. The set up completion option provider (610) represents programmed instructions that, when executed, cause the processing resources (602) to provide an option to complete the set up of a node. The set up completer (612) represents programmed instructions that, when executed, cause the processing resources (602) to complete the node's set up based on user input.
  • [0055]
    The role option provider (613) represents programmed instructions that, when executed, cause the processing resources (602) to provide an option for which role to assign to a node. The role option provider (613) may provide an option for just those roles that would be compatible with a node. In some examples, the role option provider (613) provides a recommendation for which role to assign a node based on the performance of the cloud. The role options provider (613) may consult with the role table (614) when presenting the role options to the user. The role assigner (616) represents programmed instructions that, when executed, cause the processing resources (602) to assign roles to nodes based on user input. The package installer (620) represents programmed instructions that, when executed, cause the processing resources (602) to install the appropriate packages from the package repository (618) based on the role assigned to the node.
  • [0056]
    The region option provider (621) represents programmed instructions that, when executed, cause the processing resources (602) to provide an option for where to assign the node. The option may include an option to create a region, extend a region, reduce a region, or combinations thereof. The region table (624) tracks which nodes are assigned to which regions. The region creator (622) represents programmed instructions that, when executed, cause the processing resources (602) to create a region based on user input. The region extender (626) represents programmed instructions that, when executed, cause the processing resources (602) to extend a region by adding a node to the region based on user input. The region reducer (628) represents programmed instructions that, when executed, cause the processing resources (602) to reduce a region by removing a node from the region based on user input.
  • [0057]
    Further, the memory resources (604) may be part of an installation package. In response to installing the installation package, the programmed instructions of the memory resources (604) may be downloaded from the installation package's source, such as a portable medium, a server, a remote network location, another location, or combinations thereof. Portable memory media that are compatible with the principles described herein include DVDs, CDs, flash memory, portable disks, magnetic disks, optical disks, other forms of portable memory, or combinations thereof. In other examples, the program instructions are already installed. Here, the memory resources can include integrated memory such as a hard drive, a solid state hard drive, or the like.
  • [0058]
    In some examples, the processing resources (602) and the memory resources (604) are located within the same physical component, such as a server, or a network component. The memory resources (604) may be part of the physical component's main memory, caches, registers, non-volatile memory, or elsewhere in the physical component's memory hierarchy. Alternatively, the memory resources (604) may be in communication with the processing resources (602) over a network. Further, the data structures, such as the libraries and may be accessed from a remote location over a network connection while the programmed instructions are located locally. Thus, the set up system (600) may be implemented on a user device, on a server, on a collection of servers, or combinations thereof.
  • [0059]
    The set up system (600) of FIG. 6 may be part of a general purpose computer. However, in alternative examples, the set up system (600) is part of an application specific integrated circuit.
  • [0060]
    The preceding description has been presented only to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching.
Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US7788649 *22 Jan 200231 Aug 2010Oracle International CorporationMethod and software for processing server pages
US8805971 *15 Jun 201212 Aug 2014Amazon Technologies, Inc.Client-specified schema extensions in cloud computing environments
US20030040819 *22 May 200227 Feb 2003C-Smart CorporationMethod and apparatus for providing a dynamic resource role model for subscriber-requester based protocols in a home automation and control system
US20050149924 *24 Dec 20037 Jul 2005Komarla Eshwari P.Secure booting and provisioning
US20060212332 *16 Mar 200621 Sep 2006Cluster Resources, Inc.Simple integration of on-demand compute environment
US20100106812 *24 Oct 200829 Apr 2010Microsoft CorporationAutomating deployment of service applications by exposing hosting environment constraints
US20110016214 *15 Jul 200920 Jan 2011Cluster Resources, Inc.System and method of brokering cloud computing resources
US20110276939 *6 May 201010 Nov 2011Microsoft CorporationTechniques to enhance software production
US20110283017 *14 May 201017 Nov 2011Microsoft CorporationInterconnecting Members of a Virtual Network
US20110296370 *28 May 20101 Dec 2011James Michael FerrisMethods and systems for generating cross-mapping of vendor software in a cloud computing environment
US20120131579 *16 Jul 201024 May 2012Centre National De La Recherche ScientifiqueMethod and system for deploying at least one virtual network on the fly and on demand
US20120136907 *30 Nov 201031 May 2012International Business Machines CorporationVirtual node subpool management
US20120167122 *27 Dec 201028 Jun 2012Nokia CorporationMethod and apparatus for pre-initializing application rendering processes
US20120226796 *1 Mar 20116 Sep 2012Morgan Christopher EdwinSystems and methods for generating optimized resource consumption periods for multiple users on combined basis
US20120271903 *19 Apr 201225 Oct 2012Michael LunaShared resource and virtual resource management in a networked environment
US20120311106 *31 May 20116 Dec 2012Morgan Christopher EdwinSystems and methods for self-moving operating system installation in cloud-based network
US20130031158 *3 Jun 201131 Jan 2013Salsburg Michael AMoving enterprise software applications to a cloud domain
US20140317166 *6 Mar 201423 Oct 2014Gravitant, Inc.Assessment of best fit cloud deployment infrastructures
US20150012657 *8 Jul 20138 Jan 2015International Business Machines CorporationAllocation of resources in a networked computing environment based on physical location mapping
US20150067171 *30 Aug 20135 Mar 2015Verizon Patent And Licensing Inc.Cloud service brokering systems and methods
US20150222564 *5 Feb 20146 Aug 2015Futurewei Technologies, Inc.Virtual Resource Mapping Mechanisms
US20150286505 *22 Oct 20148 Oct 2015Oracle International CorporationComputing system resource provisioning
Legal Events
DateCodeEventDescription
15 Oct 2015ASAssignment
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WALLS, JEFFREY JOEL;PERREIRA, MARK;SIGNING DATES FROM 20131015 TO 20131021;REEL/FRAME:036803/0177
9 Nov 2015ASAssignment
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001
Effective date: 20151027