View
220
Download
1
Category
Preview:
Citation preview
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
Recommended