Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CLOUD PLATFORM CONFIGURATOR
Document Type and Number:
WIPO Patent Application WO/2018/182411
Kind Code:
A1
Abstract:
The present invention generally relates to providing a method of, and system for, generating a cloud configuration scheme for automatically setting up a cloud platform and defining resource allocation thereof. In an aspect of the invention a method is provided of configuring a cloud platform by generating a cloud configuration scheme for automatically setting-up the cloud platform and defining an estimated resource allocation thereof, the method being performed in a computer network comprising at least one client computer and at least one remote server. In the method a remote server generates, presents and adapts a list of questions for generating the cloud configuration scheme by which the cloud platform can be automatically set-up resources can be allocated accordingly. To this end, the cloud configuration scheme comprises a plurality of functional building blocks each comprising a plurality of guest building blocks, each of the guest building blocks comprising a plurality of capacity building blocks. The server is further arranged to measure actual resource allocation usage and compare the actual resource allocation with the estimated resource allocation.

Inventors:
LOEFFEN ANTONIUS THEODORUS JOHANNES MARIA (NL)
VAN DEN BERGH REMCO WILHELMUS FRANCISCUS (NL)
Application Number:
PCT/NL2018/050191
Publication Date:
October 04, 2018
Filing Date:
March 29, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ESHGRO B V (NL)
International Classes:
G06F9/50
Foreign References:
US20100125473A12010-05-20
Other References:
None
Attorney, Agent or Firm:
ALGEMEEN OCTROOI- EN MERKENBUREAU B.V. (NL)
Download PDF:
Claims:
CLAIMS

1 . A method of configuring a cloud platform by generating a cloud configuration scheme for automatically setting-up said cloud platform and defining an estimated resource allocation thereof, said method being performed in a computer network comprising at least one client computer and at least one remote server, said method comprising the steps of:

generating, by said remote server, a dynamic list of questions for a user of said client computer, wherein said questions are arranged for defining variables relating to said cloud configuration scheme, and wherein said questions are retrieved from a question database and each relate to a functional building block for building a cloud platform;

presenting, by said remote server, at least some of the questions of said list to a user of said client computer over a web interface;

- adapting, by said remote server, said dynamic list of questions for adapted representation of said questions of said list to said user of said client computer based on answers to said questions by said user of said client computer;

generating, by said remote server, said cloud configuration scheme for automatically setting up said cloud and defining resource allocation, wherein said cloud configuration scheme comprises a plurality of functional building blocks each comprising a plurality of guest building blocks, each of said guest building blocks comprising a plurality of capacity building blocks, and wherein said capacity building blocks define at least a predetermined amount of CPU, memory, storage and network capacity resources, said guest building block defining at least a plurality of capacity building blocks, as well as operating system definitions and database (management ) definitions, and said functional building blocks defining at least a plurality of guest building blocks, as well as native cloud based software definitions and legacy cloud based software definitions, said legacy cloud based software definitions defining operational and functional requirements for said legacy software running on a cloud platform and wherein said method further comprises the steps of:

measuring, by said remote server, resource allocation usage of at least one cloud platform set-up through said cloud configuration scheme; and

comparing, by said remote server, said measured resource allocation usage with said estimated resource allocation.

2. The method of configuring according to claim 1 , wherein said method further comprises the step of:

adapting, by said remote server, said capacity building blocks for increased accuracy of estimated resource allocation based on said historical comparison of said used resource allocation of said set-up cloud platform with said estimated resource allocation, and wherein in particular said estimated resource allocation is increased for one or more of the group consisting of: physical CPU , memory, storage and network capacity resources. 3. The method of configuring according to claim 2, wherein said step of adapting is an iteration step.

4. The method of configuring according to any of the previous claims, wherein said functional building blocks further define software application vendor specific technical dependencies for operating said software application, as well as associated licensing and billing specifications.

5. The method of configuring according to any of the previous claims, wherein said guest building blocks further define guest operating system specific technical dependencies for operating said guest operating system, as well as associated licensing and billing specifications.

6. The method of configuring according to any of the previous claims, wherein said capacity building blocks further define host operating system specific technical dependencies for operating said host operating system, as well as associated licensing and billing specifications.

7. The method of configuring according to any of the previous claims, wherein said communication between said remote server and said client computer is performed in a JSON data format.

8. A remote server for configuring a cloud platform by generating a cloud configuration scheme for automatically setting-up said cloud platform and defining an estimated resource allocation thereof, said server being arranged to communicate over a computer network with at least one client computer, said remote server comprising:

a question list generating module, arranged for generating a dynamic list of questions for a user of said client computer, wherein said questions are arranged for defining variables relating to said cloud configuration scheme, and wherein said questions are retrieved from a question database and each relate to one or more functional building blocks for building a cloud platform;

a presentation module, arranged for presenting at least some of the questions of said list to a user of said client computer over a web interface;

- a question list adapting module, arranged for adapting said dynamic list of questions for adapted representation of said questions of said list to said user of said client computer based on answers to said questions by said user of said client computer;

