searchlight + horizon - mitaka march 2016

Download Searchlight  + Horizon - Mitaka march 2016

Post on 19-Jan-2017




1 download

Embed Size (px)


  • HP Enterprise Searchlight PTL

    Horizon CoreIRC: TravT

    Travis Tripp

    Searchlight+ Horizon

    Image source:

    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


  • 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 Bobs 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


  • We dont 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


  • 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 dont all have to implement it

    we also dont 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


    & other clients

    Action Requests

    List and Query Requests


    concept flow

  • API

    Use Search Service

    Search Service


    Use Standard API

    Query / List Resources

    Display Results

    Result Objects

    Searchlight: Use When Its TherePer Region Endpoint Deployment (currently)

  • Elasticsearch Cluster

    ES Node

    ES Node

    ES Node



    API Client

    OSLO Messaging or Direct injection

    Searchlight Listener Service

    Searchlight Listener Service

    Data Enrichment

    Searchlight API


    Searchlight API


    Data Protection

    Load Balancer

    Cloud Services

    Nova Glance

    Neutron Cinder

    Designate Other

    Deployment Components


  • 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


    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


  • 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