Sign In to Follow Application
View All Documents & Correspondence

System And Method For Automated Provisioning To Cloud Computing Environment

Abstract: System and method for template-based provisioning of computing components to a cloud environment is described. The system and method comprises of accessing or creating at least one template by a user having pre-defined computing platform specifications and/or policies, said at least one template residing in a provisioning server; specifying configuration settings of the cloud environment by a cloud engine according to the pre¬defined policies and/or computing platform specifications; provisioning the computing components by the cloud engine based on the configuration settings; and specifying and/or managing the run time capacity, storage and high availability needs through the pre-defined policies in the template.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
26 May 2011
Publication Number
23/2011
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

HCL Technologies Ltd.
50-53 Greams Road  Chennai - 600006  Tamil Nadu  India.

Inventors

1. Subha Shrinivasan
50-53B  Greams Road  Chennai - 600006 Tamil Nadu  India.
2. Hareendran M.
Tidel Park  4 Canal Road  Chennai - 600113 Tamil Nadu  India.

Specification

FORM-2
THE PATENTS ACT, 1970
(39 OF 1970)
AND
THE PATENTS RULES, 2003
(As Amended)
COMPLETE SPECIFICATION
(See section 10; rule 13)
"System and Method for Automated Provisioning to Cloud Computing Environment"
HCL Technologies Ltd., a corporation organized and existing under the laws of India, of 50-53 Greams Road, Chennai - 600006, Tamil Nadu, India.
The following specification particularly describes the nature of this invention and the manner in which it is to be performed:

Technical Field
The present invention relates to software provisioning and particularly to a system and method for template-based provisioning of computing components to a cloud environment.
Background
Software provisioning is the process of selecting a target machine such as server, loading the appropriate software (operating system, device drivers, middleware and applications) and customizing and configuring the system and the software to make it ready for operation. Software provisioning can entail a variety of tasks, such as creating or changing a boot image, specifying parameters, e.g. IP address, IP gateway, to find associated network and storage resources, and then starting the machine and its newly-loaded software.
Provisioning is the process of deploying, installing, uninstalling, upgrading and configuring application services or otherwise implementing changes for hardware, software, network and/or storage resources. The term "provisioning" has been used to refer to low-level provisioning of servers or other resources, e.g., installing and configuring operating systems, as well as to high-level application provisioning, i.e., installing, updating and configuring applications on resources that have undergone low-level provisioning. Provisioning in a service delivery environment that supports a variety of deployment topologies incorporating varying numbers of servers can be a challenging task. When provisioning for compute/storage/network resources for different kinds of workloads, users & administrators go through a time consuming and manual process in provisioning, configuration & then manual migration of such workloads across clouds when required. Typically, a system administrator will perform these tasks using various tools because of the complexity of these tasks. Unfortunately, there is a lack of provisioning control tools that can adequately integrate and automate these tasks. Most management providers that offer such a provisioning mechanism also mandate that the

ownership on script creation for handling the provisioning/configuration & the image format creation & conversion for across clouds is on the end user. This means that user should spend a considerable amount of time in creating scripts & also in understanding the cloud format of each and every provider. This also increases the risk of vendor lock-in with specific providers.
In conventional approaches, provisioning solutions are directly mapped, fixed infrastructure in the service delivery environment. With this approach, the overall advantage of instant provisioning & instant bursting onto multiple clouds is completely lost.
There are various systems and methods devised for provisioning of computing components to the cloud environment as mentioned below.
US 2010/0250907 disclose a provisioning server that can perform configuration management services on target machines served by the provisioning server. The provisioning server can maintain a set of management templates. The set of management templates can be utilized to generate management configuration files for target machines. The management configuration files, generated from the management templates, can cause the target machines to operate according to a defined role (e.g. web server, client device, application server, etc.). To enable configuration management services, the provisioning server can associate the management templates with provisioning objects (e.g. profiles, provisioning templates, system records, etc.).
US 2009/0300184 disclose a method for automated provisioning of computing resources in a distributed computing network includes obtaining a data structure representing a resource dependency characterization of an application to be implemented over the distributed computing network, wherein the data structure indicates a set of resources to be deployed, obtaining a template that represents a predefined network topology for supporting deployment of the set of resources, mapping the set of resources represented in the data structure to the template so as to satisfy a set of component requirements to generate a deployment map, and provisioning the set of resources on a plurality of