a cloud configuration scheme generating unit, arranged for generating said cloud configuration scheme for automatically setting up said cloud and defining resource allocation, wherein said cloud configuration scheme comprises a plurality of functional building blocks each comprising a plurality of guest building blocks, each of said guest building blocks comprising a plurality of capacity building blocks, and wherein said capacity building blocks define at least a predetermined amount of physical CPU, memory, storage and network capacity resources, said guest building block defining at least a plurality of capacity building blocks, as well as operating system definitions and database (management) definitions, and said functional building blocks defining at least a plurality of guest building blocks, as well as native cloud based software definitions and legacy cloud based software definitions, said legacy cloud based software definitions defining operational and functional requirements for said legacy software running on a cloud platform and wherein said method further comprises the steps of:

a resource allocation usage measuring unit, arranged for measuring resource allocation usage of at least one cloud platform set-up through said cloud configuration scheme; and

a comparison unit, arranged for comparing said measured resource allocation usage with said estimated resource allocation.

9. A client computer for configuring a cloud platform by communicating with a remote server according to claim 8 for generating a cloud configuration scheme for automatically setting-up said cloud platform and defining an estimated resource allocation thereof, said server being arranged to communicate over a computer network with at least one client computer.

10. A computer program product loadable into non-volatile internal memory of a mobile communication device, wherein said computer program product comprises computer program code arranged for performing the method according to claim 1 .

1 1 . The computer program product according to claim 10, wherein said computer program product is downloadable from a server of a telecommunication network.

12. An electrical carrier signal comprising the computer program product according to claim 10.

13. A computer-readable non-volatile storage medium comprising computer program code arranged for performing the method according to claim 1 .

14. A communication device such as a smart phone, tablet, laptop or personal computer comprising non-volatile internal memory for storing and executing a computer program comprising computer program code configured for communication with a server according to claim 9 for performing the method according to claim 1 .

15. A digital distribution platform server for software on a communication devices, wherein said platform comprises a non-volatile memory, being arranged for distribution of an application comprising a computer program product which comprises computer program code arranged for performing the method according to claim 1 .

Description:
Cloud platform configurator

Description

FIELD

The present invention generally relates to providing a method of, and system for, generating a cloud configuration scheme for automatically setting up a cloud platform and defining resource allocation thereof.

BACKGROUND

Cloud services are known for a number of years now. With the ever evolving availability of high bandwidth computer networks, the impact and size of cloud service is considered to increase even more over the years to come.

Plural companies have already migrated from full or mostly full local use of hardware and software towards internet-based solutions wherein functionality is provided to client computers in the form of applications running on remote (virtual) server(s).

One of the advantages of such cloud computing is that resources can be shared. In accordance with demand, resources can be accessed on-demand from a shared pool of configurable computing resources, amongst which network capacity, server computation capacity, storage capacity, and so on.

Another advantage is that management and billing is simplified since companies not needing to maintain their own servers, e.g. hardware and software running thereon, and aren't responsible anymore for requirements and maintenance to keep certain conventional and legacy software applications up and running.

In the process of migrating towards the cloud inventory's have to be made of current software applications as well as other non-physical conditions like guarantied uptime, security level, support and maintenance. The outcome of the inventory is a list of demands which need to be fulfilled by the future cloud solution. For so called native cloud software applications the demands for migrating to the cloud can be determined rather easy since the dependencies for the application to run are known, as well as the resources such application require. Known examples of such native cloud software applications are office suits provided by known software companies that enable users to create, view and edit documents directly online over a web-interface.

Migrating a company to the cloud that besides these native cloud software applications also make use of other, non-native cloud software applications is much more of a challenge. Especially in combined cloud based solutions, wherein besides these native cloud based applications/software also other non-native cloud based applications are combined. Also in the combination of both public clouds and private clouds with corresponding applications the migration to an efficient use of a combined hybrid cloud is challenging. Non-native cloud software applications like legacy software is often developed for a dedicated use for that particular company. Since most legacy software is in use for quite some time, it was not developed to run within a cloud based platform. Migration of such a private architecture to a private, public or hybrid cloud is cumbersome. It is difficult to determine what resource capacity or footprint is needed. This is in particular the case with cloud platform, e.g. private, public or hybrid clouds, that need to be arranged to facilitate both legacy and native cloud based software applications.

Known solutions to configure cloud platforms, e.g. cloud platform configurators, are thus not very sophisticated and from a safety point of view often to a large extent over dimensioned. Hence, the advantages of cloud computing in sharing resources is inefficient and finite

SUM MARY

It is thus an object of the present invention to provide an improved method of configuring a cloud platform wherein resources are allocated more efficiently.

The object is achieved in a first aspect of the invention by a method of configuring a cloud platform by generating a cloud configuration scheme for automatically setting-up the cloud platform and defining an estimated resource allocation thereof, the method being performed in a computer network comprising at least one client computer and at least one remote server, the method comprising the steps of:

