1. Field of the Invention
The present invention relates to Infrastructure-as-a-Service software, and, more specifically, to methods and systems for implementing simulations for Infrastructure-as-a-Service software.
2. Description of the Related Art
Infrastructure as a Service (“IaaS”) cloud management software typically manages a set of hardware as a pool of resources and performs allocation and de-allocation of resources to or from the pre-defined pool. The resources often include a virtual (hypervisor) physical server (including CPU, memory, storage) and network, although a wide variety of other hardware and services are possible. The resources are often installed as large pools in a data center which can be either local or remote to the end user. The IaaS cloud management software also optionally includes a set of administrative and end user capabilities, and builds on a service driven model like service request management, process automation through workflows, and notification.
Service providers offer IaaS services to clients who purchase these services on a fixed fee or pay-as-you-go. The clients can access the IaaS services via the Internet, virtual networks, and/or local area networks.
Setting up IaaS cloud management software for development, testing, training, and education requires a managed infrastructure including physical servers, storage and networking, etc. Often, the IaaS cloud management software might not be sufficient unless there is a minimum set of managed hardware for the resource pool. There are several key challenges faced during the life cycle of IaaS software development, and when training others to use the software, including but not limited to: (i) requiring a substantial investment in managed infrastructure; (ii) requiring investment in hardware to host the IaaS cloud management software itself; (iii) requiring highly skilled resources to perform the setup and configuration of the hardware and managed software; (iv) the substantial amount of time required to prepare and configure the software take more time; and (v) the extensive testing that is consistently required in order to make the software stable and deliver expected results.
There have been previous attempts to address one or more of these issues. For example, the IaaS cloud management software can have multiple integrated components. These components can be tested individually, but due to the limited available managed infrastructure, testing may not be completed on all code paths (end-to-end). Further, since the time required of developers is so extensive, testers have been asked to use available resources, thereby limiting these activities to just one or two components. Additionally, these training sessions are often limited to theory only (for example, charts and demos), resulting in very little actual practical training.
It is therefore a principal object and advantage of the present invention to provide a simple and cost-effective environment for testing and developing IaaS software.
It is another object and advantage of the present invention to reduce the investment required to host managed software and offer pay-as-you-go services.
It is yet another object and advantage of the present invention to significantly reduce the amount of time required to install and setup a managed infrastructure.
Other objects and advantages of the present invention will in part be obvious, and in part appear hereinafter.
Embodiments of the present invention comprise systems and methods for simulation within a cloud computing environment. According to one embodiment, a method for simulation within a cloud computing environment comprising infrastructure management software and a cloud-based managed infrastructure comprises the steps of: (i) identifying a dataflow from the infrastructure management software to the infrastructure; (ii) identifying, from the identified dataflow, which of a plurality of components of the infrastructure management software are interacting with the infrastructure; (iii) identifying, using the identified component, an interface that is interacting with the managed infrastructure; and (iv) implementing a simulation class for the identified interface, wherein the simulation class populates the infrastructure management software with metadata from an infrastructure database sufficient to allow the infrastructure management software to simulate the infrastructure. The method can further comprise the steps of: (v) preparing a virtual image of infrastructure management software in a second cloud computing environment; and (vi) implementing the infrastructure management software in the second cloud computing environment.
In another implementation, a non-transitory computer-readable storage medium containing program code for creating a simulation within a cloud computing environment comprising infrastructure management software and a cloud-based managed infrastructure, the computer program product comprising: (i) program instructions for identifying a dataflow from the infrastructure management software to the infrastructure; (ii) program instructions for identifying, from the identified dataflow, which of a plurality of components of the infrastructure management software are interacting with the infrastructure; (iii) program instructions for identifying, using the identified component, an interface that is interacting with the managed infrastructure; and (iv) program instructions for implementing a simulation class for the identified interface, wherein the simulation class populates the infrastructure management software with metadata from an infrastructure database sufficient to allow the infrastructure management software to simulate the infrastructure, and further wherein the simulation class does not interact with the managed infrastructure. The computer program product can further comprise: (v) program instructions for preparing a virtual image of infrastructure management software in a second cloud computing environment; and (vi) program instructions for implementing the infrastructure management software in the second cloud computing environment.
In another implementation, a system for simulation within a cloud computing environment includes: (i) an infrastructure management software; (ii) a cloud-based managed infrastructure; (iii) an infrastructure database; (iv) a dataflow from the infrastructure management software to the infrastructure; (v) one or more components of the infrastructure management software which, based on the dataflow, is interacting with the infrastructure; (vi) one or more interfaces that, based on the one or more interacting components, are interacting with the managed infrastructure; and (vii) a simulation class for the identified interface, wherein the simulation class populates the infrastructure management software with metadata from the infrastructure database sufficient to allow the infrastructure management software to simulate the infrastructure. The system can further comprise a virtual image of infrastructure management software prepared and implemented in a second cloud computing environment.
The present invention will be more fully understood and appreciated by reading the following Detailed Description in conjunction with the accompanying drawings, in which:
Referring now to the drawings, wherein like reference numerals refer to like parts throughout, according to one embodiment is provided a metadata model for implementation of a cloud simulator for IaaS cloud management software. The metadata model includes an interfacing layer and IaaS cloud management software with simulation as a virtual cloud hosted in a public or private cloud.
For purposes of illustration, the current metadata data model for implementation of a Cloud Simulator and interfacing layer is explained by comparison to conventional IaaS management software (with its managed infrastructure as pool of resources).
IaaS software can have multiple components, such as components 102 through 105 depicted in
Integration of software components 102-105 requires proper end-to-end integration testing, and this testing uses a managed infrastructure 120 for the cloud resource pool.
Often, IaaS software will be associated with one or more databases 110 to save details about the resource pool, including information about infrastructure, usage, allocation, de-allocation, and many other facets of the resource pool. For example, conventional IaaS management software 100 can be associated with a change and configuration management database, a data center model database, and/or many other types of databases.
With proper investigation among the IaaS software components, the set of components that interact with the physical managed infrastructure can be identified. For example,
Using the identified component(s), a set of interfaces which are independent of the managed infrastructure can be identified. For example, in
Next, there is implementation to the above-identified interfaces, which actually interact with the managed infrastructure for all provisioning and management actions. As an example, there can be hypervisor-specific workflows (such as those similar to java classes) which implement logical operations (or interfaces) which are designed for hypervisor-specific interactions.
The model proposes an Interfacing layer in the IaaS cloud management software which exploits the metadata-based model for cloud simulation.
a. Infrastructure discovery: an automated discovery run against the real managed infrastructure (servers, networking, storage, etc), and the discovered data is stored in a database, where most other components use this data; and/or
b. Provisioning infrastructure: a set of actions run against the managed infrastructure to create, configure, and manage the infrastructure.
This is not meant to be a complete list, and many other types of dataflows to the managed infrastructure from the IaaS software package are possible.
“Dataflow” can include, but is not limited to, forms of communication used in parallel computing and/or object-oriented programming in which information (such as bytes, code, or other data) is sent to and received from other processes. Dataflow management can be especially important in systems that provide high-performance and/or continuous processing via concentrated data streams.
At the second step in
At the third step in
At the fourth step in
The data population helps to simulate the managed infrastructure for IaaS software, thereby resulting in the following: (i) eliminating the need and cost of investment required for managed infrastructure; (ii) eliminating the time to do a setup for managed infrastructure; (iii) lowering runtime costs; and (iv) helping run tests for end-to-end integration.
As an initial step, an IaaS public or private cloud is identified. There are, for example, numerous available public IaaS clouds, including but not limited to IBM Smart Cloud Enterprise (SCE) and Amazon EC2.
As another step is preparing the virtual image. The procedure for preparing the virtual image depends on the image requirements of the selected public/private cloud, but could include, for example, one or more of the following:
As another step is registering the image. For example, the cloud provider could register the image into the catalog for users to request.
As another step is installing the IaaS cloud environment within the cloud. The installed IaaS software will interact with the managed infrastructure simulator, which eliminates the need for hardware resources required for the managed servers. The infrastructure simulator uses the idea of hardware simulation, and could include one or more of the following:
1. Simulated network: A simulated network within the scope of server is made available with the server. Other objects will obtain a network address from this simulated network. This simulated network is intended to provide the feel, data, and response of a real network.
2. Simulated hypervisor host: A host that simulates the hypervisor which has resourced CPU, memory, and storage. It has assigned IP address(es) and is active. A set of virtual servers can be created by dividing the resources across virtual servers. The IaaS can run discovery on these hypervisor hosts and populate the resource pools.
3. Simulated virtual image: A simulator virtual image which can be cloned to create a virtual server, and has attributes including but not limited to image type, image size, and operating system, among many others. The IaaS runs discovery to populate the list of images to the catalog.
4. Simulated virtual server: A server that simulates the virtual server which has simulator hypervisor host as a parent from which resources are acquired. The IaaS uses the images in the catalog to create the virtual servers, and on the user's request the IaaS software will create the virtual server by selecting the proper hypervisor host as a parent.
These simulated components are not meant to be a complete list, and many other simulated components are possible.
Although the present invention has been described in connection with a preferred embodiment, it should be understood that modifications, alterations, and additions can be made to the invention without departing from the scope of the invention as defined by the claims.
The capabilities of one or more aspects of the present invention can be implemented in software, firmware, hardware, or some combination thereof. At least one program storage device readable by a machine embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention can be provided.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be performed substantially concurrently, or the blocks may sometimes be performed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Further, insofar as various embodiments of the devices and/or processes are set forth in examples, block diagrams, and/or flowcharts, it is understood by those in the art that each function and/or operation within the examples, block diagrams, or flowcharts can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or any combination thereof.
Number | Name | Date | Kind |
---|---|---|---|
20090300423 | Ferris | Dec 2009 | A1 |
20110066597 | Mashtizadeh et al. | Mar 2011 | A1 |
20110145439 | Chaturvedi et al. | Jun 2011 | A1 |
20110153812 | Yoon et al. | Jun 2011 | A1 |
20120185913 | Martinez et al. | Jul 2012 | A1 |
20120240110 | Breitgand et al. | Sep 2012 | A1 |
Entry |
---|
Calheiros et al. “CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms”. Published online Aug. 24, 2010 in Wiley Online Library (wileyonlinelibrary.com). 28 pages. |
Calheiros et al. “Modeling and Simulation of Scalable Cloud Computing Environments and the CloudSim Toolkit: Challenges and Opportunities”. in High Performance Computing $ Simulation, 2009. 11 pages. |
Das, Krishnadhan, Virtual Cloud—A Cloud Environment Simulator, Department of Computer Science and Engineering, Indian Institute of Technology, Bombay, India, pp. 1-17, Oct. 2010. |
Accelerating Enterprise Cloud Infrastructure Deployments, A Better Way to Deploy Private Clouds, Oracle Executive Bref, Hardware and Software. Engineered to Work Together, http://www.oracle.com/us/solutions/oracle-opt-sols-cloud-inf-sol-brief.406108.pdf, pp. 1-4, 2011. |
Garg, S., Buyya, R., NetworkCloudSim, Modelling Parallel Applications In Cloud Simulations, 2011 IEEE Fourth International Conference on Utility and Cloud Computing, DOI 10.1109/UCC.2011.24, pp. 105-113, 2011. |
Calheiros, R., Ranja R., De Rose, C., Buyya, R , ClouoSim: A Novel Framework for Modeling and Simulation of Cloud Computing Infrastructures and Services, as of Mar. 14, 2009, pp. 1-9. |
Mills, K., Filliben, J., Dabrowski, C., An Efficient Sensitivity Analysis Method for Large Cloud Simulations, Cloud Computing (CLOUD), 2011 IEEE International Conference on Cloud Computing, DOI 10.1109/CLOUD.2011.50, 2011, pp. 724-731. |
Number | Date | Country | |
---|---|---|---|
20130325433 A1 | Dec 2013 | US |