computers based on the deployment map to implement the application over the distributed computing network.
However, above-mentioned systems and methods provide a server template in a stackable model where the users have to write provider specific scripts for using the template. As a result, the user is locked in with both the templates and the provider. These templates define a complete service lifecycle management which is not an ideal environment/requirement for developers. The automation of verification achieved by them is partial and involves huge efforts as they tend to have custom scripts written, which again needs to be subjected to customization time and again.
The above-mentioned drawbacks are therefore overcome by the instant invention as will be explained in more detail herein below.
Objects and Summary
The object of the present invention is to provide a system and method for template-based provisioning of computing components to a cloud environment.
It is an object of the present invention to provide a standard template having pre-defined computing platform specifications and/or policies to establish a workload without manual configuration.
Another object of the present invention is to allow the standard template to take care of the format conversions from one cloud to another.
Yet another object of the present invention is to embed language specific scripts in the templates which are independent of cloud provider specific scripts or format.

In accordance with an embodiment of the present invention, a method is provided for automated provisioning of computing components to a cloud environment, said method comprising the steps of:
■ accessing or creating at least one template by a user having pre-defined computing platform specifications and/or policies, said at least one template residing in a provisioning server;
■ specifying configuration settings of the cloud environment by a cloud engine according to the pre-defined policies and/or computing platform specifications;
1 provisioning the computing components by the cloud engine based on the configuration settings; and
■ specifying and/or managing the run time capacity, storage and high
availability needs through the pre-defined policies in the template.
According to another embodiment of the present invention a system is provided for automated provisioning of computing components to a cloud environment, said system comprising of:
■ means for accessing or creating at least one template by a user having pre¬defined computing platform specifications and/or policies, said at least one template residing in a provisioning server;
■ means for specifying configuration settings of the cloud computing environment according to the pre-defined policies and/or computing platform specifications;
■ means for provisioning the computing components by the cloud engine based on the configuration settings; and
■ means for specifying and/or managing the run time capacity, storage and high availability needs through the pre-defined policies in the template.
Yet another embodiment of the present invention provides a computer program product for automated provisioning of computing components to a cloud environment, comprising one or more computer readable media configured to perform said method.

Brief Description of the Drawings
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
Fig. 1 illustrates an exemplary provisioning environment in which the provisioning server assists in the configuration management across the cloud environment according to the present invention
Fig. 2 illustrates an exemplary general purpose computer system deployed in the provisioning environment according to the present invention.
Figs. 3a and 3b illustrates various components of built-in templates residing in the provisioning server according to the present invention
Fig, 4 illustrates three exemplary steps of automated provisioning of cloud application services according to the present invention
Fig. 5 is an exemplary flowchart illustrating a method of automated provisioning of computing components to the cloud environment according to the present invention.
Detailed Description
System and method for template-based provisioning of computing components to a cloud environment is described. The system and method is not intended to be restricted to any particular form or arrangement, or any specific embodiment, or any specific use, disclosed herein, since the same may be modified in various particulars or relations without departing from the spirit or scope of the claimed invention herein shown and described. The system and/or method shown is intended only for illustration and

disclosure of an operative embodiment and not to show all of the various forms or modifications in which this invention might be embodied or operated.
The instant invention provides a system and method for automating the provisioning of computing components to a cloud environment. The cloud environment can be based on IaaS (Infrastructure as a service), PaaS (Application or Platform as a service), SaaS (Software as a Service). The instant invention automates the entire provisioning process starting from configuration, intermittent changes in services, cross-cloud migration etc. The users can write language specific scripts to be embedded into the templates, along with other options related to the workload component being hosted on cloud.
According to an embodiment of the present invention, users are given standard templates for various application types and it can be a test bed or a N-tier application with various components or a simple storage service. When a template of a pattern is selected, the relationship between various components is automaticaliy established. At the time of choosing the template, the users can embed language specific scripts (Java or C or C++) onto the templates for various scenarios like configuration, configuration changes, service shutdown etc. Standard parsers can be used to interpret the scripts when needed. Once these are uploaded along with templates, various scenarios are automatically handled by picking up the scripts. Later, when the template is chosen to migrate to some other cloud, image/format conversion is automatically taken care of along with Data Persistence, Configurations to be restored & storage & network configurations, back-up, Disaster recovery etc.
The techniques described herein may be used in many different operating environments and systems. An exemplary environment that is suitable for practicing various implementations is discussed in the following section with respect to the accompanying figures.
EXEMPLARY SYSTEM