- generating, by the remote server, a dynamic list of questions for a user of the client computer, wherein the questions are arranged for defining variables relating to the cloud configuration scheme, and wherein the questions are retrieved from a question database and each relate to a functional building block for building a cloud platform;

- presenting, by the remote server, at least some of the questions of the list to a user of the client computer over a web interface;

adapting, by the remote server, the dynamic list of questions for adapted representation of the questions of the list to the user of the client computer based on answers to the questions by the user of the client computer;

- generating, by the remote server, the cloud configuration scheme for automatically setting up the cloud and defining resource allocation, wherein the cloud configuration scheme comprises a plurality of functional building blocks each comprising a plurality of guest building blocks, each of the guest building blocks comprising a plurality of capacity building blocks, and wherein the capacity building blocks define at least a predetermined amount of physical CPU, memory, storage and network capacity resources, the guest building block defining one or more, and preferably a plurality of capacity building blocks, as well as operating system definitions and database (management ) definitions, and the functional building blocks defining at least a plurality of guest building blocks, as well as native cloud based software definitions and legacy cloud based software definitions, the legacy cloud based software definitions defining operational and functional requirements for the legacy software running on a cloud platform and wherein the method further comprises the steps of:

measuring, by the remote server, resource allocation usage of at least one cloud platform set-up through the cloud configuration scheme; and

comparing, by the remote server, the measured resource allocation usage with the estimated resource allocation. Cloud platforms are already known for quite some time now. More and more software applications make use of the cloud by letting users of the software perform most or all of the applications to be executed remotely. Not only on an application level software has gone through a transition towards the cloud, but also on a lower level full desktop environments, operating systems, or other software such as databases and for file storage.

In the traditional process of setting up computing architectures a system administrator or the like was given the task to estimate what hardware and software was needed in order for the organisation to be able to make use of all applications needed, e.g. office application, CRM, ERP software, databases and so on.

Nowadays the need arises for all applications to run remotely from a cloud platform. In practice, it is for the system administrator, or a manager, difficult to determine how the cloud platform should be designed such that all ICT requirements of the organization are met. These requirements are defined on different levels, e.g. on a low hardware level of resource usage, server capacity, or higher level of operating systems and a user level of applications. Moreover, on most or all levels other non-hardware related requirements should be met as well, e.g. licencing, interoperability, dependency, compatibility, billing of the software, and so on. The decisions on the establishment of a cloud platform traditionally is often made based on pure classical physical characteristics of the hardware, the same way as if it where local non-cloud based IT infrastructure. It is determined what applications will need to run, and what resources these applications require. On this basis a rough estimate is made of the amount of processing power, memory, storage, and bandwidth necessary to be able to run these applications. To be on the safe side, an extra over-capacity is often included, just to be sure that sufficient hardware resources can be allocated. The result of this migration is that the organisation is no longer the legal owner of the local hardware, and thus charged on ownership, but rather is charged based on resource capacity of the remote cloud platform.

If the ICT users of the organisation that is to migrate towards the cloud would only use standard applications that have been designed for such cloud usage, a reasonable estimate of required resource capacity can be made for these applications.

However, by far the majority of organisation, especially in SM Es and larger enterprises, not only makes use of standard public native cloud based applications, but do also make use of other non-native cloud based software such as local legacy software solutions, e.g. software especially developed for particular processes within the organisation, or dedicated security applications, data storage solutions and so on. The transition process of such legacy software to the cloud is far less straightforward.

Due to this uncertainty and lack of knowledge, upon the migration of such environments with both cloud-native and other software, a significant safety margin is often included in estimating required resource allocation. That is, the estimation of the required resources almost always results in over-dimensioning. This over-dimensioning can apply to all sorts of levels. Since it is not entirely clear how the legacy applications will perform in the remote cloud environment, the tendency to add additional memory, processing power, allocate bandwidth and storage is high. Whether these resources in practice are needed, is still questionable.

Besides physical properties such as processing power, memory, storage and bandwidth, there are many other properties that must be taken into account. Examples include specifications relating to security, performance, backup, support, etc. All of these specifications are in traditional solutions directly linked to the system, e.g. a virtual machine, and thus directly translated into processing power, memory, bandwidth and storage. Currently these are not linked to functionality, whereas functionality is what organisations desire. The present invention, in its first aspect, satisfies that demand. The inventors have come to the insight that the traditional way of arranging a cloud platform based on traditional specifications like processing power, memory, bandwidth and storage in itself does not express what the organisation desires. Other elements are needed to satisfy that desire. As such functional building blocks are proposed that enable a modular, functional way of configuring a cloud platform. On the one hand these functional building blocks include traditional features like processing power, memory, bandwidth and storage, but also other properties such as security, performance, backup, support, continuity. Such properties indeed play a major role in the efficient organization of the cloud platform. Secondly, the building blocks are hierarchically layered. By that is meant, that the final building blocks, i.e. the functional building blocks from which the cloud platform is configured, comprise, besides properties of the cloud platform that relate to the software application that run on the platform, a plurality of sub-building blocks, i.e. guest building blocks. The functional building blocks may also comprise licencies such as an application software licence and/or a virtual desktop management software license.

