Project

General

Profile

MergeHosts » History » Revision 9

Revision 8 (Kyle Baker, 07/09/2015 03:46 PM) → Revision 9/11 (Kyle Baker, 07/09/2015 03:49 PM)

h1. Merge Hosts 

 h2. Summary/Goals 

 Merge Hosts and Content Hosts into a single unified presentation. The unification includes all aspects of displayed information and user initiated actions. The primary objective is designing hosts presentation and workflows that will accommodate user needs in a more efficiently and reflect user needs. 

 h2. Targeted Persona 

 *System Engineer* 
 Responsible for configuring all of the infrastructure to provision hosts - which includes reprovisioning based on new builds 
 * http://projects.theforeman.org/projects/katello/wiki/Personas-SystemEngineer 

 *System Administrator* 
 Responsible for deploying hosts to their portion of the companies managed infrastructure. Hosts are built based on the engineers configurations. 
 * http://projects.theforeman.org/projects/katello/wiki/Personas-SystemAdministrator 

 *Systems User* 
 (Both System Engineer & System Administrator roles) 

 h2. Status 

 h3. Use Cases 

 Owner - David Caplan, Kyle Baker 
 Status - Done In Progress 
 Expected Delivery - 5/16/2015 3/16/2015 
 Blockers - None 

 h3. Requirements  

 Owner - David Caplan & Kyle Baker Caplan, Mike Mccune, Ohad Levy 
 Status - Done Not Started 
 Expected Delivery - 5/16/2015 TBD 
 Blockers - None Waiting on User Stories 

 h3. Design Wireframes 

 Owner - Kyle Baker 
 Status - Done Not Started 
 Blockers - None Waiting on User Stories & Requirements 
 Design Assets Below Last updated TBD - Link to wireframes 

 h3. Development Stories 

 Owner - Justin Sherrill & Team Mike Mccune, Ohad Levy 
 Status - In Progress Started based on previous efforts 
 http://projects.theforeman.org/issues/8161 Expected Delivery - N/A 
 Blockers - Waiting on Wireframes 

 h2. Documentation 

 h3. Assumptions 

 * Host entitlement status is a priority 
 * Context is not important for hosts 

 h3. Unknowns 

 * Need a single place where users can view host status and take action on hosts. 
 * The current process of provisioning a new host does not support the administrator role. Ideally the UI would hide all of the deeper configuration options and surface the options which have been pre configured by the engineer. Users have complained that the process is too complex when in reality the complexity simply exposed to the incorrect user. 
 * Pre-provisioning setup should include an option to build a boot ISO. 

 h3. Related Features 

 * Enabling Boot ISO - Feature coming soon 
 * Host Collections - Feature coming soon 

 h3. Use Cases 

 *Story 1 Host Monitoring* 
 A Systems User (System Engineer & System Administrator roles) would like to have a single place browse and understand the entirety of Linux hosts. *(1)* They are interested in finding out the status of a host or group of hosts in the infrastructure. *(2)* If there is an issue or scheduled update the Systems User needs the host's location and *(3)* to know the hosts software/business purpose. 

 * *(1) What is the status of this host or grouping of hosts?* 
 ** 1. Configuration Status  
 ** 2. Last Report or Check In 
 ** 3. Available Errata 
 ** 4. Periodically, Subscription Status 
 * *(2) Where is this host running?* 
 ** Capsule Information 
 ** Organization 
 ** Location 
 ** Environment 
 ** Host Group - For networking information 
 ** Host Collection 
 * *(3) What is this host running? Is it performing a critical function?* 
 ** Software Installed - OS, Errata 
 ** Puppet Facts 
 ** Content View Version 

 *Story 2 Host Detail* 
 A Systems User (System Engineer & System Administrator roles), During the identification/troubleshooting/updating process they need to examine the exact specs of a host to determine the best course of action. 
 * *Surface level Information* 
 ** OS, mac(s), ip(s), serial number, environment, capsule, host-group (puppet module), organization and location, host collections  
 * *Drill down* 
 ** hardware, software, networking, config, events, template(s), meta information, hypervisor 

 *Story 3 Host Actions* 
 A Systems User (System Engineer & System Administrator roles), During the troubleshooting/updating process I have identified which host or group of hosts I would like to take actions against. 
 Add or remove errata or packages 
 * Change the location, organization, environment association 
 * Change the host-group association 
 * Change the host-collections association 
 * Change the subscription status 
 * Change puppet environment association 
 * Change compute resource - If deployed on compute resource yet 

 *Story 4 Create New Host*  
 *System Engineer* 
 When new software is released we define builds in the form of requirements/standards. We then present them to stakeholders. We then use the Katello/Foreman workflow process to build a deployable kickstart file. This file is used by the system administrator to stand up a machine. 
 * This infrastructure is preconfigured by the System Engineer before the host creation process 
 ** Organization, Location, Environment, etc. 
 ** Manage subscriptions and entitled content 
 ** Create, publish, promote Content View  
 ** Create Host Groups 
 *** Set up matcher parametized values when setting up puppet classes 
 ** Create Activation keys 
 ** Add networking services 

 *System Administrator* 
 As a System Administrator I want to easily provision a new host leveraging authorized configuration pre-created by the System Engineer. 
 * Place in Infrastructure (Location, Environment, Capsule) 
 * Choose Host-group 
 ** Assign networking services if not pre-configured 
 ** Modify parametized values for puppet classes 
 * Choose Activation Key - If applicable 
 * Choose Compute Resource 
 * Future - Clone an existing host. While creating a new host there should be a button to select a host I want to clone and as a second where I can adapt the pre-filled configurations (e.g. CV, HG, etc.) 

 h3. Future 

 * These features should be added as their own feature with their own specific user stories. 
 * Comparing hosts 
 * Dynamic host collections 
 * Bookmark evolution 
 ** Use search and bookmark functionality hosts to create a grouping 
 ** Notes: Do the search and save as host collection 
 ** See the detail of the search (new collection) 
 ** Have search dynamically generate new list every time it runs 
 ** View logs to view what changed 
 ** Term 'Bookmark' is not appropriate there 
 ** Bulk operations against hosts without managing another objects 
 * Interlinking host objects (clicking a CV shows all the host with that CV)    then bookmarking 
 * Clone existing host 
 ** Clone an existing system. While creating a new host there should be a button to select a system I want to clone and as a second where I can adapt the pre-filled configurations (e.g. CV, HG, etc.) 
 * History 
 ** As a sysadmin I want to access from a single page the history of events that occurred for a specific system which may include: 
 ** Puppet reports (+ be able to filter for drifts to easily identify changes on the system) 
 ** Remote tasks execution results 
 ** OpenSCAP compliance tests results 
 ** Software management tasks (software installation, errata apply, etc...) 
 ** DH: for each action inside the history I want to see a rollback of this particular action similar to Sat5. 

 h3. Development Stories 

 http://projects.theforeman.org/issues/8161 

 h2. Design 

 h3. Wireframes 

 Read though the notes and rational in the wireframes below. 

 Latest Version: 2015-07-09 
 * https://dl.dropboxusercontent.com/u/5892944/Merged-Hosts-2015-07-09.pdf 

 h3. Prototype 

 * http://5uycxh.axshare.com/#p=create-host-blank&c=1 

 I have created a clickable prototype for validation testing. Please note that the prototype is just simulation of how the UI should work and not all areas are actionable. See the notes guide below on how to navigate the prototype. Use Firefox for the best results. 

 * Clickable workflow for the prototype: 
 ** Click Create Host button to launch the new host workflow. 
 ** Fill out any of the fields. Selecting a Host Group will populate the networking fields.  
 ** Advanced Host Settings will expose more content 
 ** Click Create Host when you are finished 
 ** Click the first row in the table - testhost.idm.lab.bos.redhat… to view this hosts details 
 ** You can click Status, Details, Content, Configuration tabs to view additional content. 

 h3. Testing Validation 

 As part of the Customer Support and Engagement booth the UX team performed usability tests on this interaction. You can era though the whole test plan and script below [1]. 

 * [1] https://docs.google.com/a/redhat.com/document/d/1iRzw3J-ZSitsuEBwP6lgXwCIjEyfSuswYoaXO3i2pYM/edit?usp=sharing 

 * With the testing we were testing to answer these questions: 
 ** Will this interface enable System Developers to effectively perform the following tasks? 
 * Updating a Host 
 ** Troubleshooting a Host during [update?] 
 * Defining a build 
 ** Will this interface enable Sysadmin users to effectively perform the following tasks? 
 * Provisioning a Host 
 * Updating a Host 
 ** Troubleshooting a Host during [update?] 
 ** Will [Sysadmin] users get the impression that the host management process is less complex? 
 ** Will existing users have trouble adjusting to the new UI design? 
 ** Can new users perform the tasks successfully with this UI? 

 *Test Plan* 
 We can only expect to have about 10 minutes with each user. This is what will need to happen in that timeframe: 

 Path A For existing users: 
 1 min - Identify what persona group they belong to  
 9 min - Usability test for primary use cases 
 5 min - Additional talking points  

 Path B For non-users: 
 1 min - Identify what persona group they would potentially belong to (if any) 
 9 min - Usability test for primary use cases? (7 min) 
 Introduction 

 *Participants* 

 The test was run on 16+ users (3-5 additional users went undocumented, but reported no issues) 
 * Of the 16+ users they had experience with one or more: 
 ** Satellite 5.+ 
 ** Satellite 6.0 
 ** Spacewalk 
 ** Foreman  
 ** Puppet 3&4 

 * Participants roles include: 
 ** Satellite 5 Customers 
 ** Satellite 6 Beta Testers 
 ** Foreman Community Members 
 ** RHEL Only Customers 
 ** Red Hat Technical Account Managers 
 ** Red Hat Solution Architects 
 ** Red Hat Engineers 

 *Testing Results Overview* 
 All participants were able to successfully complete all tasks. On 2 occasions the user required guidance on finding the location in the Host detail. All participant feedback has been incorporated in the wireframe and prototypes above. 

 * Host Creation Rating: 
 ** New Host creation score average rating: 4 Easy 
 ** Old Host creation score average rating: 2 Difficult 

 * Host Management Rating: 
 ** New Host management score average rating: 5 Easy 
 ** Old Host management score average rating: 3 Difficult