Fig. 1 illustrates an exemplary provisioning environment in which the provisioning server assists in the configuration management across the cloud environment according to the present invention. According to a preferred embodiment of the instant invention, the system and method provides a technique for provisioning the computing components to the computing environment. The computing components can be IaaS, PaaS or SaaS.
The provisioning environment 100 can include a provisioning server 102 comprising a database 110, cloud environment 104, one or more user workstations 108A-N who provide cloud application services to be hosted on the cloud environment 104. The environment can be applied to provisioning any form of software such as Windows, UNIX and LINUX systems. The provisioning server 102 also known as Nimbo in the instant invention can be configured to maintain a set of pre-defined templates that are stored in the database 110. The database 110 can be any relational, hierarchical or network database. The templates are placeholders for specifying compute, platform, software & runtime elements for hosting applications in an On-demand, as-a-service fashion. The templates in the instant invention comprises of computing platform specifications and policies that assist in the provisioning of the computing components. These policies define, for any application, the aspects of Backup/Restore, Snapshots, Cloud bursting to handle spikes in traffic etc. Thus the templates in Nimbo offer both provisioning & service lifecycle management in a near automated fashion.
The provisioning server 102 can also be configured to include a cloud engine which automates the entire process of provisioning when the cloud application is ready to run on a cloud in an On-demand and dynamic fashion based on the configuration settings in the template. The user workstations are the target machines providing the cloud application services for which the provisioning is being done. The server 102 can be a general purpose computer system as illustrated in Fig. 2. The users 108A-N workstations can also be a general purpose computer system as depicted in Fig. 2.
The cloud environment 104 can include wide area network such as internet, local area network, wireless network or any other network that can allow data communication. The

networks can be public or private network connection and can deploy any of the security features such as firewall, encryption etc.
Fig. 2 is an illustration of general purpose computer system used in the provisioning environment according to the present invention.
The computer system 200 can operate as a standalone device or may be connected, e.g., using a network, to other computer systems or peripheral devices. In a networked deployment, the computer system can operate in the capacity of a server or as a client user computer in a server-client user network environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. The computer system 200 can also be implemented as or incorporated into various devices, such as a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile device, a palmtop computer, a laptop computer, a desktop computer, a communications device. It can also be implemented using electronic devices that provide voice, video or data communication.
The computer system 200 can include a processor 202, such as, a central processing unit (CPU), a graphics processing unit (GPU), or both. The processor 200 can be one or more general processors, digital signal processors, application specific integrated circuits, field programmable gate arrays, servers, networks, digital circuits, analog circuits, combinations thereof, or other now known or later developed devices for analyzing and processing data.
The computer system 200 can include a memory 210 that can communicate via a bus 208. The memory 210 can be a main memory, a static memory, or a dynamic memory. The memory 210 can include various types of volatile and non-volatile storage media, including but not limited to random access memory, read-only memory, programmable read-only memory, electrically programmable read-only memory, electrically erasable read-only memory, flash memory, magnetic tape or disk, optical media and the like. In one case, the memory 210 may include a cache or random access memory for the

processor 202. 7^he memory 210 can be an external storage device 214 or database for storing data and can include a hard drive, compact disc ("CD"), digital video disc ("DVD"), memory card, memory stick, floppy disc, universal serial bus ("USB") memory device, or any other device operative to store data. The memory 210 can be operable to store instructions executable by the processor 202. The processing strategies can include multiprocessing, multitasking, parallel processing and the like.
The computer system 200 can further include a display 212, such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid state display, a cathode ray tube (CRT), a projector, a printer or other now known or later developed display device for outputting determined information. Additionally, the computer system 200 can include an input/output device 206 configured to allow a user to interact with any of the components of system. The input device 206 may be a number pad, a keyboard, or a cursor control device, such as a mouse, or a joystick, touch screen display, remote control or any other device operative to interact with the system.
The computer system 200 can include a communication interface 216 for transmitting or receiving the instructions over the network 218. The communication interface 216 can be a part of the processor 202 or can be a separate component. The communication interface can be created in software or may be a physical connection in hardware. The communication interface 216 can be configured to connect with a network 218, external media, the display 212, or any other components in system 200, or combinations thereof. The connection with the network 218 can be a physical connection, such as a wired Ethernet connection or may be established wirelessly. In the case of a server 102, the server can communicate with users 108A-N through the communication interface 216.
Figs. 3a & 3b illustrates various components of built-in templates residing in the provisioning server according to the present invention