The guest building blocks include the properties of the cloud platform that are related to the guest OS. These guest building blocks further comprise one or more capacity building blocks that are associated with the host operating system on which the guest operating system is employed. Preferably, the guest building blocks also comprise licencies such as operating system license. The capacity building blocks could also comprise licencies, for example a license for firware management software. There are the traditional resource allocation properties like processing power, memory, bandwidth and storage, but also other relevant properties such as security, performance, backup, support, continuity.

Accordingly, the present invention proposes a method wherein a cloud platform is configured. Modern cloud platforms can be configured automatically for example on the bases of a (standard) cloud confiuration scheme. These schemes contain all variables needed for setting-up and installing the platform. Not only on a low system level like the amount of (virtual and/or physical) memory and processing power the virtual machine should allocate, but also on an operating system level what operating system and what version thereof should be installed. Finally, the scheme can also contain information for (automatically) installing the software applications within the operating system, and other requirements such as security settings, network settings, backup-settings, user management, software dependency's, update management, license management, etc. To this end a remote server is arranged to communicate with a client computer over a conventional communication network like the internet. The server is arranged to generate a list of questions. The individual questions are stored in storage, e.g. in a remote or local database. The server for example generates a first list of questions wherein the first questions are applicable for all possible configurations of cloud platforms. The questions selected by the server are arranged to define the variables of the cloud configuration scheme, as described above, such on the basis of a plurality of functional building blocks. The generated list of questions is then presented to the user of the client computer. The answers to the questions are used to adapt the dynamic list of questions, for example when the user indicates the size of the company that is going to use the cloud platform, the list is adapted to include typical questions for companies of that size. On the basis of the given answers, the server is arranged to generate the cloud configuration scheme. Thus the questions relate to functional building blocks, and/or to their sub-blocks, the guest building blocks, and/or to their sub-blocks the capacity building blocks. Each answer provides the server with a variable or array of variables to determine how the functional building blocks should be arranged. Finally, when all questions have been presented, and answers have been collected, a plurality of functional building blocks have been generated. These functional building blocks are the elements from which the server generates the cloud configuration scheme as in contains all information needed to define the variables relating to the virtual server, the host operating system, the guest operating system as well as the software applications running within the guest operating system.

Accordingly, a substantiated estimation is made of the specifications that the cloud platform has to fulfil. Since the platform is configured on the basis of a scalable and modular hierarchical plurality of functional building blocks, it is considered that the allocation of resources is more accurately estimated when compared to cloud platforms that have been configured in a traditional manner. However, the server is according to an aspect of the invention further arranged to measure the resource allocation usage of cloud platforms that have been configured accordingly. This could for example be determined from the load of the system, and more in particular, processing power usage, memory usage, bandwidth usage, storage usage, but also other properties relating to security, compliance, backups, management, support, etc. could be measured, e.g. is the security level as desired (are security updates performed on regular basis, is the firewall up and running, are virus databases up-to-date, etc.), where backups performed as scheduled, etc.

By comparing the measured resource allocation usage with the estimated resource allocation as defined by the functional building block, the guest building blocks and capacity building blocks, the server is arranged to determine the efficiency level of the cloud configuration scheme. This may help to for example determine the level of over-dimensioning of the platform. As such, it could be determined that the level of over-dimensioning is to large and can be lowered such that resources can be saved. In an example, the method is arranged to configure a public cloud platform, or a private cloud platform, or more preferably, a hybrid cloud platform or other type of cloud platform. Private cloud platforms are considered cloud infrastructures that operate solely for a single organization. The management of such a private cloud can be done internally by the organisation itself or by a third-party. Hosting of the cloud platform is preferably done remotely. On the other hand public cloud platforms are considered cloud infrastructures with services that are rendered over a network that is open for public use. Public cloud platforms provide services to users of different organisations. Some of the public cloud services may be free of charge, other may not. With respect to security public and private clouds differ considerably, especially when communication is performed over non-trusted networks, e.g. open and non secured networks. In a hybrid cloud platform different cloud types are combined, e.g. one or several local, remote, public and private clouds. The present invention is in particular suitable for such combined, hybrid cloud platforms wherein correct estimation of the actual usage of the cloud is cumbersome with respect to the required properties of security, network, user, application, operation system and hardware resource allocation.

In an example, the method further comprises the step of: adapting, by the remote server, the capacity building blocks for increased accuracy of estimated resource allocation based on the historical comparison of the used resource allocation of the set-up cloud platform with the estimated resource allocation, and wherein in particular the estimated resource allocation is increased for one or more of the group consisting of: physical CPU , memory, storage and network capacity resources.

