watcher-specs/priorities/queens-priorities.rst
Alexander Chadin 6185da3533 Add team priorities for Queens
Here is the list of priorities we have planned for Queens.

Change-Id: I72283e7fe07591e8940aa3912d63bacec1b42dc8
2017-10-03 12:33:05 +00:00

12 KiB

Queens Project Priorities

List of priorities the Watcher drivers team is prioritizing in Queens.

Priority Owner
Baremetal data model in Watcher Li Canwei
Check the strategy requirements Alexander Chadin
Notifications for action plan cancel Aditi Sharma
Watcher Planner Selector Alexander Chadin
Watcher Strategy Selector Aditi Sharma
Workload Characterization and QoS Susanne Balle
Extend node status suzhengwei
Exclude project by audit scope Aditi Sharma
Audit scoper for storage data model Hidekazu Nakamura
Define a tailored Scoper for each CDM Hidekazu Nakamura
Register and Document Policy in Code Yumeng Bao
Workload characterization grammar Susanne Balle
Zone migration strategy Hidekazu Nakamura
Watcher API validation using JSON Aditi Sharma
Compute CDM include all instances suzhengwei
Display input parameters of strategy Alexander Chadin
Add name for audit suzhengwei
Cluster maintance strategy suzhengwei
Multiple datasources for strategies Aditi Sharma
Replace voplutuous with JSON Schema Yumeng Bao

Baremetal data model in Watcher

For a data center with large amount of VMs and physical hosts,the total power consumption is tremendous. When workload is not heavy, Watcher can be used to reduce power consumption by triggering a request to power off some idle hosts without VMs. And when the workload increases Watcher will trigger a "power on" request to fullfill the service requirements.

Check the strategy requirements

Running of strategy requires different type of data resources to compute a solution. During the strategies loading, the decision engine should automatically check if all requirements are achieved.

Notifications for action plan cancel

Notifications needs to be added to action and action plan for new operation action plan cancel.

Watcher Planner Selector

This component is responsible for selecting an appropriate planner for a given strategy depending on several factors (e.g list of actions used by the strategy or user request).

Watcher Strategy Selector

There may be several strategies applying for a given optimization goal. Currently , if the admin didn't specify a strategy Watcher select the first strategy available in the list. If Watcher intends to be used in real infrastructure it need a more robust way to select the strategy for a given goal. The strategy selector component will enable watcher to automatically decide which strategy to use.

Workload Characterization and QoS

Based on the defined workload characteristics we should be able to apply Quality of Services to applications. An example would be leveraging technologies like Intel RDT.

This opens up several application optimization possibilities (use cases like NFV etc.) and also ensures efficient use of cloud resources. Scope of this blueprint is to build a QoS strategy using Intel RDT and workload grammar.

Extend node status

We can get a node status through CDM (cluster data model) in watcher. Most of strategies rely on the node's status. But the existing status just meets existing strategies. We need to extend nodes status description for new strategies.

Exclude project by audit scope

As of Now, Watcher can exclude instances, compute_nodes, host_aggregates and instance_metadata by audit scope. As an administrator, I want to exclude instances of a specific project from Watcher optimization. This bp proposes to add exclude project feature to audit scope.

Audit scoper for storage data model

Since storage data model was added in Pike cycle, we need audit scoper for storage data model as compute data model has.

Define a tailored Scoper for each CDM

Storage cluster data model was introduced in Pike cycle. Since the model is different from compute data model, current single CDM scoper does not work for the model.

Register and Document Policy in Code

This blueprint tracks the work for moving default policies and documentation into code. This is OpenStack-wide goals for Queens release. https://governance.openstack.org/tc/goals/queens/policy-in-code.html

Storage workload balance

As of now, Watcher optimizes only compute nodes. Storage optimization is also important feature for centralized storage (non distributed storage). This spec will add Storage Workload Balance Strategy to balance the storage resource. And we can use existing goal (workload_balancing) and action(volume_migrate) for storage workload balance.

Workload characterization grammar

As we run several workloads in cloud, we should be able to characterize such workloads as input to watcher for ensuring Application QoS, placements and consolidation.

An example of workload characterization is a weighted combination of CPU, Memory or any other resource attributes like High IOPs, Network latency etc.

Scope of this blueprint is to come up with a grammar structure for defining workload character.

Zone migration strategy

There are thousands of physical servers and storage running various kinds of workloads in the Cloud system. Administrator have to migrate instances and block storage for hardware maintenance once a quarter or so. It requires operators manually to watch workloads, choose instances to migrate and migrate for each instances and block storage for efficiently, with minimum downtime. Watcher can be used to do this task automatically.

Watcher API validation using JSON

Cureently watcher uses different methods to validate api, which causes many bugs and few operations are possible which should not be allowed like a cloud admin can delete "ongoing" actionplan and audit. To have more cleaner and same approach for all operations we should have a unified way of validating the api, which can be done using JSON.

Compute CDM include all instances

When building compute CDM, Watcher excludes the instances excluded in the scope. It has negative impact to Watcher.

  • To some strategies, it get incorrectly workload of the compute nodes, because the excluded instances was not calculated in.
  • To server consolidation, it disables the nodes which has excluded instances running.

Display input parameters of strategy

As of now in watcher, it is difficult for users to know what input-parameters are required by each strategy when creating an audit. This blueprint will add a column to display input parameters of each strategy in results of "watcher strategy list".

Add name for audit

Adding name for audit entity would be more friendly to end users to interact with audit. This blueprint suggests to add name property to audit entity, so it will be easy for users to retrieve an andit by name.

Cluster maintance strategy

Sometimes we need to maintain compute nodes, update hardware and software, and so on. But we don't want user's application to be interrupted. This issue imports one goal and strategy for manually maintaining without user's application interruption.

Multiple datasources for strategies

We need an abstraction layer with a minimal subset of metrics needed by existing strategies (it will deal with gnocchi & monasca). If we have multiple metrics collection backend deployed, the strategy will need to give the back-end it wants to use / alternatively we could define a backend priority in configuration. We will need a map between metrics names used by strategies and correspond names in backends.

Multiple global efficacy indicator

As of now global efficacy indicator is a single entity. It is useful for the strategies which optimizes only one resource like server consolidation works only with instances. There can be some future strategies which optimizes many resources (volume, instance, network) for them it is necessary to calculate global efficacy for each resource. This blueprint will implement multiple global efficacy indicator.

Replace voplutuous with JSON Schema

In this blueprint, we will replace voplutuous with JSON-schema to validate efficacy indicator. Since we want to remove voluptuous and use JSONSchema as our only JSON validation tool to keep consistency in Watcher.