Searchlight + Horizon - Mitaka march 2016

Post on 19-Jan-2017

216 views 1 download

transcript

HP Enterprise Searchlight PTL

Horizon CoreIRC: TravT

Travis Tripp

Searchlight+ Horizon

Image source: https://www.flickr.com/photos/nasahqphoto/15757310289

Steve McLellanHP Enterprise

Searchlight CoreIRC: sjmc7

Cloud Computing is about relationships

(But we focus on lists of things?)

The CLIPre-defined lists for all the things

● Availability Zones

● Baremetal Nodes

● Domains

● Flavors

● Floating IPs

● Host Aggregates

● Hypervisors

● Images

● Instances

● Key Pairs

● Metadata Definitions

● Networks

● Projects

● Routers

● Security Groups

● Subnets

● Volumes

● ...

The UIPre-defined lists for all the things

But a cloud is more like cake...Shopping List: A mix of things I care about

● Eggs

● Milk

● Flour

● Sugar

● Butter

● Chocolate

● Baking Powder

Cake: Specific relationships of the things

Managing CloudsIs managing relationships

between things

Add a network to this instance

Create a Volume based on this Image

and attach it to this Instance

Find all the Floating IPs in-use by this

User

Managing relationships from predefined lists is hard

List of things

Details of one thing

List of things

Details of one thing

List of things

Details of one thing

And it's hard to connect the dots in pre-defined listsScale Targets::

● 12,000 instances

● 300 hosts

● 256 users

● 512 projects

● 512 images

● 256 flavors

● 14,400 IP addresses

● 7,000 floating IPs

● 5120 Security Group Rules

● 16,000 Volumes

Navigating the relationships you care about

becomes hard in a pre-defined list:

● Find everything tagged with “web"

● Power off all of Bob’s instances

● Find all IPs in this subnet

● List all projects with access to this image

● Display any flavor using this Metadata

CloudRequiresSearch

Build a custom list of

related things

“Where can I find Bob?”

Find all the related, but different things and act on them

View the basic details in-line

Drill down for more...

Dive further into related details...

But always be able to return back to your current search

Horizon is a GUITherefore everyone has a different

opinion

We don’t have to agree

on the navigation

on the contents of the dashboards

If the UI knows:

● which actions are possible for a

given resource

● which views are available for a

resource

● how to display a given action or

view

Free The Actions!And the views!

Today, business logic is tightly bound

to one “generic” view of the world.

● All views for a resource are

hardcoded to a panel dedicated

to that resource.

● All actions for a resource are

hardcoded to that dedicated

view.

Use a Resource Type Registry

to link each kind of resource with

its actions and views

registration = {type: OS::Glance::Image,actions: [ create, update,…]views: [ details, drawer,...]

}

It becomes much cheaper to build

● a search oriented view

● a task oriented view

● a custom dashboard

● a new-hotness

Horizon becomes Composable

Rearrange resource lists, details

and actions

Build a Search Based UI

Build a Navigation Based UI

Choose your favorite arrangement of actions and views

Unified Searchwe don’t all have to implement it

we also don’t have to re-invent it

OpenStack is a set of distributed services

● distinct responsibilities

● different project teams

● many layers of code

● SQL databases

● operate the cloud

● fulfill end user requests

SearchlightElasticSearch

injected with OpenStack

● elasticsearch query API

● sensible results for simple queries

● allows very specific queries

● adds role-based access control

Powerfulwe just need to feed it the data

● full text search

● search term discovery

● auto completion

● fuzzy search

● consistent pagination

● geo-spatial search

Search + Registry + Client Side

Demo

Searchlight

Cloud Services

Nova Glance

Neutron Cinder

Designate Other

Resources indexed:• On demand• Via notifications• Direct injection

HorizonCLI

& other clients

Action Requests

List and Query Requests

plugins

concept flow

API

Use Search Service

Search Service

Available?

Use Standard API

Query / List Resources

Display Results

Result Objects

Searchlight: Use When It’s TherePer Region Endpoint Deployment (currently)

Elasticsearch Cluster

ES Node

ES Node

ES Node

Horizon

CLI

API Client

OSLO Messaging or Direct injection

Searchlight Listener Service

Searchlight Listener Service

Data Enrichment

Searchlight API

Service

Searchlight API

Service

Data Protection

Load Balancer

Cloud Services

Nova Glance

Neutron Cinder

Designate Other

Deployment Components

Search

You can get REALLY specificQUERY:

{"type": "OS::Nova::Server", "query": { "bool": {

"must": [ {"match": {"name": "myservice"}}, {"range": {"updated_at": {"gte": "now-1d/d"}}}, {"term": {"hostId": "7c19f046962… "}} ], "should": [ {"match": {"name": "mongodb"}}, {"match": {"name": "redis"}}, {"wildcard": {"description": "*nosql*"}} ]}, "minimum_should_match": 2 }}

"query": { "query_string": { "query": "fedroa~” } }

"query": { "bool": { "must": [ { "term": { ”project_id": ”abc" }, { "query_string": { "query": "fedroa~" } ….

Applies Pre-Query RBAC

injection

Pre-Query RBAC injection

Post-Query RBAC filter { "status": "active", "created_at": "2015-08-06T12:48:18Z", "name": "cirros-0.3.4-x86_64-uec", "os_root_protected": "root"}

{ "status": "active", "created_at": "2015-08-06T12:48:18Z", "name": "cirros-0.3.4-x86_64-uec",}

AppliesPost-Query RBAC filter

Status

● Horizon plugin

● OpenStack client

● Content

○ Nova instances

○ Glance images, snapshots, metadefs

○ Cinder volumes, snapshots

○ Neutron networks, ports, subnets, routers

○ Swift* Accounts, Containers, Objects

○ Designate (DNS) Zones, recordsets

mitaka

Improvethe

Notificationsavoid api callbacks

Notifications in OpenStack are spotty

● missing events

● missing data

Search Needs Client Side

HorizonBecause search is interactive

This gives focus and purpose to the

effort to “Angularize” Horizon.

● users are constantly changing

views to manage relationships

● changing views client-side is

FAST

● when I can find any related

thing...and take immediate

action, my experience is FAST

Join in!We love contributors!

[searchlight] on openstack-dev mailing list

#openstack-searchlight on Freenode IRC

http://eavesdrop.openstack.org/#Search_Team_Meeting

https://wiki.openstack.org/wiki/Searchlight