2. What’s OpenStack Watcher ?
An OpenStack project - Watcher performs resource optimization post VM
deployment to rebalance the environment over time.
Joined the big tent in May 2016
Leverages capabilities provided by other core services
Mission Statement
– to provide resource optimization of your cloud
– a framework to implement a wide range of optimization goals
– pluggable architecture for new optimization algorithms and new data metrics
2
4. Integration with OpenStack
Keystone integration (registration, authentication)
CLI - openstackclient (optimize) and watcherclient
Horizon UI plugin
oslo integration (log, policy, gmr , config etc)
bandit integration
4
5. Key Features for Watcher
Watcher provides:
• Cloud optimization using VM live migration in case of imbalance detection
• Granularity of optimization with multiple goals setting from a set of hosts to an entire
cloud
• Evolutivity via its flexible plugin structure
• « On-the-shelf » optimization strategies based on CPU, RAM and Energy
Watcher can run in:
• “ADVISE MODE” for auditing before acting
• “ACTIVE MODE” for always-on optimization (under development)
• “VERBOSE MODE” for detailed optimization decision tracking (under development)
5
6. Use Cases
1. As a cloud administrator, I want to
optimize my cloud by way of live
migration of VMs when imbalances are
detected.
2. As a cloud administrator, I want to attach
an optimization goal to a set of hosts, so
that I can have multiple goals within my
cloud to meet various workload
demands.
3. As a Watcher plugin developer, I want
an easy way to feed in new metrics, so
that I can make Watcher aware of new
data to optimize upon.
6
4. As a cloud administrator, I want to run
Watcher in “advise mode”, so that I can
see what Watcher would do without it
actually altering the state of my cloud.
5. As a cloud administrator, I want to run
Watcher in “active” mode, so that my
cloud runs in a fully automated mode.
6. As a cloud administrator, I want to see
what optimizations Watcher has made,
so I know what it’s doing while I’m not
watching.
7. Watcher Workflow and Maturity
Profile
Apply
Plan
Monitor
Optimize
Analyse
cost model constraints
Virtual machine metrics,
energy consumption,
resources usage
Aggregate flows of
events from the
infrastructure and
take action
Profile and predict
virtual machine
resource usage
Find trade-offs between
objectives and constraints
Schedule actions such that all
security, dependency and
performance requirements are
met.
Apply the optimal state
where the
infrastructure
is utilized as efficiently
as specified in goals.
6 of 8
objective
3 of 8
1 of 8
Maturity level
7
8. Service components
8
• watcher-api:
• provides REST api
• sends audit request to decision-engine
• watcher-decision-engine:
• runs audit on part of your IaaS
• returns an action plan in order to optimize resource
• watcher-applier:
• applies the action plan.
• leverages other services like nova to apply action
9. Dependencies
9
Identity service (keystone) for request authentication and to locate other
OpenStack services
Telemetry service (ceilometer) for consuming the resources metrics
Compute service (nova) works with the Watcher service and acts as a user-facing
API for instance migration.
16. Examples of Goals
16
minimize the energy consumption
minimize the number of compute nodes (consolidation)
balance the workload among compute nodes
minimize the license cost (some software have a licensing model which is based
on the number of sockets or cores where the software is deployed)
find the most appropriate moment for a planned maintenance on a given group of
host (which may be an entire availability zone): power supply replacement, cooling
system replacement, hardware modification