A holistic Resource Placement Optimization Service
Go to file
Chris fb512cd3ab Refactor valet_plugins
Part of support for nested stacks and updates story

To add nested stack support to Valet, make up for missing Heat resource
Orchestration IDs in nested resources by generating a subset of Heat
stack lifecycle scheduler hints for each resource in advance, store
them as opaque metadata in Valet, then leverage the metadata at Nova
scheduling time. Make additional accommodations in anticipation of
complexities brought about by adding support for stack updates.

To add a minimally viable amount of Heat `stack-update` support to
Valet, significantly restrict the number of update use cases using a
set of acceptance criteria. Skip holistic placement at `stack-update`
time in favor of Valet's existing re-plan mechanism, placing or
replacing resources one at a time, albeit still in consideration of
other resources in the same stack hierarchy.

Change-Id: I4654bcb4eacd5d64f76e262fe4c29553796e3f06
Story: #2001139
Task: #4858
2017-08-28 11:42:32 -05:00
api-ref/source Add /v1/plans api-ref 2017-06-13 23:52:37 -05:00
bin Moved logger references to file headers 2017-06-15 15:47:28 -05:00
debian Adding packaging and debian instructions 2017-08-16 14:02:15 -05:00
devstack Valet Devstack Plugin 2017-06-20 16:19:23 -05:00
doc Refactor valet_plugins 2017-08-28 11:42:32 -05:00
etc Adding packaging and debian instructions 2017-08-16 14:02:15 -05:00
plugins Refactor valet_plugins 2017-08-28 11:42:32 -05:00
releasenotes/source Add reno support to valet 2017-05-31 11:27:53 -05:00
tools/utils Refactor Optimizer 2017-08-16 15:16:56 -05:00
valet Merge "Adding packaging and debian instructions" 2017-08-17 15:41:56 +00:00
.coveragerc Initial commit 2016-12-12 08:50:24 -06:00
.gitignore Refactor Optimizer 2017-08-16 15:16:56 -05:00
.gitreview Use upstream Music link 2017-05-01 19:25:09 -05:00
.testr.conf Initial commit 2016-12-12 08:50:24 -06:00
babel.cfg Fix CRLF issues 2017-06-03 11:39:05 -05:00
CONTRIBUTING.rst Fix CRLF issues 2017-06-03 11:39:05 -05:00
HACKING.rst Fix CRLF issues 2017-06-03 11:39:05 -05:00
LICENSE Valet Documentation 2017-05-01 19:07:42 -05:00
README.md Fix pep8 and docstring violations 2017-05-01 19:24:57 -05:00
requirements.txt Revert "Centralized configuration and auto generation" 2017-06-20 18:25:50 +00:00
run_all_tests.sh Refactor Optimizer 2017-08-16 15:16:56 -05:00
run_examples.sh Refactor Optimizer 2017-08-16 15:16:56 -05:00
run_test.sh Refactor Optimizer 2017-08-16 15:16:56 -05:00
run_until_fail.sh Refactor Optimizer 2017-08-16 15:16:56 -05:00
setup.cfg Adding packaging and debian instructions 2017-08-16 14:02:15 -05:00
setup.py Fix pep8 and docstring violations 2017-05-01 19:24:57 -05:00
test-requirements.txt Add bandit target 2017-06-08 06:21:18 +00:00
tox.ini Refactor Optimizer 2017-08-16 15:16:56 -05:00

Valet

Valet is a cloud resource placement optimization service. Valet gives OpenStack the ability to optimize cloud resources while simultaneously meeting a cloud application's QoS requirements. Through model driven orchestration, the target state of Valet is to provide “holistic OpenStack data-plane resource placement”. Valet provides an api service, a placement optimizer (Ostro), a high availability data storage and persistence layer (Music), and a set of OpenStack plugins.

Why Valet exists:

For large-scale, multi-tenant cloud operators, there is a large demand for tenant specific service requests. This demand drives the growth of the number of cloud availability zones and compartmentalization of the cloud, which then leads to increased provisioning and sub-optimal use of cloud and staff resources. Also, security requirements lead us to place specialized network appliances of these tenants separately into “exclusive” hosts that do not have internet connectivity.

Valet responds to the challenges outlined above by enhancing OpenStack Nova scheduling to develop resource management optimization. By planning the placement of all the cloud resources for an application in a holistic manner, there is opportunity to reduce cross-rack traffic, reduce resource fragmentation, and save on operating costs.

Learn more about Valet:

Valet consists of the following components:

  • valet-openstack: a set of OpenStack plugins used to interact with Valet
  • valet-api: an API engine used to interact with Valet
  • Ostro: a placement optimization engine
  • ostro-listener: a message bus listener used in conjunction with Ostro and Music

Additional documents:

License:

Valet is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.