As indicated, the server is arranged to determine if the resources are allocated efficiently. In an example, such a result could be used to adapt the capacity building blocks to increase the accuracy of what resources should be allocated for particular software, e.g. on a application level but also on a guest, platform, and/or host, infrastructure level. For example some questions could relate to what cloud-native and what legacy software currently is in use and the server is able to determine from the data stored in the database what resources these software applications require. From the real-world measurement data the server can determine that certain applications for example require less, or more, resources than estimated (or for example than software suppliers require). The corrected resource requirements can be used to update the estimated resource requirements such that the server is arranged to, over time, even further increase resource allocation estimate accuracy. Accordingly, the measuring, comparing and adapting can be performed repeatedly, e.g. as an iteration step.

In an example, the functional building blocks further define software application vendor specific technical dependencies for operating the software application, as well as associated licensing and billing specifications.

In an example, the guest building blocks further define guest operating system specific technical dependencies for operating the guest operating system, as well as associated licensing and billing specifications.

In an example, the capacity building blocks further define host operating system specific technical dependencies for operating the host operating system, as well as associated licensing and billing specifications. In an example, the communication between the remote server and the client computer is performed in a JSON data format.

In second aspect of the invention, a remote server is proposed for configuring a cloud platform by generating a cloud configuration scheme for automatically setting-up the cloud platform and defining an estimated resource allocation thereof, the server being arranged to communicate over a computer network with at least one client computer, the remote server comprising:

a question list generating module, arranged for generating a dynamic list of questions for a user of the client computer, wherein the questions are arranged for defining variables relating to the cloud configuration scheme, and wherein the questions are retrieved from a question database and each relate to a functional building block for building a cloud platform;

a presentation module, arranged for presenting at least some of the questions of the list to a user of the client computer over a web interface;

a question list adapting module, arranged for adapting the dynamic list of questions for adapted representation of the questions of the list to the user of the client computer based on answers to the questions by the user of the client computer;

- a cloud configuration scheme generating unit, arranged for generating the cloud configuration scheme for automatically setting up the cloud and defining resource allocation, wherein the cloud configuration scheme comprises a plurality of functional building blocks each comprising a plurality of guest building blocks, each of the guest building blocks comprising a plurality of capacity building blocks, and wherein the capacity building blocks define at least a predetermined amount of physical CPU, memory, storage and network capacity resources, the guest building block defining at least a plurality of capacity building blocks, as well as operating system definitions and database (management) definitions, and the functional building blocks defining at least a plurality of guest building blocks, as well as native cloud based software definitions and legacy cloud based software definitions, the legacy cloud based software definitions defining operational and functional requirements for the legacy software running on a cloud platform and wherein the method further comprises the steps of: a resource allocation usage measuring unit, arranged for measuring resource allocation usage of at least one cloud platform set-up through the cloud configuration scheme; and

a comparison unit, arranged for comparing the measured resource allocation usage with the estimated resource allocation.

In third aspect of the invention, a client computer is proposed for configuring a cloud platform by communicating with a remote server according to claim 8 for generating a cloud configuration scheme for automatically setting-up the cloud platform and defining an estimated resource allocation thereof, the server being arranged to communicate over a computer network with at least one client computer.

In fourth aspect of the invention a computer program product is proposed that is loadable into non-volatile internal memory of a mobile communication device, wherein said computer program product comprises computer program code arranged for performing the method according the previous description. In an example, the computer program product is downloadable from a server of a telecommunication network.

In fifth aspect of the invention an electrical carrier signal product is proposed comprising the computer program product according the previous description.

In sixth aspect of the invention a computer-readable non-volatile storage medium is proposed comprising computer program code arranged for performing the method according the previous description. In a seventh aspect of the invention a communication device is proposed such as a smart phone, tablet, laptop or personal computer comprising non-volatile internal memory for storing and executing a computer program comprising computer program code configured for communication with a server according to the previous description for performing the method as described above. In a eight aspect a digital distribution platform server is proposed for software on a communication devices, wherein said platform comprises a nonvolatile memory, being arranged for distribution of an application comprising a computer program product which comprises computer program code arranged for performing the method as described above.

In view of the foregoing certain illustrative aspects of the inventions are described herein in connection with the following description of the drawings as well as the annexed drawing. These aspects are indicative of various ways in which the invention can be put into practice, all of which are covered herein. Other advantages and novel features of the invention may become apparent from the following detailed description when considered in conjunction with the annexed drawing. BRIEF DESCRIPTION OF THE DRAWING

Fig. 1 shows an example of an aspect of the invention wherein the method of configuring a cloud platform is disclosed;

Fig. 2 shows an example of another aspect of the invention wherein a server is disclosed that is arranged for configuring a cloud platform.

DETAILED DESCRIPTION OF THE DRAWING

The subject disclosure is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout the description.

Over the years, cloud infrastructure and cloud technologies in general have become more and more mature. Not only large software applications but also dedicated software applications are being migrated towards cloud platforms. Traditional non cloud based platforms have drawbacks with respect to scalability and flexibility of usage, and ease of maintenance. Amongst others, these drawbacks drive organisations to the migrate towards and use of cloud platforms. However, the provision of such cloud platforms can be cumbersome. Cloud based infrastructure and the software running on these cloud platforms require management and provisioning solutions that enable efficient and correct use of the platform, e.g. the resources should be allocated as accurate as possible with respect to the actual required resource capacity and the platform should be able to cope with all specific needs and requirements relating to software dependencies, security settings, network capabilities, user management and so on.

