U.S. patent application number 13/675837 was filed with the patent office on 2014-05-15 for dynamic recommendations taken over time for reservations of information technology resources.
This patent application is currently assigned to APPTIO, INC.. The applicant listed for this patent is APPTIO, INC.. Invention is credited to Michael Morris Wasser.
Application Number | 20140136295 13/675837 |
Document ID | / |
Family ID | 50682600 |
Filed Date | 2014-05-15 |
United States Patent
Application |
20140136295 |
Kind Code |
A1 |
Wasser; Michael Morris |
May 15, 2014 |
DYNAMIC RECOMMENDATIONS TAKEN OVER TIME FOR RESERVATIONS OF
INFORMATION TECHNOLOGY RESOURCES
Abstract
Embodiments are directed towards providing dynamic
recommendations of reserving information technology resources over
time that may be visually displayed over that time. In one
embodiment, the recommendations may be determined based on an
analysis of actual usage data obtained over a prior time period and
used to predict future resource demands. The subject innovations
enable a user to dynamically perform various `what-if` analysis to
determine optimum purchase times, and configurations. In some
embodiments, the user is further provided information about
currently purchased resource under-utilizations to enable the user
to redistribute work, release resources, or take other actions
directed towards improving management of their IT budget. While
subject innovations are may be directed towards managing IT
resources obtained through one or more cloud computing service
providers, some embodiments further allow the user to perform
make/buy decisions such as when to use in-house resources versus
using cloud-based resources.
Inventors: |
Wasser; Michael Morris;
(Seattle, WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
APPTIO, INC. |
Bellevue |
WA |
US |
|
|
Assignee: |
APPTIO, INC.
Bellevue
WA
|
Family ID: |
50682600 |
Appl. No.: |
13/675837 |
Filed: |
November 13, 2012 |
Current U.S.
Class: |
705/7.38 |
Current CPC
Class: |
G06Q 10/06312 20130101;
G06Q 10/04 20130101; G06Q 10/02 20130101; G06Q 30/02 20130101; G06Q
10/0639 20130101 |
Class at
Publication: |
705/7.38 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02 |
Claims
1. A method operating on a network device to perform actions,
comprising: identifying a plurality of resources each of which are
configured to be reserved for use over time, and having at least a
variable rate fee over time; tracking usage of each of the
plurality of resources over time; determining a trade-off
percentage of a reservation period for each of the plurality of
resources based on the tracked usage, wherein the trade-off
percentage represents a time in the reservation period when a cost
of purchasing reserved resources is less than using on-demand
resources when amortized over the reservation period; dynamically
computing, by one or more hardware processors, based on the
determined trade-off percentage and the tracked usage for each of
the plurality of resources and the variable rate fee over time, a
recommendation for reserving usage over a given time period for
each of the plurality of resources; and dynamically displaying a
recommended reservation plan for the given time period for each of
the plurality of resources.
2. The method of claim 1, wherein dynamically computing the
recommendation further comprises if a user selects at least one
action regarding at least one resource, changing the recommendation
based on at least one of historical usage data, a service level
agreement, a contract, or a configuration of the at least one
resource.
3. The method of claim 1, wherein the variable rate fee over time
for a resource includes at least a fixed rate fee, based on a
contract purchase period, and wherein the variable rate fee is
based in part on an actual usage of the resource.
4. The method of claim 1, wherein dynamically computing the
recommendation further comprises: receiving at least one input
assumption change about at least one resource; dynamically
modifying recommendation for reserving the plurality of resources
based in part on the input assumption change; and dynamically
displaying a graphical image of resource forecasts for the
plurality of resources, the resource forecasts including at least a
first graph over time of costs until action is taken for reserving
a resource, and a second graph over time of costs if the modified
recommendation is followed for reserving the plurality of
resources.
5. The method of claim 1, wherein dynamically displaying the
recommended reservation plan further comprises displaying for a
selected time period, a reservation or a purchase list for the
selected time period, and when at least one resource is determined
to be used at a level below a threshold, further displaying a
listing that includes the at least one resource that is used below
the threshold.
6. A system, comprising: a plurality of information technology (IT)
resources each of which are configured to be reserved for use over
time and having at least a variable rate fee over time; and a
processor that performs actions, including: tracking usage of each
of the plurality of information technology resources over time;
determining a trade-off percentage of a reservation period for each
of the plurality of information technology resources based on the
tracked usage, wherein the trade-off percentage represents a time
in the reservation period when a cost of purchasing reserved
resources is less than using on-demand resources when amortized
over the reservation period; dynamically computing, based on the
determined trade-off percentage and the tracked usage for each of
the plurality of information technology resources and the variable
rate fee over time, a recommendation for reserving usage over a
given time period for each of the plurality of information
technology resources; and dynamically displaying a recommended
reservation plan for the given time period for each of the
plurality of information technology resources.
7. The system of claim 6, wherein dynamically computing the
recommendation further comprises if a user selects at least one
action regarding at least one information technology resource,
changing the recommendation based on at least one of historical
usage data, a service level agreement, a contract, or a
configuration of the at least one information technology
resource.
8. The system of claim 6, wherein the variable rate fee over time
for an information technology resource includes at least a fixed
rate fee, based on a contract purchase period, and wherein the
variable rate fee is based in part on an actual usage of the
information technology resource.
9. The system of claim 6, wherein dynamically computing the
recommendation further comprises: receiving at least one input
assumption change about at least one information technology
resource; dynamically modifying the recommendation for reserving
the plurality of information technology resources based in part on
the input assumption change; and dynamically displaying a graphical
image of resource forecasts for the plurality of information
technology resources, the resource forecasts including at least a
first graph over time of costs until action is taken for reserving
an information technology resource, and a second graph over time of
costs if the modified recommendation is followed for reserving the
plurality of information technology resources.
10. The system of claim 6, wherein dynamically displaying the
recommended reservation plan further comprises displaying for a
selected time period, a reservation or a purchase list for the
selected time period, and when at least one information technology
resource is determined to be used at a level below a threshold,
further displaying a listing that includes the at least one
information technology resource that is used below the
threshold.
11. A network device, comprising: a memory that is operative to
store at least instructions; and a processor device that is
operative to execute instructions that enable actions, including:
identifying a plurality of resources each of which are configured
to be reserved for use over time, and having at least a variable
rate fee over time; tracking usage of each of the plurality of
resources over time; determining a trade-off percentage of a
reservation period for each of the plurality of resources based on
the tracked usage, wherein the trade-off percentage represents a
time in the reservation period when a cost of purchasing reserved
resources is less than using on-demand resources when amortized
over the reservation period; dynamically computing based on the
determined trade-off percentage and the tracked usage for each of
the plurality of resources and the variable rate fee over time, a
recommendation for reserving usage over a given time period for
each of the plurality of resources; and dynamically displaying a
recommended reservation plan for the given time period for each of
the plurality of resources.
12. The network device of claim 11, wherein at least one resource
of the plurality of resources is an outsourced resource and at
least one other resource of the plurality of resources is an
in-house resource, and dynamically displaying the recommended
reservation plan further comprises providing at least one other
recommendation about moving at least one in-house resource use to
an outsourced resource use, or at least one outsourced resource use
to an in-house resource use.
13. The network device of claim 11, wherein the variable rate fee
over time for a resource includes at least a fixed rate fee, based
on a contract purchase period, and wherein the variable rate fee is
based in part on an actual usage of the resource.
14. The network device of claim 11, wherein dynamically computing
the recommendation further comprises: receiving at least one input
assumption change about at least one resource; dynamically
modifying the recommendation for reserving the plurality of
resources based in part on the input assumption change; and
dynamically displaying a graphical image of resource forecasts for
the plurality of resources, the resource forecasts including at
least a first graph over time of costs until action is taken for
reserving a resource, and a second graph over time of costs if the
modified recommendation is followed for reserving the plurality of
resources.
15. The network device of claim 11, wherein dynamically displaying
the recommended reservation plan further comprises displaying for a
selected time period, a reservation or a purchase list for the
selected time period, and when at least one resource is determined
to be used at a level below a threshold, further displaying a
listing that includes the at least one resource that is used below
the threshold.
16. A processor readable non-transitive storage media that includes
instructions stored thereon, wherein execution of the instructions
by a processor device enables actions, comprising: identifying a
plurality of resources each of which are configured to be reserved
for use over time, and having at least an effective rate fee that
includes a variable rate fee component and a fixed rate fee over
time; tracking usage of each of the plurality of resources over
time; determining a trade-off percentage of a reservation period
for each of the plurality of resources based on the tracked usage,
wherein the trade-off percentage represents a time in the
reservation period when a cost of purchasing reserved resources is
less than using on-demand resources when amortized over the
reservation period; dynamically computing based on the determined
trade-off percentage and the tracked usage for each of the
plurality of resources and the effective rate fee over time, a
recommendation for reserving usage over a given time period for
each of the plurality of resources; and dynamically displaying a
recommended reservation plan for the given time period for each of
the plurality of resources.
17. The media of claim 16, wherein dynamically computing the
recommendation further comprises: receiving at least one input
assumption change about at least one resource; dynamically
modifying the recommendation for reserving the plurality of
resources based in part on the input assumption change; and
dynamically displaying a graphical image of resource forecasts for
the plurality of resources, the resource forecasts including at
least a first graph over time of costs until action is taken for
reserving a resource, and a second graph over time of costs if the
modified recommendation is followed for reserving the plurality of
resources.
18. The media of claim 16, wherein dynamically displaying the
recommended reservation plan further comprises displaying for a
selected time period, a reservation or a purchase list for the
selected time period, and when at least one resource is determined
to be used at a level below a threshold, further displaying a
listing that includes the at least one resource that is used below
the threshold.
19. The media of claim 16, wherein at least one resource is an
on-demand resource and at least one other resource is an reserved
resource, and dynamically displaying the recommended reservation
plan further comprises providing at least one other recommendation
about moving at least one reserved resource use to an on-demand
resource use, or at least one on-demand resource use to an reserved
resource use.
20. The media of claim 16, wherein dynamically computing the
recommendation further comprises if a user selects at least one
action regarding at least one resource, changing the recommendation
based on at least one of historical usage data, a service level
agreement, a contract, or a configuration of the at least one
resource.
Description
TECHNICAL FIELD
[0001] The present invention relates generally to computer
automated activity based budgeting and forecasting, and more
particularly, but not exclusively to providing an interactive
mechanism for managing reservations of Information Technology (IT)
resources, such as cloud based IT resources.
BACKGROUND
[0002] Cloud-based computing may be defined as the use of computing
resources (hardware and software) that are delivered as a service
over a network, such as the Internet. Cloud-based computing is
often argued to provide numerous benefits to a business, including
rapid scalability, availability, and cost savings. Some providers
of cloud-based computing services allow users to buy access to
their resources from the cloud on a pay-per-use basis; other
providers further provide an ability of a user to pay to reserve
resources for an extended period of time. Other providers provide
still different plans for use of their services that might include
variable rate plans, reservations based on differing costing models
over different time periods.
[0003] While cloud-based services may provide cost savings, it
remains up to the user purchasing the services to determine when
and how to make use of the services, so that cost benefits may be
obtained. However, there appears to be little solutions designed to
help IT managers, and/or other users of cloud-based services, to
manage or communicate costs of their IT resource consumption. IT
managers, and other users, are often required to predict with
little assistance as to when to purchase a cloud-based service, or
even how much to purchase. This lack of adequate tools for the IT
manager even extends to a lack of tools usable to assess when to
purchase IT resources for in-house versus when to use cloud-based
services. With an ever increasing number of cloud service providers
becoming available, and an ever growing number of different
purchase plans being made available, making such IT evaluations is
becoming more and more complex. Thus, it is with respect to these
considerations and others that the invention has been made.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Non-limiting and non-exhaustive embodiments of the present
invention are described with reference to the following drawings.
In the drawings, like reference numerals refer to like parts
throughout the various figures unless otherwise specified. For a
better understanding of the present invention, reference will be
made to the following Detailed Description, which is to be read in
association with the accompanying drawings, wherein:
[0005] FIG. 1 is a system diagram showing components of an
environment in which at least one of the various embodiments may be
practiced;
[0006] FIG. 2 shows one embodiment of a client device that may be
included in a system in accordance with the embodiments;
[0007] FIG. 3 shows one embodiment of a network device that may be
included in a system implementing at least one of the various
embodiments;
[0008] FIG. 4 illustrates a logical flow diagram showing one
embodiment of a process usable to manage and display
recommendations for reserving IT resources, such as cloud IT
resources;
[0009] FIGS. 5-6 illustrate non-limiting, non-exhaustive examples
of interfaces for managing and displaying IT resource reservations;
and
[0010] FIG. 7 illustrates one non-limiting, non-exhaustive example
of data analysis useable to calculate reserved resources for a
single resource type.
DESCRIPTION OF THE VARIOUS EMBODIMENTS
[0011] The present invention now will be described more fully
hereinafter with reference to the accompanying drawings, which form
a part hereof, and which show, by way of illustration, specific
embodiments by which the invention may be practiced. This invention
may, however, be embodied in many different forms and should not be
construed as limited to the embodiments set forth herein; rather,
these embodiments are provided so that this disclosure will be
thorough and complete, and will fully convey the scope of the
invention to those skilled in the art. Among other things, the
present invention may be embodied as methods or devices.
Accordingly, the present invention may take the form of an entirely
hardware embodiment, an entirely software embodiment or an
embodiment combining software and hardware aspects. The following
detailed description is, therefore, not to be taken in a limiting
sense.
[0012] Throughout the specification and claims, the following terms
take the meanings explicitly associated herein, unless the context
clearly dictates otherwise. The phrase "in one embodiment" as used
herein does not necessarily refer to the same embodiment, though it
may. Furthermore, the phrase "in another embodiment" as used herein
does not necessarily refer to a different embodiment, although it
may. Thus, as described below, various embodiments of the invention
may be readily combined, without departing from the scope or spirit
of the invention.
[0013] In addition, as used herein, the term "or" is an inclusive
"or" operator, and is equivalent to the term "and/or," unless the
context clearly dictates otherwise. The term "based on" is not
exclusive and allows for being based on additional factors not
described, unless the context clearly dictates otherwise. In
addition, throughout the specification, the meaning of "a," "an,"
and "the" include plural references. The meaning of "in" includes
"in" and "on."
[0014] As used herein, the term "instance" refers to a
configuration of a computing resource, including hardware and
software. In one embodiment, an instance is further defined based
on a geographic location in which the computing device physically
resides. Thus, for example, an instance might be defined based on
its hardware, the software made available for use, and where the
computing device resides. In some embodiments, an instance is
further definable based on a network connection to the hardware
device. Moreover, the term "resource" may be used interchangeably
with the term "instance," where a resource is a definable
configuration of a computing device, including its hardware,
software, and physical location.
[0015] Typically, where a resource resides within a cloud-computing
environment, the resource may be leased, or otherwise purchased,
for various time periods. For example, the resource may be
purchased for use at once, and purchased based on a pay per use
plan. In other cases, a resource might be leased by reserving use
of the resource for some time period, such as six months, one year,
two years, three years, or the like. Further, resources may be
purchased based on a combination of fixed fees, and variable fees.
The fixed fees may be based on the lease/purchase time, while the
variable fees may be based on actual usage of the resource. For
example, a user might purchase for three years, and use the
resource on an average over the three years at 60% of the time.
Thus, an effective fee rate may be determined that varies over some
time period based on a combination of the fixed fees and the
variable usage rate fees.
[0016] The following briefly describes the embodiments of the
invention in order to provide a basic understanding of some aspects
of the invention. This brief description is not intended as an
extensive overview. It is not intended to identify key or critical
elements, or to delineate or otherwise narrow the scope. Its
purpose is merely to present some concepts in a simplified form as
a prelude to the more detailed description that is presented
later.
[0017] Briefly stated, the subject innovations are directed towards
providing dynamic recommendations for reserving information
technology resources over time that may be visually displayed over
that time frame. In one embodiment, the recommendations may be
determined based on an analysis of actual usage data obtained over
a prior time period that is then used to predict future resource
demands. The subject innovations enable a user to perform various
`what-if` analysis to determine optimum purchase times, and
configurations. In some embodiments, the user is further provided
information about currently purchased resource under-utilizations
to enable the user to redistribute work, release resources, or take
other actions directed towards improving management of their IT
budget. While subject innovations may be directed towards managing
IT resources obtained through one or more cloud computing service
providers, some embodiments further allow the user to perform
make/buy decisions such as when to use in-house resources versus
using cloud-based resources, or to use on-demand resources versus
using reserved resources.
[0018] In some embodiments, the recommendation analysis may assume
that a future usage of resources will be substantially the same as
a previous time period usage. Substantially the same might be based
on using some statistical parameter describing the historical
usage, including a mean, mode, median value, or the like. However,
other more complex algorithms may be employed, including usage of a
machine learning model, linear prediction models, non-linear
prediction models, a covariance estimation approach, a time-varying
estimation model, or any of a variety of other models. For example,
in some embodiments, a model that accounts for trends or varying
use of resources might be employed. Moreover, the analysis may be
configured to account for various service level agreement cost
implications, as well as various purchase/lease options provided by
a given resource provider. In fact, virtually any parameter that
might affect a cost of the resource to the user may be used to
provide to the user a visual cost recommendation over time. In some
embodiments, a user might select a particular time period, such as
a current date, and be provided with a table reflecting a
recommended purchase list based on an optimum costing forecast
model. In other embodiments, a table might be displayed indicating
resources that have been reserved, but are currently going unused.
In some embodiments, a recommendation of how to reallocate the
unused resources may be provided.
[0019] Illustrative Operating Environment
[0020] FIG. 1 shows components of one embodiment of an environment
in which at least one of the various embodiments may be practiced.
Not all the components may be required to practice various
embodiments, and variations in the arrangement and type of the
components may be made. As shown, system 100 of FIG. 1 includes
local area networks ("LANs")/wide area networks ("WANs")--(network)
111, wireless network 110, client devices 101-104, Budgeting and
Finance System (BFS) 107, and cloud services 120 and 130. Within
cloud service 120 are illustrated instances (or resources) 121-124;
while within cloud service 130 are illustrated instances (or
resources) 121-133.
[0021] Generally, client devices 102-104 may include virtually any
portable computing device capable of receiving and sending a
message over a network, such as network 111, wireless network 110,
or the like. Client devices 102-104 may also be described generally
as client devices that are configured to be portable. Thus, client
devices 102-104 may include virtually any portable computing device
capable of connecting to another computing device and receiving
information. Such devices include portable devices such as,
cellular telephones, smart phones, display pagers, radio frequency
(RF) devices, infrared (IR) devices, Personal Digital Assistants
(PDA's), handheld computers, laptop computers, wearable computers,
tablet computers, integrated devices combining one or more of the
preceding devices, or the like. As such, client devices 102-104
typically range widely in terms of capabilities and features. For
example, a cell phone may have a numeric keypad and a few lines of
monochrome Liquid Crystal Display (LCD) on which only text may be
displayed. In another example, a web-enabled mobile device may have
a touch sensitive screen, a stylus, and several lines of color LCD
in which both text and graphics may be displayed.
[0022] Client device 101 may include virtually any computing device
capable of communicating over a network to send and receive
information, including messaging, performing various online
actions, or the like. The set of such devices may include devices
that typically connect using a wired or wireless communications
medium such as personal computers, multiprocessor systems,
microprocessor-based or programmable consumer electronics, network
Personal Computers (PCs), or the like. In one embodiment, at least
some of client devices 102-104 may operate over wired and/or
wireless network. Today, many of these devices include a capability
to access and/or otherwise communicate over a network such as
network 111 and/or even wireless network 110. Moreover, client
devices 102-104 may access various computing applications,
including a browser, or other web-based application.
[0023] In one embodiment, one or more of client devices 101-104 may
be configured to operate within a business or other entity to
perform a variety of services for the business or other entity. For
example, client devices 101-104 may be configured to operate as a
web server, an accounting server, a production server, an inventory
server, or the like. However, client devices 101-104 are not
constrained to these services and may also be employed, for
example, as an end-user computing node, in other embodiments.
Further, it should be recognized that more or less client devices
may be included within a system such as described herein, and
embodiments are therefore not constrained by the number or type of
client devices employed. In any event, one or more of client
devices 101-104 may be considered as in-house resources, or more
generally on-demand resource. As used herein, the term "on-demand
resource," refers to resources in which a user may pay for compute
capacity by the hour, or some other time period, with no long-term
commitments. Further, as used herein, the term "reserved resource,"
refers to resources in which the user is provided the option to
make an initial payment for each resource to be reserved for use in
some future time period.
[0024] In another embodiment, one or more of client devices 101-104
may be configured to access various services from one or more of
the resources within various cloud-based services, such as cloud
services 120 and/or 130.
[0025] A web-enabled client device may include a browser
application that is configured to receive and to send web pages,
web-based messages, or the like. The browser application may be
configured to receive and display graphics, text, multimedia, or
the like, employing virtually any web-based language, including a
wireless application protocol messages (WAP), or the like. In one
embodiment, the browser application is enabled to employ any of a
variety of scripting languages, including for example, JavaScript,
as well as any of a variety of markup languages, including for
example Standard Generalized Markup Language (SGML), HyperText
Markup Language (HTML), eXtensible Markup Language (XML), HTML5, or
the like, to display and send a message. In one embodiment, a user
of the client device may employ the browser application to perform
various actions over a network.
[0026] Client devices 101-104 also may include at least one other
client application that is configured to receive and/or send data,
including resource recommendation information, between another
computing device. The client application may include a capability
to provide requests and/or receive data relating to resource
recommendations. In other embodiments, BFS 107 may be configured to
provide to the client devices 101-104 visual representations of
resource recommendations usable to enable a user to make IT
decisions for allocating budget to IT resources and for reserving
use of one or more resources, such as cloud-based resources.
[0027] Wireless network 110 is configured to couple client devices
102-104 and its components with network 111. Wireless network 110
may include any of a variety of wireless sub-networks that may
further overlay stand-alone ad-hoc networks, or the like, to
provide an infrastructure-oriented connection for client devices
102-104. Such sub-networks may include mesh networks, Wireless LAN
(WLAN) networks, cellular networks, or the like.
[0028] Wireless network 110 may further include an autonomous
system of terminals, gateways, routers, or the like connected by
wireless radio links, or the like. These connectors may be
configured to move freely and randomly and organize themselves
arbitrarily, such that the topology of wireless network 110 may
change rapidly.
[0029] Wireless network 110 may further employ a plurality of
access technologies including 2nd (2G), 3rd (3G), 4th (4G), 5th
(5G) generation radio access for cellular systems, WLAN, Wireless
Router (WR) mesh, or the like. Access technologies such as 2G, 3G,
4G, and future access networks may enable wide area coverage for
mobile devices, such as client devices 102-104 with various degrees
of mobility. For example, wireless network 110 may enable a radio
connection through a radio network access such as Global System for
Mobil communication (GSM), General Packet Radio Services (GPRS),
Enhanced Data GSM Environment (EDGE), Wideband Code Division
Multiple Access (WCDMA), or the like. In essence, wireless network
110 may include virtually any wireless communication mechanism by
which information may travel between client devices 102-104 and
another computing device, network, or the like.
[0030] Network 111 is configured to couple network devices with
other computing devices, including, BFS 107, client device(s) 101,
and through wireless network 110 to client devices 102-104. Network
111 is enabled to employ any form of computer readable media for
communicating information from one electronic device to another.
Also, network 111 can include the Internet in addition to local
area networks (LANs), wide area networks (WANs), direct
connections, such as through a universal serial bus (USB) port,
other forms of computer-readable media, or any combination thereof.
On an interconnected set of LANs, including those based on
differing architectures and protocols, a router acts as a link
between LANs, enabling messages to be sent from one to another. In
addition, communication links within LANs typically include twisted
wire pair or coaxial cable, while communication links between
networks may utilize analog telephone lines, full or fractional
dedicated digital lines including T1, T2, T3, and T4, Integrated
Services Digital Networks (ISDNs), Digital Subscriber Lines (DSLs),
wireless links including satellite links, or other communications
links known to those skilled in the art. For example, various
Internet Protocols (IP), Open Systems Interconnection (OSI)
architectures, and/or other communication protocols, architectures,
models, and/or standards, may also be employed within network 111
and wireless network 110. Furthermore, remote computers and other
related electronic devices could be remotely connected to either
LANs or WANs via a modem and temporary telephone link. In essence,
network 111 includes any communication method by which information
may travel between computing devices.
[0031] Additionally, communication media typically embodies
computer-readable instructions, data structures, program modules,
or other transport mechanism and includes any information delivery
media. By way of example, communication media includes wired media
such as twisted pair, coaxial cable, fiber optics, wave guides, and
other wired media and wireless media such as acoustic, RF,
infrared, and other wireless media. Such communication media is
distinct from, however, processor-readable storage devices
described in more detail below.
[0032] BFS 107 may include virtually any network device usable to
provide resource recommendation services, such as network device
200 of FIG. 2. In one embodiment, BFS 107 employs various
techniques to create and display resource recommendations. BFS 107
may include applications for generating cost traces, and
predications within a resource recommendation model. Furthermore,
BFS 107 may include applications for visualizing the generated
costs and recommendations. BFS 107 may also enable the user to
perform various what-if analysis and dynamically view differing
resource recommendations based in part on user input parameters,
and historical usage data.
[0033] Devices that may operate as BFS 107 include various network
devices, including, but not limited to personal computers, desktop
computers, multiprocessor systems, microprocessor-based or
programmable consumer electronics, network PCs, server devices,
network appliances, or the like. It should be noted that while BFS
107 is illustrated as a single network device, the invention is not
so limited. Thus, in another embodiment, BFS 107 may represent a
plurality of network devices. For example, in one embodiment, BFS
107 may be distributed over a plurality of network devices and/or
implemented using a cloud architecture.
[0034] Moreover, BFS 107 is not limited to a particular
configuration. Thus, BFS 107 may operate using a master/slave
approach over a plurality of network devices, within a cluster, a
peer-to-peer architecture, and/or any of a variety of other
architectures. Thus, BFS 107 is not to be construed as being
limited to a single environment, and other configurations, and
architectures are also envisaged. BFS 107 may employ processes such
as described below in conjunction with FIGS. 4-22 to perform at
least some of its actions.
[0035] Cloud services 120 and 130 represent cloud-based service
providers that provider for use by a user various instances or
resources. While cloud services 120 is illustrated to include
resources 121-124, and cloud services 130 is illustrated to include
resources 131-133, other implementations are not so constrained.
Thus, it should be understood that cloud services 120 and 130 may
include many more or less resources than illustrated in FIG. 1.
Further resources 121-124 and 131-133 are intended to be
representative and not actual reflections of configurations. Thus,
a cloud service might include resources that are configured into
clusters, are rack components, a virtual machine, a plurality of
different computing devices, reside in differing geographic
locations around the United States, or other locations, or the
like. As noted above, each resource or instance may be defined
based on its hardware, software, and physical location. However,
other parameters may also be used, including its service level
agreement, lease/purchase rate plans, or the like. In some
embodiments, a resource might be purchased at once, and billed to
the user based on usage plus the purchase fees, while others might
be reserved for a period of time, such as one or three years, and
billed out based on an effective fee rate that in turn is based on
a usage rate and a fixed fee rate schedule.
[0036] In one embodiment, cloud services 120 and 130 might be
considered to be managed by different service providers; however,
in other embodiments, cloud services 120 and 130 might represent
services provided over different locations, different arrangements
of services, or the like. For example, in one embodiment cloud
services might be partitioned based on different service level
agreements, different locations, different types of architectures,
different security levels, and/or any of a variety of other
criteria.
[0037] In any event, cloud services 120 and 130, may be configured
to provide information about actual usage of resources, as well as
various information about the resource, including its configuration
and fee rate plans, or the like, to BFS 107, which may then employ
the information in part to determine a resource recommendation. In
some embodiments, configurations of client devices or other
in-house resources, their costs schedules, and the like, might also
be sent to BFS 107, so that BFS 107 might consider in-house (or
more generally, on-demand) resources as well as outsourced (or more
generally, reserved) resource usages (e.g., cloud services) in
determining resource recommendations. It should be noted that while
FIG. 1 illustrates cloud services, other forms of outsourced
services may also be considered, and thus, subject innovations are
not constrained to merely considering cloud services.
[0038] Moreover, BFS 107 might employ a process such as described
below in conjunction with FIG. 4 to perform and provide resource
recommendations. Further, BFS 107 might provide graphical
interfaces such as described below in conjunction with FIGS. 5-6
for use in managing a set of recommendations for reserving
resources, highlighting underused reserved resources, and even
providing recommendations for reallocating resources.
Illustrative Client Device
[0039] FIG. 2 shows one embodiment of client device 200 that may be
included in a system implementing at least one of the various
embodiments. Client device 200 may include many more or less
components than those shown in FIG. 2. However, the components
shown are sufficient to disclose an illustrative embodiment for
practicing the present invention. Client device 200 may represent,
for example, one embodiment of at least one of client devices
101-104 of FIG. 1. It should be recognized that, as discussed
above, client devices may operate as an interface mechanism into a
cloud-based service, and/or as a resource that may be managed along
with the resources obtained through the cloud-based service.
[0040] As shown in the figure, client device 200 includes a central
processing unit ("CPU") 202 in communication with a mass memory 226
via a bus 234. Client device 200 also includes a power supply 228,
one or more network interfaces 236, an audio interface 238, a
display 240, a keypad 242, and an input/output interface 248. Power
supply 228 provides power to client device 200. A rechargeable or
non-rechargeable battery may be used to provide power. The power
may also be provided by an external power source, such as an AC
adapter or a powered docking cradle that supplements and/or
recharges a battery.
[0041] Client device 200 may optionally communicate with a base
station (not shown), or directly with another computing device.
Network interface 236 includes circuitry for coupling client device
200 to one or more networks, and is constructed for use with one or
more communication protocols and technologies including, but not
limited to, global system for mobile communication ("GSM"), code
division multiple access ("CDMA"), time division multiple access
("TDMA"), user datagram protocol ("UDP"), transmission control
protocol/Internet protocol ("TCP/IP"), short message service
("SMS"), general packet radio service ("GPRS"), WAP, ultra wide
band ("UWB"), IEEE 802.16 Worldwide Interoperability for Microwave
Access ("WiMax"), session initiated protocol/real-time transport
protocol ("SIP/RTP"), or any of a variety of other wireless
communication protocols. Network interface 236 is sometimes known
as a transceiver, transceiving device, or network interface card
("NIC").
[0042] Audio interface 238 is arranged to produce and receive audio
signals such as the sound of a human voice. For example, audio
interface 238 may be coupled to a speaker and microphone (not
shown) to enable telecommunication with others and/or generate an
audio acknowledgement for some action. Display 240 may be a liquid
crystal display ("LCD"), gas plasma, light emitting diode ("LED"),
or any other type of display used with a computing device. Display
240 may also include a touch sensitive screen arranged to receive
input from an object such as a stylus or a digit from a human
hand.
[0043] Keypad 242 may comprise any input device arranged to receive
input from a user. For example, keypad 242 may include a push
button numeric dial, or a keyboard. Keypad 242 may also include
command buttons that are associated with selecting and sending
images.
[0044] Client device 200 also comprises input/output interface 248
for communicating with external devices, such as a headset, or
other input or output devices not shown in FIG. 2. Input/output
interface 248 can utilize one or more communication technologies,
such as USB, infrared, Bluetooth.TM., or the like.
[0045] Mass memory 226 includes a Random Access Memory ("RAM") 204,
a Read-only Memory ("ROM") 222, and other storage means. Mass
memory 226 illustrates an example of computer readable storage
media (devices) for storage of information such as computer
readable instructions, data structures, program modules or other
data. Mass memory 226 stores a basic input/output system ("BIOS")
224 for controlling low-level operation of client device 200. The
mass memory also stores an operating system 206 for controlling the
operation of client device 200. It will be appreciated that this
component may include a general-purpose operating system such as a
version of UNIX, or LINUX.TM., or a specialized client
communication operating system such as Windows Mobile.TM., Google
Android.TM., Apple iOS.TM., or the Symbian.RTM. operating system.
The operating system may include, or interface with a Java virtual
machine module that enables control of hardware components and/or
operating system operations via Java application programs.
[0046] Mass memory 226 further includes one or more data storage
208, which can be utilized by client device 200 to store, among
other things, applications 214 and/or other data. For example, data
storage 208 may also be employed to store information that
describes various capabilities of client device 200. The
information may then be provided to another device based on any of
a variety of events, including being sent as part of a header
during a communication, sent upon request, or the like. At least a
portion of the information may also be stored on a disk drive or
other computer-readable storage device (not shown) within client
device 200. Data storage 208 may also store various financial data,
including reservation data, usage data, and the like, that may
reside within a database, text, spreadsheet, folder, file, or the
like. Such financial data may also be stored within any of a
variety of other computer-readable storage devices, including, but
not limited to a hard drive, a portable storage device, or the
like, such as illustrated by non-transitory computer-readable
storage device 230.
[0047] Applications 214 may include computer executable
instructions which, when executed by client device 200, transmit,
receive, and/or otherwise process network data. Examples of
application programs include, but are not limited to calendars,
search programs, email clients, IM applications, SMS applications,
voice over Internet Protocol ("VOIP") applications, contact
managers, task managers, transcoders, database programs, word
processing programs, security applications, spreadsheet programs,
games, search programs, and so forth. Applications 214 may include,
for example, browser 218 and resource recommendation interface
(I/F) 219.
[0048] Browser 218 may include virtually any application configured
to receive and display graphics, text, multimedia, and the like,
employing virtually any web based language. In one embodiment, the
browser application is enabled to employ HDML, WML, WMLScript,
JavaScript, SGML, HTML, XML, and the like, to display and send a
message. However, any of a variety of other web-based languages may
be employed. In one embodiment, browser 218 may enable a user of
client device 200 to communicate with another network device, such
as BFS 107 of FIG. 1. In one embodiment, browser 218 may enable a
user to view and/or manipulate resource data, including creating
resource recommendations, adding/purchasing/reallocating resources,
modifying resource reservation models, rendering visualizations of
resource recommendations and related what-ifs, or the like.
[0049] In at least one of the various embodiments, a user may
employ client device 200 to create and manage IT resource
recommendations and to access information stored or otherwise
managed through BFS 107. In at least one of the various
embodiments, a user may enter various types of data into a resource
recommendation system accessible through BFS 107. Also, in at least
one of the various embodiments, the user may be enabled to perform
a variety of actions on the data, including, queries, comparisons,
summations, analysis, or the like. In some embodiments, a user may
employ client 200 to create one more resource reservation
models.
[0050] Resource recommendation I/F (RRI) 219 provides another
mechanism for interacting with BFS 107. RRI 219 may operate as a
separate application providing and managing communications with BFS
107 over a network and providing for display of user interfaces,
including, but not limited to those described below. Thus, in some
embodiments, the user might employ browser 218 or RRI 219 to
communicate with BFS 107, provide data to BFS 107, and otherwise
manage IT resource reservations. It should be noted that while the
subject innovations are directed towards managing It resource
reservations, other actions might also be performed, including,
managing other aspects of IT resources, including budgeting,
tracking work flow, up/down times of resources, application usages,
back-up management, recovery management, and any of a variety of
other IT management activities.
Illustrative Network Device
[0051] FIG. 3 shows one embodiment of network device 300 that may
be included in a system implementing at least one of the various
embodiments. Network device 300 may include many more or less
components than those shown. The components shown, however, are
sufficient to disclose an illustrative embodiment for practicing
the invention. Network device 300 may represent, for example, BFS
107 of FIG. 1.
[0052] Network device 300 includes processing unit 312, video
display adapter 314, and a mass memory, all in communication with
each other via bus 322. The mass memory generally includes RAM 316,
ROM 332, and one or more permanent mass storage devices, such as
hard disk drive 328, tape drive, optical drive, flash drive, and/or
floppy disk drive. The mass memory stores operating system 320 for
controlling the operation of network device 300. Any
general-purpose operating system may be employed. Basic
input/output system ("BIOS") 318 is also provided for controlling
the low-level operation of network device 300. As illustrated in
FIG. 3, network device 300 also can communicate with the Internet,
or some other communications network, via network interface unit
310, which is constructed for use with various communication
protocols including the TCP/IP protocol. Network interface unit 310
is sometimes known as a transceiver, transceiving device, or
network interface card (NIC). Network device 300 also includes
input/output interface 324 for communicating with external devices,
such as a headset, or other input or output devices not shown in
FIG. 3. Input/output interface 324 can utilize one or more
communication technologies, such as USB, infrared, Bluetooth.TM.,
or the like.
[0053] The mass memory as described above illustrates another type
of processor-readable storage media. Processor-readable storage
media (devices) may include volatile, nonvolatile, removable, and
non-removable media implemented in any method or technology for
storage of information, such as computer readable instructions,
data structures, program modules, or other data. Examples of
computer readable storage media include RAM, ROM, Electronically
Erasable Programmable Read-Only Memory (EEPROM), flash memory or
other memory technology, Compact Disc Read-Only Memory (CD-ROM),
digital versatile disks (DVD), Blu-Ray, or other optical storage,
magnetic cassettes, magnetic tape, magnetic disk storage or other
magnetic storage devices, or any other physical medium which can be
used to store the desired information and which can be accessed by
any computing device.
[0054] As shown, data stores 354 may include a database, text,
spreadsheet, folder, file, or the like, that may be configured to
maintain and store various resource recommendation models, resource
data, resource usage logs, resource configuration data, service
level agreements, cloud-service provider contract data, or the
like. Data stores 354 may further include program code, data,
algorithms, or the like, for use by a processor, such as central
processing unit (CPU) 312 to execute and perform actions. In one
embodiment, at least some of data and/or instructions stored in
data stores 354 might also be stored on another device of network
device 300, including, but not limited to cd-rom/dvd-rom 326, hard
disk drive 328, or other computer-readable storage device resident
on network device 300 or accessible by network device 300 over, for
example, network interface unit 310.
[0055] The mass memory also stores program code and data. One or
more applications 350 are loaded into mass memory and run on
operating system 320. Examples of application programs may include
transcoders, schedulers, calendars, database programs, word
processing programs, Hypertext Transfer Protocol (HTTP) programs,
customizable user interface programs, IPSec applications,
encryption programs, security programs, SMS message servers, IM
message servers, email servers, account managers, and so forth.
Mass memory may also include web services 356, and resource
recommender 357.
[0056] Web services 356 represent any of a variety of services that
are configured to provide content, over a network to another
computing device. Thus, web services 356 include for example, a web
server, a File Transfer Protocol (FTP) server, a database server, a
content server, or the like. Web services 356 may provide the
content over the network using any of a variety of formats,
including, but not limited to WAP, HDML, WML, SGML, HTML, XML,
compact HTML (cHTML), extensible (xHTML), or the like.
[0057] In one embodiment, web services 356 may provide an interface
for accessing and manipulating data in a data store, such as data
stores 354, or the like. In another embodiment, web services 356
may provide for interacting with resource recommender 357 that may
enable a user to access and/or otherwise manage resource
reservations, and/or other IT management related actions.
[0058] In at least one of the various embodiments, resource
recommender 357 may enable users to generate financial resource
recommendation models, establish what-if scenarios, display graphic
plots for reserving resources, determine underused, including
unused, resources, or the like. Resource recommender 357 may be
configured in one embodiment, to employ a process such as described
below in conjunction with FIG. 4 to perforin at least some of its
actions. Further resource recommender 357 may provide various user
interfaces including those discussed below in conjunction with
FIGS. 5-6.
Generalized Operation
[0059] The operation of certain aspects of the invention will now
be described with respect to FIGS. 4-6. The operations of the
processes described below may, in one embodiment, be performed
within BFS 107 of FIG. 1, and/or displayed at one or more screens
within one or more client devices 101-104 of FIG. 1.
[0060] FIG. 4 illustrates a logical flow diagram showing one
embodiment of a process 400 usable to manage and display
recommendations for reserving IT resources, such as cloud IT
resources, in-house resources, on-demand resources, reserved
resourced, and the like.
[0061] In one embodiment, a user may select to initially arrange
for usage of various IT resources directly through one or more
cloud service providers. During this initial stage, the user might
contract for initial use of various resources, reserve the
resources based on various terms of use, including agreements over
a six month, one year, two year, three year, or other time period.
Moreover, it should be understood, that the user may select to
manage IT resources from a plurality of different cloud service
providers, manage in-house (or on-demand) resources, and/or manage
IT resources obtained from other than cloud service providers
and/or other reservation type service providers.
[0062] While such actions may be performed prior to beginning
process 400, in other embodiments, initial contracting for services
might be performed within process 400, such as at step 402. Thus,
process 400 begins, after a start block, at block 402, where the
user may negotiate initial IT resource (instance) purchases,
reservations, contracts, and the like. In one embodiment, block 402
might be performed using interfaces provided by BFS 107; however,
as noted above, block 402 might be performed independent of use of
BFS 107, as suggested by dashed block 402.
[0063] In any event, proceeding to block 404, the user may
establish an account for reservation management services through
BFS 107, and provide information about resources (instances) to be
managed, including, cloud services, in-house services, and the
like. In one embodiment, resource information might be input
automatically through a request by BFS 107 to a cloud service
provider, on behalf of the user. In other embodiments, an interface
might be established with a user's computing device to enable
access to various data about the resources. In still another
embodiment, the user might directly input data about resources to
be tracked and managed by BFS 107.
[0064] Initially, the user may be provided with an interface
illustrating a list of resources that are to be managed by BFS 107,
where the list might provide an ability for the user to view
details about a configuration of the resource, a location of the
resource, a service level agreement for the resource,
uptime/downtime information about the resource, and a variety of
other information about the resource.
[0065] Proceeding to block 406, resources identified within BFS 107
are then tracked for usage by the user and/or the user's business.
In one embodiment, the usage data might be directly sent by the
in-house (or on-demand), cloud services (or reservation services),
or the like, using any of a variety of mechanisms. For example, an
agreement might be established that the tracked resources
automatically provide usage data to BFS 107 based on regular
schedules, based on queries by BFS 107, and/or a combination of
events, conditions, or the like. Such usage data may include any
changes in a configuration of a resource, as well as loads on the
resource, up/down times of the resources, a cost of the resource,
and any of a variety of other related information.
[0066] At least some of the tracked data may be used to make
predictions on future usage of a resource, determine when to move
an in-house resource usage to a cloud resource (or the reverse),
determine when to purchase additional resources, release a
resource, re-allocate a resource usage, or the like. In some
embodiments, tracked data for a defined prior period of time may be
used to make recommendations. For example, a three month prior
period of time might be used to determine recommendations. However,
in other embodiments, tracked data may be used based on various
models, including, error covariance models, learning models, or the
like, where historical data may be consolidated into various
parameters of the model over virtually any time period.
[0067] At any time that the user wishes to perforin recommendations
analysis, process 400 moves to block 408. This may occur, for
example, when the user selects an interface into resource
recommender 357 of network device 300 of FIG. 3.
[0068] Processing then flows to block 410, where recommendations
are dynamically displayed to the user. One such non-limiting,
non-exhaustive interface is discussed in more detail below in
conjunction with FIG. 5. Briefly, however, the user may be provided
with various strategy interfaces.
[0069] At decision block 412, the user might select to modify
various user input parameters or assumptions useable to determine
resource recommendations. For example, the user might be able to
vary a time frame in which the resources are to be committed to by
the user, vary an upfront cost parameter, and/or vary a number of
recommended resources to be reserved, or the like. The user may
further update various resources to be considered, their
configurations, contracts, or the like.
[0070] If the user selects to modify any assumptions, input
parameters, or the like, processing flows to block 414, where,
based on the tracked data, and the user input assumptions, the
changes may be used to perform an updated analysis. Then, flowing
to block 410, the results are dynamically displayed to the user to
indicate changes in the recommendations for reserving resources. As
the user varies input parameters, the user may automatically and
dynamically view how the changes affect the resulting
recommendations (by cycling through blocks 410, 412, and 414).
Thus, at least in part, the user may dynamically perform a variety
of `what-if` analysis to determine an optimum resource
recommendation given the constraints provided by the user, the
resource providers, and/or the tracked data.
[0071] When the user selects to accept the recommendations (at
decision block 412, by no longer modifying inputs) processing flows
to block 416. At block 416, the user may take one or more actions
based on the recommendations. In one embodiment, this might include
selecting a time period within the forecast display of FIG. 5. This
action may then result in a display of actions to be taken. One
non-limiting, non-exhaustive embodiment of such a display is
described in more detail below in conjunction with FIG. 6. The user
may then make purchases, release resources, renegotiate contracts
for resources, reallocate resource usages, or the like. In one
embodiment, such actions might be performed outside of process 400
(as indicated by the dashed block 416), or be performed through
another interface provided by BFS 107.
[0072] Processing continues to decision block 418, where a
determination is made whether to continue to manage tracking and
recommending resource reservations, or to terminate the process. If
the process is to continue, then the flow may return to block 406.
However, in other embodiments, the flow might return to block 404,
where additional changes to the resources might be performed by the
user, including adding new resources, deleting one or more
resources, or the like. Should it be determined that process 400 is
to terminate, then flow may return to a calling process to perform
other actions.
[0073] It will be understood that each component of the
illustrations, and combinations of components in these
illustrations, can be implemented by computer program instructions.
These program instructions may be provided to a processor to
produce a machine, such that the instructions, which execute on the
processor, create means for implementing the actions specified in
the flow component or components. The computer program instructions
may be executed by a processor to cause a series of operational
steps to be performed by the processor to produce a
computer-implemented process such that the instructions, which
execute on the processor to provide steps for implementing the
actions specified in the flow component or components. The computer
program instructions may also cause at least some of the
operational steps shown in the components of the flows to be
performed in parallel. Moreover, some of the steps may also be
performed across more than one processor, such as might arise in a
multi-processor computer system. In addition, one or more
components or combinations of components in the flow illustrations
may also be performed concurrently with other components or
combinations of components, or even in a different sequence than
illustrated.
[0074] Accordingly, components of the flow illustrations support
combinations of means for performing the specified actions,
combinations of steps for performing the specified actions and
program instruction means for performing the specified actions. It
will also be understood that each component of the flow
illustrations, and combinations of components in the flow
illustrations, can be implemented by special purpose hardware based
systems, which perform the specified actions or steps, or
combinations of special purpose hardware and computer
instructions.
Non-Limiting, Non-Exhaustive Example User Interfaces
[0075] The following provides examples of user interfaces usable in
conjunction with process 400 of FIG. 4 to enable a user to manage
resource recommendations. It should be noted that other interfaces
may also be provided. Moreover, it should be noted that the
interfaces illustrated in FIGS. 5-6 discussed below may include
more or less components that shown. In addition, not all the
components may be required to practice various embodiments, and
variations in the arrangement and type of the components may be
made.
[0076] As shown, however, FIGS. 5-6 illustrate non-limiting,
non-exhaustive examples of interfaces for managing and displaying
IT resource reservations. As shown in FIG. 5, for example, is a
display 500 that provides one portion 502 usable for the user to
modify various assumptions, and/or parameters used to determine
resource reservations.
[0077] For example, the user might be able to modify what time
frame for which the user might wish to commit to for reserving
resources, as shown in portion 502, labeled 1. The displayed time
frame might be specific to a given cloud service provider. Thus,
while illustrated in FIG. 5 to provide up to three years, other
time frames might be provided instead. Briefly, this time frame
allows the user to determine the time period over which they wish
to make purchases, allowing the user to select immediate purchases,
all at once, or to make purchases over the course of the contract.
Also illustrated, labeled 2, the user might provide an input
indicating how much the user wishes to pay upfront, or at a
beginning of a contract period. In one embodiment, the user might
be able to input a specific value, or a generic parameter, such as
low/medium/high, or the like. Input, labeled 3 in FIG. 5, allows
the user to modify resource recommendations from an initial
computed recommendation, to some value less than the recommended
amount of resources. As illustrated, the recommended value is 15
resources, for which the user might select the recommended value or
some value less.
[0078] As shown in the lower portion 503, of display 500 provides
an immediate and dynamically changing resource recommendation chart
over time. Portion 503 may dynamically change based on changes in
inputs, assumptions, or the like, by the user. Thus, should the
user change any of the input assumptions in portion 502, they may
immediately (or as quickly as reasonable given network connections,
or the like) view the impact to the recommendations.
[0079] As shown in portion 503, are lines 510, 512, 514, and 516.
Line 510 is directed towards illustrating over time a costing
forecast based on no reserved instances. Line 512 is directed
towards illustrating over time a costing forecast that is based on
the recommended number of instances. Line 514 illustrates a costing
flow over time should the user select to take no actions, including
purchases, re-allocations, or the like, while line 516 illustrates
costing flow over time should the user follow the recommendations
for reserving and/or otherwise managing resources provided by
process 400 of FIG. 4. As illustrated in the lower portion 502, the
user may quickly see a cost difference between the actions the user
may take or not take. By varying assumptions, and/or other inputs,
including taking none, some, or all of the recommendations, the
lower portion 503 can dynamically update and reflect changes to the
recommendations.
[0080] As discussed above, the recommendations are in part based on
historical usage data, service level agreements, contracts,
resource configurations, and the like. Thus, when the user selects
to turn on/off a resource, use a resource for some time, allow the
resource to sit idle or off, and perform a variety of other
actions, such factors are considered in determining the changes to
the recommendations.
[0081] In one embodiment, the historical data used might be
constrained to using a particular time window of prior time. For
example, in some embodiments, the time window of prior time might
be between one to four months. However, other time periods might be
used. In some determinations of recommendations, it might be
determined that a prior usage reflects a predicted future usage
over a remaining portion of the contract for a resource. Thus, in
one embodiment, if it is determined that historical usage of the
resource is at 80% over the prior time period, then it might be
assumed that the future usage will also be at 80% for the remaining
time period on the contract. However, other models might be used,
including, but not limited to using a mode, median, or other
statistical parameter from the prior time period, to predict future
usage.
[0082] Further, in some embodiments, a comparison might be made
between a predicted usage and an actual usage of a resource. The
comparison might then be used to generate various errors covariance
values, or the like, usable to improve future estimates for
recommendations. For example, various machine learning models, or
the like, might be used that take into account trends in usage,
peak usages, or the like.
[0083] Moreover, various recommendation models take into account
fixed fees and variable fees for a resource, to improve
recommendations. Recommendations may be provided for a given cloud
service provider's resources, or be determined across a plurality
of cloud service providers. For example, recommendations may be
provided on how to manage resources for a given cloud service
provider, independent of resources of other providers. However, in
other embodiments, recommendations may be provided to the user
across a plurality of sources of resources, including
recommendations that take into account costing differences between
providers, and outsourced resources and in-house resources, as well
as to assist in deciding when an actual trade-off between paying as
one goes and reservations might occur. In this manner, the user may
have an improved visibility of total costs for IT resource
reservations. In some embodiments, the user might conduct what-if
analysis for comparing using in-house resources versus outsourcing,
by inputting different assumptions in portion 502 of FIG. 5, in
addition to those illustrated.
[0084] In one embodiment, the user may further select a time within
lower portion 503 in which to expand display of the
recommendations. As illustrated in FIG. 5, a selector bar 520 might
be provided to enable the user to select a time period to expand
upon. However, other mechanisms might be provided, including a
button input sequence or combination, an icon selection, a window
for inputting a time period, or the like.
[0085] In any event, selection of a time period to expand
recommendation display may result in a display interface, such as
illustrated in FIG. 6. FIG. 6 is one non-limiting, non-exhaustive
example, of a user interface 600 usable for providing a purchase
listing for a selected time period. As shown, interface 600 may
include purchase list 602 and non-usage list 604.
[0086] Purchase list 602 provides a recommendation listing of
resources that the user might select to purchase or otherwise
reserve for the given time period based on recommendations provided
through FIG. 5. Also illustrated, in non-usage list 604 that
provides to the user a listing, when such condition exists, of
resources that are determined to be unused, or otherwise used at a
level below some threshold value. The user may then select to
release these resources, or otherwise reallocate usage to these
resources. The non-usage list 604 is generated in part based on
purchase list 602. Thus, reallocation of a non-used or
underutilized resource is not expected to immediately change the
purchase list contents. However, the list and the recommendations
may change over time for future recommendations. In any event, the
user is provided with numerous integrated and dynamic
recommendations, and interfaces for managing their IT resources,
and thereby enabling the user to improve usage of their IT
budgets.
[0087] For example, using the above subject innovations, the user
will be able to determine when to employ on-demand resources versus
reserved resources, or on-demand resources versus an in-house
service that might, for example, have been purchases (with upfront
fees) and incurs on-going fees from such as maintenance, power,
network, physical space over time, or the like.
[0088] As an additional example, FIG. 7 illustrates one
non-limiting, non-exhaustive example of data analysis useable to
calculate reserved resources for a single resource type. In a
complete analysis as performed in block 408 of FIG. 4 many
resources types would be analyzed in parallel and summarized for
use as in FIG. 5 and FIG. 6. It should be understood that, as
discussed above, other approaches may be used, as well as other
algorithms. Thus, the following example is not to be construed as
limiting or otherwise constraining the subject innovations
discussed herein.
[0089] In some embodiments, the approach discussed in conjunction
with FIG. 7 may be performed within at least block 408 of FIG. 4.
However, prior to performing calculations, tracking and collecting
historical usage data over some time period is performed, such as
is described above at block 406 of FIG. 4. Then, a 4 phase
calculation would take place to determine the optimal
recommendation. In phase 1, a calculation is performed for
on-demand, or cloud usage per unit of time. Referring briefly to
FIG. 7, chart 700-1 represents one embodiment for displaying of
tracked usage data over time. The unit of time may be defined as
virtually any time unit, including hours, other portions of a day,
days, weeks, or so forth. The units of resources used may represent
discrete resources, or bundled resources. Each unit of time is
treated as a bucket and 1 unit is added to the bucket for any
resource used during the time period. The result seen in chart
700-1 is a histogram of units used in each time. Once data has been
collected for a given previous period of time, the results are used
to predict future resource usage. In some embodiments, the data is
used to project future resource usage in a time period by assuming
it is identical to that of the previous time period data has been
collected for. However, as discussed above, other prediction
algorithms may be used, including those that take into
consideration trends in resource usage, identifying temporary peak
usages, or the like.
[0090] In chart 700-2, each bucket from chart 700-1 is then sorted
from the largest bucket to smallest by unit of time (e.g. hour).
Chart 700-2 illustrates one possible display showing rank sorted
units for each time period.
[0091] In phase two, a calculation is performed to determine a
"trade-off percentage" of a given reservation period. This
represents the percentage of a time in a period when it costs less
to purchase a reservation when cost is amortized over the entire
period rather than when using on-demand resources. While a variety
of equations may be employed, one such example equation might
be:
Trade-off percentage=[U+(RR*TL)]/(ODR*TL)
where U represents an upfront cost; RR represents a reserved rate;
TL represents a time of reservation; and ODR represents an
on-demand rate. Once we have the trade-off percentage, it can be
used to calculate a specific number of hours a resource is to be
allocated in a time period before it costs less to purchase a
reservation when the cost is amortized over the same period. This
can be calculated, in one embodiment, using the following
equation:
Trade-off Hours=Trade-off percentage*TL
[0092] In phase 3, using the results from phases 1 and 2, optimal
resources to purchase for a given time may be determined. Chart
700-3 illustrates one embodiment of a display showing a result for
determining a trade-off point (e.g., trade-off hour). Once the time
bucket is selected using the calculated trade-off hour, that
bucket's unit value is then definable, in one embodiment, as the
optimal number of resources of the type in question to purchase in
the next time period. This is because the number of resources in
that bucket represents the number of resources where it is more
cost effective to purchase reserved resources over using on-demand
resources.
[0093] Chart 700-4 shows how once the optimal number of resource
reservations has been selected one could allocate resources over a
time period. The number of reserved resources would cover all
resources during normal operation while on-demand resources would
handle resources above the optimal number of resource
reservations.
[0094] By using phases 1-4 on every type of resource a list of
optimal reservation purchases can be obtained and summarized. FIG.
5 and FIG. 6 display how one may visualize the spread of these
purchases across a time period. Purchasing resources over time then
may reduce the upfront costs associated with purchasing a large
number of reservations at once. This also may lower the risk of
purchasing many long term reservations by temporarily using
on-demand resources for a time even if it's cost-optimal to buy
reserved resources. One algorithm to achieve this would be evenly
spreading the number of reservations purchased over an entire time
period. Others may also be used, as discussed above. In FIG. 5 the
recommended costs line is the sum of on-demand rates, upfront-fees
and reserved rates for all current resources given recommended
purchases and the time the purchase has been recommended in.
[0095] The above specification, examples, and data provide a
complete description of the manufacture and use of the composition
of the invention. Since many embodiments of the invention can be
made without departing from the spirit and scope of the invention,
the invention resides in the claims hereinafter appended.
* * * * *