A cloud service generally refers to a service that allows end recipient computer systems (thin clients, portable computers, smartphones, desktop computers and so forth) to access a pool of hosted computing and/or storage resources (i.e., the cloud resources) and networks over a network (the Internet, for example). In this manner, the host, a cloud service provider, may, as examples, provide Software as a Service (SaaS) by hosting applications; Infrastructure as a Service (IaaS) by hosting equipment (servers, storage components, network components, etc.); or a Platform as a Service (PaaS) by hosting a computing platform (operating system, hardware, storage, etc.).
A typical cloud service incurs charges on a demand basis, is managed by the cloud service provider and may be scaled (scaled according to desired storage capacity, processing power, network bandwidth and so forth) by the end user. The cloud service may be a public service (an Internet-based service, for example) that is generally available to all potential users or a limited access private service that is provided over a private network (a business enterprise network, for example) as well as a managed cloud service (e.g., a virtual private cloud service) or a hybrid cloud service (a cloud service that is a combination of the above). Traditionally, when a user orders a cloud service, the user may manually perform various actions related to deploying and configuring software associated with the ordered cloud service (e.g. deployment of virtual machines (VMs), middleware, application software, application components, and so forth) on the provisioned/instantiated infrastructure.
Referring to
Depending on the particular implementation, the selection and ordering of the cloud lifecycle management services may be performed by a given user (an administrator, for example) for a group of end users (users of an enterprise, for example); or the selection and ordering of the cloud capabilities may be performed by a given user (an Internet-based user or employee, for example) for the given user's individual use.
As depicted in
In general, the users of the cloud service manager 60 may select and order “cloud capabilities” through the cloud service manager 60. In general, the “cloud capabilities” refer to user-selected combinations of existing cloud services that are provided by existing cloud resources 20, as well as lifecycle management services that are offered and delivered by the cloud service manager 60. All of these cloud capabilities (the existing cloud services, the combinations of the existing cloud services and the lifecycle management services) are generally referred to herein as “cloud capabilities” herein.
The cloud capabilities are, in general, associated with services that are associated with a “cloud,” which may be, as examples, a public cloud (a cloud formed from an Internet-based network and provides hosted cloud services that are generally available to members of the public); a private cloud (a cloud formed from a private, limited access network, (such as an enterprise network) which provides hosted cloud services to a limited group of members); a virtual private cloud (a cloud formed from a public network providing hosted cloud services to a limited group of members); a hybrid cloud (a cloud formed from a combination of two or more of the aforementioned clouds); and so forth.
In general, the cloud service manager 60 contains a storefront or marketplace module 62 that, through its user interface 63, allows a user to access a service consumption module 66 (of the cloud service manager 60) for purposes of browsing and selecting offered cloud capabilities. Moreover, through the access to the service consumption module 66, users may further customize (e.g., configure, for example) details of the selected cloud capabilities; agree to terms and/or conditions for receiving the selected cloud capabilities; order the cloud capabilities (subscribe to the capabilities, pay for the capabilities, and so forth); potentially build or modify a “recipe”, specifying a way to combine multiple cloud capabilities or provide lifecycle management; subsequently update the cloud capability selection(s); scale up and scale down the cloud capabilities; and in general, manage the lifecycle(s) of the ordered cloud capabilities, including retiring the capabilities.
To facilitate this user selection and control, the service consumption module 66 contains one or multiple cloud service catalogs 41 (depending on the particular implementation) and/or different views of the same catalog(s) 41, which describe available cloud capabilities. The catalog 41 itself may be a federation or aggregation of catalogs. The users may browse through the catalog(s) 41 using, for example, a graphical user interface (GUI) 65 of the interface 63. In accordance with some implementations, the service consumption module 66 may contain one or more APIs/interfaces for purposes of permitting users to browse through the catalog(s) 41 using the GUI 65. It is noted that different users may have access to different catalog(s) 41 for different views of the catalog(s) 41 (different content or different commercial terms), depending on the agreement/subscription in place. By accessing the service catalog(s) 41, users may select, order, customize and combine cloud capabilities; and automate the instantiation and configuration of selected cloud capabilities.
More specifically, in accordance with example implementations, via the service consumption module 66, users may select combinations of various existing cloud resources 20 to form a selected set of cloud services and, in general, set up a service to manage the lifecycle of this combination for a given user or group of users. As examples, the existing cloud resources 20 may include such resources as an Infrastructure as a Service (IaaS) resource 20-1 (a resource that provides hosted equipment, such as servers, storage components and network components as a service); a Platform as a Service (PaaS) resource 20-2 (a resource that provides a hosted computing platform such as an operating system, hardware, storage, and so forth); a Software as a Service (SaaS) resource 20-3 (a resource that provides hosted applications as a service); a DataBase as a Service (DBaaS) resource 20-4 (a resource that provides a hosted database as a service); and so forth.
The available existing cloud resources 20 further include, in accordance with example implementations, resources 20 that provide other services that may be useful for the cloud, such as (as examples), resources 20-5, 20-6 and 20-7 that provide services derived from their provisioning using the Server Automation (SA), Database Middleware Automation (DMA), Matrix Operating Environment (MOE), or Operations Orchestration (OO) software available from Hewlett Packard® and other any other infrastructure provisioning or IaaS provisioning system. Thus, in general, the cloud resources may include these as well as other cloud services/capabilities 20-8, in accordance with further implementations.
It is noted that one or multiple of the existing cloud resources 20 may be provided by the cloud service manager 60, in accordance with example implementations.
In accordance with exemplary techniques and systems that are disclosed herein, users may access the catalog(s) 41 to select and order one or more of the following cloud services: services provided by the existing cloud resources 20; services provided by combinations of the existing cloud resources 20; and services to manage the lifecycle of selected services/combinations of services, including services directed to building, monitoring, metering, and reporting services. Moreover, the cloud service manager 60 allows agile development of these services, as users may configure various aspects of these services, as further described herein.
In addition to presenting the service offerings, the service consumption module 66 regulates user subscriptions to these services, in accordance with example implementations. In this manner, as depicted in
The cloud service manager 60 contains a service delivery module 68 to deliver services that are described in the catalogs 41 and are selected by the users. More specifically, in accordance with example implementations, using the palette of available cloud resources and their resource offerings and actions, cloud service designers and/or administrators may construct plans, or “service blueprints 70,” which are stored in a service repository 64 and set forth structured plans of automated actions for instantiating and configuring the cloud capabilities that are described and offered in the catalog(s) 41. Due to these pre-existing service blueprints 70, logic of an engine 92 of the service delivery module 68 may automatically undertake the actions to instantiate and configure the selected cloud capabilities, thereby avoiding manual actions by the users pertaining to instantiation and configuration of the selected cloud capabilities.
In accordance with example implementations, the service blueprint 70 is a set of workflows/recipes/scripts that correspond to particular lifecycle management actions that may be performed to orchestrate the APIs of the appropriate cloud resources for purposes of managing the lifecycle of a given cloud capability. In this regard, the actions are workflows and calls to resource offering interfaces, in accordance with some implementations. In accordance with example implementations, designers/administrators may use GUIs of the service delivery module 68 to orchestrate/compose multiple such service blueprints 70 into service blueprints 70 of new cloud capabilities.
The designers/administrators may also use GUI-based tools of the service delivery module 68 to modify existing service blueprints 70 and form new service blueprints 70 based on combinations of existing service blueprints 70. In addition to selecting pre-existing service blueprints 70, in accordance with some implementations, the service delivery module 68 may permit users to construct service blueprints 70, modify existing service blueprints 70, and/or create new service blueprints 70 from a combination of existing service blueprints 70.
In accordance with some implementations, a service blueprint 70 may be constructed using a workflow 189 that is illustrated in
More specifically, in accordance with example implementations, each service blueprint 70 is an object (objects formed from machine executable instructions, that performs various actions, or functions, that may be taken in connection with an associated offered cloud capability, or service) and has an associated collection of functions, or “recipes,” which may be executed to cause the orchestration of the appropriate cloud service APIs to provision, instantiate and build a cloud service (formed from one or more existing cloud services, for example); manage a cloud service; monitor a cloud service; meter a cloud service; and so forth. A recipe can be a script or workflow or any other executable, in accordance with example implementations, which may be executed by logic of the engine 92 of the service delivery module 68 for purposes of performing the actions specified by the service blueprint 70.
In accordance with example implementations, the service blueprints 70 may be associated with various commercial terms, such as prices; contract periods; terms associated with a service level agreement (SLA); and so forth, which are stored in subscription components 35 of the service composition module 66. A service becomes a service offering when associated to these terms. These terms that accompany given service blueprints 70 may be described in the catalogs 41, in accordance with some implementations and, in general, may be set forth by a product designer.
A given service blueprint 70 may be instantiated/deployed by executing its associated recipe(s), which results in service instances 44 that may be tracked by, for example, information technology (IT) management systems by feeding the service instances into an IT service management (ITSM) service, a real time service management (RTSM) service, or a configuration management database (CMDB) with a full topology of how a service instance is supported/implemented. In this manner, in accordance with example implementations, the service delivery module 68 may contain a service instance service management component 44 (e.g. RTSM or CMDB or ITSM (Information Service Management) for this purpose. If shared across an ITSM system, the component 44 is available for other management systems to monitor and manage separately the instantiated instances (identified and tracked based on topology information stored in the database). In accordance with some implementations, the actions to set up the monitoring and management are achieved through the use of the service blueprints 70.
A given service blueprint 70 may further specify actions that are taken to handle errors associated with given composition cloud service are handled and actions that taken to report such errors. In general, other service blueprints 70 may specify how the lifecycle of a given service composition is monitored and managed during the full lifecycle of the service.
For example, a given recipe may notify the owner of the system (the owner of the cloud resources 20, for example) about an error; repeat faulty steps with the same or other resource in a pool; track issues and trace back steps and tear down some of the instantiated resources/services; and so forth.
A given service blueprint 70 may also describe a structured plan for usage metering and/or reporting. For monitoring, the instance and monitoring service may be setup/configured to perform the monitoring tasks; or, alternatively, a CMDB/RTSM may be in place to let a monitoring suite such as ITSM (as an example) to automatically discover and monitor. The meeting and reporting may be performed the same way by setting up the meeting/reporting and adding probes or counters that allow meetings (measured CPU usage, time used, memory used, or traffic used per component by using a monitoring system to interact with agents or configuring service scalable to do so to generate charging data records (CDRs) for their use and provide them to metering systems). Reporting may be accomplished by inquiring the monitoring and/or metering management systems.
Thus, to summarize, referring to
In accordance with exemplary implementations, a given recipe may automate the actions that a given user may otherwise undertake for purposes of setting up the ordered cloud service. For example, referring to
For example, exemplary branch 160 may include stages 162, 164 and 166 for purposes of provisioning servers, which include tiers for a database, an application server and a portal and load balancer, respectively; exemplary branch 170 may include states 172 and 174 for purposes of provisioning the servers with database and middleware, respectively; and branch 180 may include states 182, 184 and 186 for purposes of deploying the applications. As depicted in
In accordance with example implementations, a service blueprint 70 may be at least partially constructed by a user/designer specifying/modifying at least part of a recipe for a given cloud service. In this manner, the user/designer may begin the design starting with “mandatory steps” or “recommended steps” for a given service blueprint 70, in accordance with some implementations, for purposes of recommending proper management of the resources.
In accordance with some implementations, cloud service designers may design new recipes to build higher level services as executable or work flow/composition/business process/scripts (i.e., flows of conditions and actions) of API calls to the resource interfaces and API calls to other functions (calls to activation/provisioning service resources, for example). Moreover, new recipes may be constructed and existing recipes may be modified by the users of the cloud service manager 60/designers. It is noted that the recipes may be constructed using, for example, an API of the cloud service manager 60 to design a script; or the construction of the recipes may be GUI-based.
In this regard, in accordance with some implementations, a designer may edit the service blueprint 70 with GUI objects representing each resource or service involved. The GUI links may represent the workflow (customizable conditions and actions, for example). By clicking on the object, the designer may then be able to customize each service blueprint of the resource or service (e.g. set variables or link variables to other contexts, etc.)
For example, in accordance with some implementations, the designer may use the logic of the engine 40 of the service consumption module 66 to add, delete or other modify recipes for a given service blueprint 70; or create a new service blueprint 70. In accordance with some implementations, the GUI guides the designer through this process. It is noted, that in accordance with some implementations, different GUIs may be provided for the different users and designers. In this regard, the storefront module 62 may contain various GUIs for designers and possibly for users to modify, delete and create service blueprints 70. Moreover, separate screens may be presented in the portal to manage order capabilities. Administrators may also use the screens if the user has a problem.
In accordance with some implementations, in general, the designer is a different persona from the user. However it is possible that a designer is made available for a user who has or wants to order a service. For example, in accordance with some implementations, designers use the service consumption module 66 to generate service blueprints for the different offerings however they do leave parts (contextual parameters, for example) of service blueprints customizable (e.g., select OS of computing resources, or size of storage, make other selections, provide options available, and so forth). A user who has or wants to order a service (typically technical users like developers) may customize the service blueprints they want or have ordered with a designer that may only change what is left unspecified (and within the limits of the options). Thus, in general, the certain contextual parameters of one or multiple service blueprints 70 may be set up at the time of execution and/or may be customized by a user or other persona.
In accordance with some implementations, an instantiated service blueprint 70 may be captured in an instantiated service repository 46. In this regard, data captured in the repository 46 may be viewed via the user interface 63 for purposes of displaying reports and statuses of purchased services to the users. The service repository 46, in addition to being populated via the designer tools, may ingest/aggregate/federate from different service repositories. It is noted that the users may also use GUI-based tools for purposes of viewing order statuses and managing order capabilities, in accordance with further implementations. A corresponding console page may also be used to call other service blueprint-related functions to manage the service instances. It is noted that information and alerts about the service blueprints resulting from monitoring the instances ensures that service blueprints recipes include deployment of appropriate agent/tool/setup to ensure management, and management tools associated to the resources are configured to monitor the instances.
It is noted that other implementations are contemplated and are within the scope of the appended claims. For example, a given catalog 41 may ingest or aggregate/federate other catalogs that may or may not be associated with service blueprints 70, in accordance with further implementations.
Among its other features, the service delivery module 68 may further include resource provider components 42 describing the cloud resource providers; resource environment components 44 describing the cloud resource provider environments; and resource offering components 30, which are components that expose (the APIs the existing cloud resources 20. In general, the resource offering components 30 describe offering details, such as the cloud service resources 60, the capacities of the resources 20, the number of requests that can be made to provision the cloud resources 20, and so forth. The resource offering components 30 may be automatically updated as requirements and capabilities of the cloud resources 20 change, in accordance with example implementations.
The service delivery module 68 may offer components that the user may control through the GUI 65 for purposes of managing an ordered cloud service. For example, the service delivery module 68 may contain a user accessible lifecycle controller 45 for purposes of managing the lifecycle (reserve, instantiate, monitor, scale up/scale down, acquire usage details, uninstantiate, unreserve, and so forth) of the service as well as a scaler 47 to scale up or down (scale up/down the bandwidth, storage capacity, processing power, and so forth) the cloud service. It is noted the user may see the RTSM (instance repository) for the services/capabilities that user has ordered/subscribed to and perform actions on them. The actions that are performed executes the corresponding scripts in the service blueprints associated with the capability/service on the instance in question]
Referring to
In accordance with exemplary implementations, the physical machine 200 may be located within one cabinet (or rack); or alternatively, the physical machine 200 may be located in multiple cabinets (or racks).
A given physical machine 200 may include such hardware 210 as one or more processor 214 and a memory 220 that stores machine executable instructions 250, application data, configuration data and so forth. In general, the processor 214 may be a processing core, a central processing unit (CPU), and so forth. Moreover, in general, the memory 220 is a non-transitory memory, which may include semiconductor storage devices, magnetic storage devices, optical storage devices, and so forth.
The physical machine 200 may include various other hardware components, such as a network interface 216 and one or more of the following: mass storage drives; a display, input devices, such as a mouse and a keyboard; removable media devices; and so forth.
The machine executable instructions 250 contained in the physical machine 200 may, when executed by the processor(s) 214, cause the processor(s) 214 to form one or more components of the cloud service manager 60. In general, the physical machines 200 communicate with each other over a communication link 270. This communication link 270, in turn, may be coupled to the user end devices 50 (see
As an example, the cloud service provider may be an application server farm, a cloud server farm, a storage server farm (or storage area network), a web server farm, a switch, a router farm, and so forth. Although two physical machines 200 (physical machines 200-1 and 200-N) are depicted in
Other implementations are contemplated and are within the scope of the appended claims. For example, referring back to
While a limited number of examples have been disclosed herein, those skilled in the art, having the benefit of this disclosure, will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations.
Number | Name | Date | Kind |
---|---|---|---|
7996488 | Casabella et al. | Aug 2011 | B1 |
8335851 | Vendrow | Dec 2012 | B1 |
8392566 | Salle | Mar 2013 | B1 |
9825823 | Maes | Nov 2017 | B2 |
20110083167 | Carpenter et al. | Apr 2011 | A1 |
20110126207 | Wipfel et al. | May 2011 | A1 |
20110138047 | Brown et al. | Jun 2011 | A1 |
20110296021 | Dorai et al. | Dec 2011 | A1 |
20120042055 | Agarwala et al. | Feb 2012 | A1 |
20130254768 | Wipfel | Sep 2013 | A1 |
20140006627 | Arwe et al. | Jan 2014 | A1 |
20140068560 | Eksten | Mar 2014 | A1 |
20140075032 | Vasudevan | Mar 2014 | A1 |
20150199197 | Maes et al. | Jul 2015 | A1 |
20150304175 | Maes | Oct 2015 | A1 |
20160057234 | Parikh | Feb 2016 | A1 |
20160072683 | Xie | Mar 2016 | A1 |
20160078361 | Brueckner | Mar 2016 | A1 |
Number | Date | Country |
---|---|---|
102291390 | Dec 2011 | CN |
WO-2011014160 | Feb 2011 | WO |
Entry |
---|
Papazoglou et al., “Blueprinting the Cloud”, 2011, IEEE Computer Society, pp. 74-79. (Year: 2011). |
BMC Software, “BMC Cloud Lifecycle Management,” Solution White Paper, 2011, pp. 1-16. |
CISCO, “Cisco Intelligent Automation for Cloud,” Data Sheet, 2012, pp. 1-9. |
Dinh Khoa Nguyen, et al., “Blueprinting Approach in Support of Cloud Computing,” Future Internet, Mar. 2012, pp. 322-346, vol. 4, No. 4. |
Extended European Search Report, EP Application No. 12880628.8, dated Feb. 4, 2016, pp. 1-8, EPO. |
International Search Report and Written Opinion, International Application No. PCT/US2012/045424, dated Feb. 28, 2013, pp. 1-7, KIPO. |
Jeff Guerrero et al., “Building a Cloud on FlexPod: Validated Management Solutions,” 2011, pp. 1-5 [online], Retrieved from the Internet on Mar. 14, 2013 at URL: <http://www.netapp.com/us/communities/tech-ontap/tot-building-a-cloud-on-flexpod-1203.html>. |
Mek Enterprises LLC, “Cloupia Continues to Strengthen Converged Infrastructure Orchestration Offerings with New Solution Announcements,” Jun. 12, 2012. pp. 1-5 [online], Retrieved from the Internet on Mar. 14, 2013 at URL: <http://www.marketwatch.com/story/cloupia-continues-to-strengthen-converged-infrastructure-orchestration-offerings-with-new-solution-announcements-2012-06-12>. |
Number | Date | Country | |
---|---|---|---|
20180041405 A1 | Feb 2018 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14406711 | US | |
Child | 15788361 | US |