Referring to Fig. 1 , there is shown a flowchart 10 of steps to configure a cloud platform by generating a cloud configuration scheme. With the method, when implemented by a computer such as a server, a plurality of servers, and/or one or more client computers, a cloud configuration scheme can be generated. With this scheme a cloud platform can be set up or provisioned automatically or at least to a large extend in an automated manner. With the provisioning several properties of the cloud platform are defined, amongst which at least the properties relating to the infrastructure such as allocation of resources. These resources, e.g. processing power, memory usage, storage capacity, network capabilities and so on can either be physical resources but also virtual resources which are defined within a virtual machine. The method is performed in a computer network wherein most steps are performed or executed by one or more server computer and input is provided through one or more client computer. The client computer is most likely a computer remote from the server but in an example these could also be combined in a single computer which employs both server and client capabilities.

In a first step 1 1 the server generates a dynamic list of questions. These questions are generated to be presented to a user of a client computer and have the purpose of defining several variables or properties that relate to the cloud configuration scheme and thus eventually the actual provisioned cloud platform. The questions are retrieved from a database storage which can be located remote or locally. The list of questions is a dynamic list which means that the list may change over time and may change depending on the user, the (type) of organisation to which the user belongs, and also to the response of the user on the question. One or more questions can change which further questions may be presented.

Once the initial list of questions is generated, the server presents the questions to the user of the client computer in the next step 12. Not all of the questions need to be presented and some may be kept back, others may be presented only upon receiving certain answers on questions that are initially presented in step 12. The presentation of the questions is performed over the computer network between the client and the server and is in particular performed through a web-interface. Once the questions are presented by the server the dynamic list of questions are adapted in step 13 to an adapted representation thereof to the user of the client computer. The remote server in step 14 then generates the cloud configuration scheme for automatically setting up the cloud platform and at least the resource allocation thereof. The scheme is defined based upon user input received as the response to the presented questions. The scheme is thus dependent from the input of the user.

The scheme comprises a plurality of blocks. These block are functional building blocks which define all or at least most of the properties needed for manually, automated or partly automated cloud platform provisioning. Thus preferably a (partly) automated process for provisioning of the cloud platform may be executed from such a scheme having one or preferably several functional building blocks. Not only do these functional building blocks contain information relating to the infrastructure, e.g. allocation of processing power, memory usage, storage capacity, network capabilities and so on, but also platform related information such as operating system related properties, database related properties, network settings and so on, and finally also the software or application related properties such as properties relating to users, software applications, licenses and so on. The functional building block consists of a plurality (preferably, but may also consists of a single) guest building block. The guest building block in its turn may comprise on or preferably plural capacity building blocks. The capacity building blocks define the low level cloud platform related resource allocations such as (virtual or physical) allocation of a predetermined resource capacity/footprint/size of CPU, memory, storage and network and preferably more infrastructure related aspect. One or preferably a plurality of these capacity building blocks form a guest building block. The guest building block however further consists of properties relating to the platform, e.g. the operating system, runtime related properties, middleware related properties, database (management) definitions and so on. One or preferably several of these guest building blocks define a functional building block. The functional building block however also contains information related to the provisioning of the software on the cloud platform, e.g. native cloud based software definitions, legacy cloud based software definitions, said legacy cloud based software definitions defining operational and functional requirements for said legacy software running on a cloud platform. The functional requirements and operational requirements define license requirements (such as key validation), operating system requirements or definitions, software application definitions, database definitions, network configurations, user configuration (e.g. active directory properties), etc. The functional building blocks preferably define the infrastructure capacity in an indirect manner by comprising the guest building blocks which in turn define technical building blocks. An example of such a layout could be the following; a functional building block F1 which defines one or several (software) applications and the required application license, functional building block F2 may define an amount of concurrent users. From these building blocks the following guest building blocks are defined; guest building block G1 which defines a virtual machine with a certain operating system, operating system license and a remote desktop application license for a certain amount of users. Guest building block G2 may define a virtual machine with a certain (similar or different) operating system with an operating system license and a fileserver application and license for a certain amount of users. Guest building block G3 may define a virtual machine with a certain (similar or different) operating system with an operating system license and a database application and license for a certain amount of users. From these guest building blocks the following capacity building blocks may be defined. Capacity building block C1 for a RDS HPE Platform HyperV 8Gb RAM met 2vCPU, capacity building block C2 with 60GB storage for an RDS OS, capacity buidling block C3 for a FileServer HPE Platform HyperV 8Gb RAM with 2vCPU , a capacity building block C4 60GB storage for a Fileserver OS, capacity building block C5 40GB storagabe for files, capacity building block C6 for ActiveDirectory HPE Platform HyperV 4Gb RAM with 2vCPY, capacity building block C7 60GB storage for the AD OS, capacity building block C8 tbv Database HPE Platform HyperV 16Gb RAM with 8vCPU, capacity building block C9 60GB storage voor Database OS, and finally, capacity building block C 10 100Gb storage for the Application Database. In the next step, step 15 the cloud platform has been provisioned/set-up and the server measures the actual current usage of the resources of the cloud platform. Preferably the measuring is done by determining one or more of actual usage of memory, processing power (CPU load for example), network, operating system performance, software application performance, database performance, license compliance, software dependency compliance, update/maintenance compliance, billing, user provisions, etc.