For each and every component of the workload, platform & policies are defined in the template after which the cloud engine automates the entire job of provisioning & management.
The computing platform elements or specifications in the template are as follows:
Server - Specifies what configuration of server (CPU/RAM/Storage) is needed by the application. The cloud engine makes use of this value to automatically allocate the desired configuration for the workload
OS - What Operating system does the workload need (Linux or Windows). The cloud engine installs a virtual machine of that OS on top of the server.
Applications - What additional applications (SAP or Apache) to be installed on the OS. The OS and applications may sometimes be combined into a Virtual appliance (VA). This is also automatically picked by the cloud engine from the hardware
Packages ~ Any additional version specific packages to be installed on top of the application (if yes, the location in hard disk and the name of packages to be specified for the cloud engine to pick up)
Scripts - What scripts to run respectively during install, configure and deployment process. The names & location in disk are specified.
Configuration - What configuration inputs need to be specified to the scripts when they are executed.

When all these inputs are specified, the cloud engine automates the entire process when the application is ready to run on a Cloud in an On-demand, dynamic fashion. The entire provisioning & setup process for the application is done almost instantaneously unlike the traditional way of installing permanently on servers and underutilizing them.
Once the Platform elements are specified and setup, the application is ready to run on cloud. Post this, since it is a dynamic environment, the application may need additional services like backup, disaster recovery, snapshots, additional provisioning incase the allocated infrastructure is insufficient. The rules and triggers for every such event can be programmed into the templates via the policies associated with platform elements. These are optional and the user has the choice of not specifying any rules for certain events.
The policies that can be specified for automated provisioning are as follows:
Target Cloud: This specifies on which Cloud the provisioning should be done. The user can choose Amazon OR VMware or a local Datacenter. Once the target cloud is specified, all images are automatically converted into the target cloud format by the Cloud Engine before deployment and handled in an On-demand manner. The user can thus prepare one image and deploy it in a range of clouds without converting formats from one to another.
Snapshot: This specifies the amount of storage to be allocated for snapshots and the frequency of snapshots. Snapshots are taken regularly so that in the event of failure, the entire setup can be migrated to a healthy environment in its current state. This avoids the need for restarting the service all over again and ensures that the service is available in a near 24x7 duration.

Disaster Recovery - This specifies a disaster recovery point/trigger at which the application should be migrated to a healthy environment. Thus this prevents any downtimes - the cloud engine keeps monitoring for the triggers and moves the workload to a healthy environment using the snapshots even before a disaster happens. If in case it happens to be a new trigger for disaster, the entire environment from the last snapshot is moved to a healthy setup.
Capacity/Bursting - When an application is hosted as a service, they are subject to unpredictable loads by end users. In an environment such as Cloud, this requires dynamic provisioning based on fluctuating loads. In the capacity/bursting policy, the cloud engine can be programmed to watch out for certain parameters - like network traffic or incoming users or such other parameters. When the value crosses a certain threshold limit, the cloud engine automatically allocates additional compute capacity for the application in an incremental manner so that the performance and service availability are not affected. When the traffic goes below a certain value, the additional servers are de-allocated. This is done in a near automated fashion by the Cloud engine.
Back-up: The back-up plan lets the user to define a back-up strategy - defining primary, secondary and tertiary data, the back-end cloud storage on which they are to be stored and how often is back-up taken. This is only for data and unlike the entire application in the snapshot, this deal only with storage.
As can be seen, the various elements of the template help to automate the entire provisioning & management of a workload in a near seamless fashion. The templates work on a choice of clouds thereby relieving the user of policies & overheads in each target cloud. The Cloud Engine of the provisioning server which forms the core of the server, uses these templates to actively manage workloads without user intervention

Fig. 3b illustrates a template created for a typical Web 2.0 Application with the computing platform specifications and policies.
The technique and method for automated provisioning is further illustrated by referring to Fig. 4 and 5.
EXEMPLARY METHOD
Fig. 4 illustrates three exemplary steps of automated provisioning of cloud application services according to the present invention
The first step is to define the cloud application service that needs to be provisioned in the cloud environment. The user provides information about what component of IT stack is being hosted as a service i.e. whether it is Infrastructure-As-A-Service( IaaS), Software-As-A-Service(SaaS) or Platform-As-A-Service(PaaS). The user can also specify the type of cloud provider through which he wants to host the service.
The second step is to configure the service through the built in templates having computing platform specifications and policies as explained above in Figs. 3a and 3b.
The third step is to manage service after the application is hosted on the cloud environment. During this phase, the application is hosted and is running on the Cloud and is being managed for 24x7 availability, automated provisioning through scale-up and scale-down, Storage requirements like Backup & Restore/Snapshots, Metering & Reports
Fig. 5 is an exemplary flowchart illustrating a method of automated provisioning of computing components to the cloud environment according to the present invention.