In step 16 the actual measured values of step 15 are compared with the estimated resource allocation defined by the functional building block(s) comprising guest or logical building block(s), which in turn comprise capacity or technical building block(s). Moreover, preferably not only the resource allocation is measured and compared, but also other variables are measured and compared with expected values, e.g. one or more of the operating system, database software, software applications, network and security settings, user provisions, license compliance, update and general maintenance compliance related information.

If the difference between measured and estimated values is significant, e.g. above a predetermined threshold value, the provisioning of the cloud platform can still be enhanced. This could be done by presenting the differences between the measured and estimated values and provide a user with such information such that the building blocks, i.e. one or more of the functional, guest, and physical building block, can be redefined. Redefining can mean that for example more or less resources are allocated per physical building block, or user provisioning (active directory related variables) are changed, but also that guest building blocks are changed by incorporating more or less physical building blocks, or different operating system related requirements, license requirements, software dependencies and so on. In an example the manipulation of the building blocks is performed by redesigning relationships between the building blocks and reprogramming the relationships into the server application for configuring the cloud platform, but this could also be done in a fully or more automated manner wherein for example per building block measurements are performed and the server corrects building block variables such as resource allocation based on exceeding of a threshold by the difference between measured and expected values. The partly or fully automated adapting of the building block layouts and contained properties may preferably be performed in an iterative manner such that the difference decreased over each iteration.

In Fig. 2 a server 21 - client 31 based system 20 is disclosed for execution of the method as indicated above. The system 20 consists of at least one client 31 and at least one server computer 21. This however, is purely illustrative since the server 21 may be a server park, virtual server, local or remote server or the like. The client computer 31 may be any device that is used to communicate with the server and acts as a user interface for a user 32, preferably a graphical user interface, but a command line user interface may work as well. Communication between the client 31 and the sever 21 is performed over a web interface 33, e.g. a public or private circuit or preferably packet switched telecommunication network such as the internet over which a the user 32 by use of a web browser on the client computer 31 can access a webservice executed by the server 21 , wherein communication is preferably performed through a private, secured communication protocol such as https.

The client 31 access the webservice executed by a processor 30 in the server from a non-transitory computer readable non-volatile storage carrier 29. The server 21 comprises several modules or units, services or micro-services, or functional parts of the server, e.g. a list generating module 22, presentation module 23, list adapting module 24, cloud configuration scheme generating module 25, measuring unit 26, comparison unit 27, and scheme update module 28. Each module is arranged or configured for a different purpose. The list generating module 22 or question list generating module 22 is arranged for generating a dynamic list of questions for a user of said client computer, wherein said questions are arranged for defining variables relating to said cloud configuration scheme, and wherein said questions are retrieved from a question database and each relate to a functional building block for building a cloud platform. The presentation module 23 is arranged for presenting at least some of the questions of said list to a user of said client computer over a web interface and the question list adapting module 24 is arranged for adapting said dynamic list of questions for adapted representation of said questions of said list to said user of said client computer based on answers to said questions by said user of said client computer. The cloud configuration scheme generating unit 25 is arranged for generating said cloud configuration scheme for automatically setting up said cloud and defining resource allocation. Such a cloud configuration scheme may comprise a plurality of functional building blocks each comprising one or a plurality of guest building blocks, each of said guest building blocks comprising one or a plurality of capacity building blocks. These capacity or technical/physical building blocks define at least a predetermined amount of physical CPU , memory, storage and network capacity resources. The guest or logical building block defining at least a plurality of capacity building blocks, as well as operating system definitions and database (management) definitions. Finally, the functional or business building blocks defining at least a plurality of guest building blocks, as well as native cloud based software definitions and legacy cloud based software definitions wherein the legacy cloud based software definitions defining operational and functional requirements for said legacy software running on a cloud platform. The resource allocation usage measuring unit or measuring unit 26 for short is arranged for measuring resource allocation usage of at least one cloud platform setup through said cloud configuration scheme. And finally the comparison unit 27 is arranged for comparing said measured resource allocation usage with said estimated resource allocation and the scheme update module 28 is for updating the scheme according to the difference between estimated and measured values. All data may be stored, temporary and/or non-temporary on a non-transitory computer readable non-volatile storage carrier 29 for processing by the processor 30 of the server.

The server 21 is arranged to provide a functional questionnaire to the user 32 of a client computer 31 by the steps of obtaining a list or part of a list of questions from a database storage which can be contained in the storage carrier 29 of the server or a (not shown) remote storage. The questions or at least some of the questions that may form a predetermined initial list of questions may be presented to the user 32. The functional questionnaire or at least the response received from the user 32 through a (graphical) user interface provided by the server 21 on the client computer 31 through a web interface over a network connection 33, is processed by the server and stored in the form of functional variables. The functional variables, together with business rules may define the functional building blocks from which the scheme is generated. The functional questionnaire and its questions relate to the business requirements such as, but not limited to, aspects of the organisation such as organisational type, size, usage, etc. but also to security compliance, service level agreements, services, support, file storage, backup, (client/user) devices, etc. The business rules may contain business rules that validate the integrity of the relations between the answers to one or more the of the questions presented by the server 21 , and/or the business rules may define the usage of functional building blocks based on answers of functional questions.

As indicated, the functional questionnaire together with the business rules may define the functional building blocks. The functional building block may be defined on several levels, e.g. the actual functional building block itself, a guest building block and a capacity building block. The capacity building block is the lowest level building block in which CPU, memory, storage, network and such hardware (either physical or virtual) resources are defined. The capacity building block preferably is comprised of technical components such as the CPU, memory, etc. together with cost related items in which these technical components and preferably other items in the block may be assigned a price value. Further, the capacity building block may comprise financial contributions, pro-active management and support definitions as well as runbook instructions setup, management and support. As such, the building block already contains information to support the automated setup of the cloud platform to incorporate workflow processes and requirements as defined in one or more runbook. Such a runbook may be considered a script in which variables are defined and process tasks are performed mostly in a sequential manner.

On the level of the guest building block the block comprises preferably one or multiple capacity building blocks and logical components that contain variables such as licensing, virtual machine properties and requirements, storage, all on a logical level and for example relating to the operating system. The guest block also comprises cost related items in which these logical components and preferably other items in the block may be assigned a price value. Further, the guest building block may comprise financial contributions, pro-active management and support definitions as well as runbook instructions setup, management and support. As such, the building block already contains information to support the automated setup of the cloud platform to incorporate workflow processes and requirements as defined in one or more runbook. On the level of the functional building block the block comprises preferably one or multiple guest building blocks and business rules that contain variables such as backup preferences/variables and others. The functional block also comprises cost related items in which these business components (and thus also the logical and technical components) and preferably other items in the block may be assigned a price value. Since the cloud platform may be employed from the functional building block(s), the block also contains a sales related price variable which defines the actual price for which the organisation may be charged. Further, the functional building block may comprise financial contributions, pro-active management and support definitions as well as runbook instructions setup, management and support. As such, the building block already contains information to support the automated setup of the cloud platform to incorporate workflow processes and requirements as defined in one or more runbook.

The building blocks are used by the server 21 to perform analysis and advice acts in which the functional questionnaire may be used as in input to the user 32 for generating answers, sales statistics, user screen behaviour, and results relative to previous versions. Upon analysis the questionnaire may be altered and new or more detailed answers may be presented. In the next step, the functional questionnaire may be provided with a preset of answers and in the final step the analyse of the actual resource usage may take place. In this step the functional building blocks together with the guest and capacity building blocks may be used for actual usage of the functional building blocks, breakdown in guest building blocks, breakdown in capacity building blocks and actual usage of the capacity. On the basis thereof the cloud platform may be employed through one or more automated applications such as a runbooks.

Some or all aspects of the invention may be implemented in a nonvolatile, tangible, non-transitory manner. Hence, the computer program product, electrical carrier signal, computer-readable non-volatile storage medium, communication device such as a smart phone, tablet, laptop or personal computer, digital distribution platform server for software on a communication devices, are preferably to be interpreted as non-transitory, physical, tangible articles of manufacture that are configured for a purpose to perform certain aspects of the invention. Hence, computer implemented methods are to be understood as computers having non-volatile memory comprising code to perform the method thus a device having a computer readable storage media.

As indicated some or all aspects of the invention may be implemented in a computer program product, i.e. a collection of computer program instructions stored or embodied on a non-transitory computer readable non-volatile storage carrier or device for execution by a computer. The instructions of the present invention may be in any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries or Java classes. The instructions can be provided as complete executable program, as modifications to existing programs or extensions, e.g. plugins, for existing programs. Moreover, parts of the processing of the present invention may be distributed over multiple computers, processors or cores, such for better performance, reliability, and/or cost. Storage devices suitable for storing computer program instructions include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM , EEPROM , and flash memory devices, magnetic disks such as the internal and external hard disk drives and removable disks, magneto-optical disks and CD-ROM disks. The computer program product can be distributed on such a storage medium or device, or may be offered or downloaded through HTTP, FTP or similar mechanism using a server connected to a network such as the internet. Transmission of the computer program product by other methods such as e-mail is of course also possible. The skilled person will appreciate that the invention is not limited by the specific embodiments described within this specification and illustrated in the drawings, but may be practised otherwise. The scope of the invention is only determined by the appended claims.