At 502, the built in templates can be accessed from the provisioning server or can be created by user depending upon the type of cloud application to be provisioned or hosted on the cloud environment. The template has pre-defined computing platform specifications and policies as explained above in Figs. 3a and 3b.
At 504, the configuration settings are specified by the cloud engine by specifying the platform and policies. These settings are specified by the cloud engine in the provisioning server which automates the entire process of provisioning.
At 506, the provisioning is initiated by the cloud engine as per the configuration settings.
At 508, after the provisioning is done and the application is hosted on the cloud, the run time capacity, storage and high availability needs is managed by the cioud engine through the pre-defined policies in the template. The policies have been further explained in Figs 3a and 3b.
The advantages possessed by the present invention is that system and method of the instant invention results in elimination of lengthy provisioning process, elimination of learning curve in cloud template adoption, elimination of customization for each and every cloud provider, and elimination of manual intervention during service changes or downtimes.
The embodiments described above and illustrated in the figures are presented by way of example only and are not intended as a limitation upon the concepts and principles of the present invention. Elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions. As such, it will be appreciated by one having ordinary skill in the art that various changes in the elements and their configuration and arrangement are possible without departing from the spirit and scope of the present invention as set forth in the appended claims.

We Claim:
1. A method for automated provisioning of computing components to a cloud
environment, said method comprising the steps of:
■ accessing or creating at least one template by a user having pre-defined computing platform specifications and/or policies, said at least one template residing in a provisioning server;
■ specifying configuration settings of the cloud environment by a cloud engine according to the pre-defined policies and/or computing platform specifications;
■ provisioning the computing components by the cloud engine based on the configuration settings; and
■ specifying and/or managing the run time capacity, storage and high availability needs through the pre-defined policies in the template.

2. The method as claimed in claim 1, wherein the computing components can be infrastructure, software or platform.
3. The method as claimed in claim 1, wherein the computing platform specifications vary according to the cloud environment.
4. The method as claimed in claim 1, wherein said method can be deployed across multi-clouds irrespective of cloud image formats.
5. The method as claimed in claim 1, wherein the computing platform specifications comprises of language specific scripts embedded in the template for automating the provisioning.
6. A system for automated provisioning of computing components to a cloud environment, said system comprising of:

■ means for accessing or creating at least one template by a user having pre¬defined computing platform specifications and/or policies, said at least one template residing in a provisioning server;
■ means for specifying configuration settings of the cloud computing environment according to the pre-defined policies and/or computing platform specifications;

■ means for provisioning the computing components by the cloud engine
based on the configuration settings; and * means for specifying and/or managing the run time capacity, storage and
high availability needs through the pre-defined policies in the template.
7. The system as claimed in claim 6, wherein the computing components can be infrastructure, software or platform.
8. The system as claimed in claim 6, wherein the computing platform specifications vary according to the cloud environment.
9. The system as claimed in claim 6, wherein said system is adapted to be deployed across multi-clouds irrespective of cloud image formats.
10. The system as claimed in claim 6, wherein the computing platform specifications comprises of language specific scripts embedded in the template.
11. A computer program product for automated provisioning of computing components to a cloud environment, comprising one or more computer readable media configured to perform said method.

Dated this 26m day of May 2011

Of Anand and Anand Advocates Agents for the Applicant

Documents

Application Documents

# Name Date
1 1787-CHE-2011 FORM-9 01-06-2011.pdf 2011-06-01
1 1787-CHE-2011-AbandonedLetter.pdf 2018-05-10
2 1787-CHE-2011 FORM-18 01-06-2011.pdf 2011-06-01
2 1787-CHE-2011-FER.pdf 2017-10-23
3 1787-CHE-2011 POWER OF ATTORNEY 15-12-2011.pdf 2011-12-15
3 Form-3.pdf 2011-09-03
4 1787-CHE-2011 CORRESPONDENCE OTHERS 15-12-2011.pdf 2011-12-15
4 Form-1.pdf 2011-09-03
5 1787-CHE-2011 CORRESPONDENCE OTHERS 15-12-2011.pdf 2011-12-15
5 Form-1.pdf 2011-09-03
6 1787-CHE-2011 POWER OF ATTORNEY 15-12-2011.pdf 2011-12-15
6 Form-3.pdf 2011-09-03
7 1787-CHE-2011 FORM-18 01-06-2011.pdf 2011-06-01
7 1787-CHE-2011-FER.pdf 2017-10-23
8 1787-CHE-2011 FORM-9 01-06-2011.pdf 2011-06-01
8 1787-CHE-2011-AbandonedLetter.pdf 2018-05-10

Search Strategy

1 searchstrategy_15-09-2017.pdf