Project

General

Profile

MergeHosts » History » Version 9

Kyle Baker, 07/09/2015 03:49 PM

1 2 Kyle Baker
h1. Merge Hosts
2
3
h2. Summary/Goals
4
5
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.
6
7
h2. Targeted Persona
8
9 3 Kyle Baker
*System Engineer*
10
Responsible for configuring all of the infrastructure to provision hosts - which includes reprovisioning based on new builds
11
* http://projects.theforeman.org/projects/katello/wiki/Personas-SystemEngineer
12 1 Kyle Baker
13 3 Kyle Baker
*System Administrator*
14
Responsible for deploying hosts to their portion of the companies managed infrastructure. Hosts are built based on the engineers configurations.
15
* http://projects.theforeman.org/projects/katello/wiki/Personas-SystemAdministrator
16
17
*Systems User*
18
(Both System Engineer & System Administrator roles)
19
20 2 Kyle Baker
h2. Status
21
22
h3. Use Cases
23
24
Owner - David Caplan, Kyle Baker
25 9 Kyle Baker
Status - Done
26
Expected Delivery - 5/16/2015
27 2 Kyle Baker
Blockers - None
28
29
h3. Requirements 
30
31 9 Kyle Baker
Owner - David Caplan & Kyle Baker
32
Status - Done
33
Expected Delivery - 5/16/2015
34
Blockers - None
35 2 Kyle Baker
36 9 Kyle Baker
h3. Design
37 2 Kyle Baker
38
Owner - Kyle Baker
39 9 Kyle Baker
Status - Done
40
Blockers - None
41
Design Assets Below
42 2 Kyle Baker
43
h3. Development Stories
44
45 9 Kyle Baker
Owner - Justin Sherrill & Team
46
Status - In Progress
47
http://projects.theforeman.org/issues/8161
48 2 Kyle Baker
49
h2. Documentation
50
51
h3. Assumptions
52
53
* Host entitlement status is a priority
54
* Context is not important for hosts
55
56
h3. Unknowns
57
58
* Need a single place where users can view host status and take action on hosts.
59
* 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.
60
* Pre-provisioning setup should include an option to build a boot ISO.
61
62
h3. Related Features
63
64
* Enabling Boot ISO - Feature coming soon
65
* Host Collections - Feature coming soon
66
67
h3. Use Cases
68
69
*Story 1 Host Monitoring*
70
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.
71
72
* *(1) What is the status of this host or grouping of hosts?*
73
** 1. Configuration Status 
74
** 2. Last Report or Check In
75
** 3. Available Errata
76
** 4. Periodically, Subscription Status
77
* *(2) Where is this host running?*
78
** Capsule Information
79
** Organization
80
** Location
81
** Environment
82
** Host Group - For networking information
83
** Host Collection
84
* *(3) What is this host running? Is it performing a critical function?*
85
** Software Installed - OS, Errata
86
** Puppet Facts
87
** Content View Version
88
89
*Story 2 Host Detail*
90
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.
91
* *Surface level Information*
92 4 Kyle Baker
** OS, mac(s), ip(s), serial number, environment, capsule, host-group (puppet module), organization and location, host collections 
93 2 Kyle Baker
* *Drill down*
94 4 Kyle Baker
** hardware, software, networking, config, events, template(s), meta information, hypervisor
95 2 Kyle Baker
96
*Story 3 Host Actions*
97
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.
98
Add or remove errata or packages
99
* Change the location, organization, environment association
100
* Change the host-group association
101
* Change the host-collections association
102 1 Kyle Baker
* Change the subscription status
103 2 Kyle Baker
* Change puppet environment association
104 4 Kyle Baker
* Change compute resource - If deployed on compute resource yet
105 2 Kyle Baker
106
*Story 4 Create New Host* 
107
*System Engineer*
108
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.
109 5 Kyle Baker
* This infrastructure is preconfigured by the System Engineer before the host creation process
110 2 Kyle Baker
** Organization, Location, Environment, etc.
111 1 Kyle Baker
** Manage subscriptions and entitled content
112 5 Kyle Baker
** Create, publish, promote Content View 
113 2 Kyle Baker
** Create Host Groups
114 7 Kyle Baker
*** Set up matcher parametized values when setting up puppet classes
115 2 Kyle Baker
** Create Activation keys
116
** Add networking services
117 3 Kyle Baker
118 2 Kyle Baker
*System Administrator*
119 6 Kyle Baker
As a System Administrator I want to easily provision a new host leveraging authorized configuration pre-created by the System Engineer.
120 1 Kyle Baker
* Place in Infrastructure (Location, Environment, Capsule)
121 7 Kyle Baker
* Choose Host-group
122
** Assign networking services if not pre-configured
123
** Modify parametized values for puppet classes
124
* Choose Activation Key - If applicable
125
* Choose Compute Resource
126
* 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.)
127 2 Kyle Baker
128
h3. Future
129
130
* These features should be added as their own feature with their own specific user stories.
131 6 Kyle Baker
* Comparing hosts
132
* Dynamic host collections
133
* Bookmark evolution
134 2 Kyle Baker
** Use search and bookmark functionality hosts to create a grouping
135
** Notes: Do the search and save as host collection
136
** See the detail of the search (new collection)
137
** Have search dynamically generate new list every time it runs
138
** View logs to view what changed
139
** Term 'Bookmark' is not appropriate there
140
** Bulk operations against hosts without managing another objects
141
* Interlinking host objects (clicking a CV shows all the host with that CV)  then bookmarking
142
* Clone existing host
143 1 Kyle Baker
** 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.)
144 2 Kyle Baker
* History
145
** As a sysadmin I want to access from a single page the history of events that occurred for a specific system which may include:
146
** Puppet reports (+ be able to filter for drifts to easily identify changes on the system)
147
** Remote tasks execution results
148 7 Kyle Baker
** OpenSCAP compliance tests results
149 2 Kyle Baker
** Software management tasks (software installation, errata apply, etc...)
150
** DH: for each action inside the history I want to see a rollback of this particular action similar to Sat5.
151
152 1 Kyle Baker
h3. Development Stories
153
154
http://projects.theforeman.org/issues/8161
155 8 Kyle Baker
156
h2. Design
157
158
h3. Wireframes
159
160
Read though the notes and rational in the wireframes below.
161
162
Latest Version: 2015-07-09
163
* https://dl.dropboxusercontent.com/u/5892944/Merged-Hosts-2015-07-09.pdf
164
165
h3. Prototype
166
167
* http://5uycxh.axshare.com/#p=create-host-blank&c=1
168
169
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.
170
171
* Clickable workflow for the prototype:
172
** Click Create Host button to launch the new host workflow.
173
** Fill out any of the fields. Selecting a Host Group will populate the networking fields. 
174
** Advanced Host Settings will expose more content
175
** Click Create Host when you are finished
176
** Click the first row in the table - testhost.idm.lab.bos.redhat… to view this hosts details
177
** You can click Status, Details, Content, Configuration tabs to view additional content.
178
179
h3. Testing Validation
180
181
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].
182
183
* [1] https://docs.google.com/a/redhat.com/document/d/1iRzw3J-ZSitsuEBwP6lgXwCIjEyfSuswYoaXO3i2pYM/edit?usp=sharing
184
185
* With the testing we were testing to answer these questions:
186
** Will this interface enable System Developers to effectively perform the following tasks?
187
* Updating a Host
188
** Troubleshooting a Host during [update?]
189
* Defining a build
190
** Will this interface enable Sysadmin users to effectively perform the following tasks?
191
* Provisioning a Host
192
* Updating a Host
193
** Troubleshooting a Host during [update?]
194
** Will [Sysadmin] users get the impression that the host management process is less complex?
195
** Will existing users have trouble adjusting to the new UI design?
196
** Can new users perform the tasks successfully with this UI?
197
198
*Test Plan*
199
We can only expect to have about 10 minutes with each user. This is what will need to happen in that timeframe:
200
201
Path A For existing users:
202
1 min - Identify what persona group they belong to 
203
9 min - Usability test for primary use cases
204
5 min - Additional talking points 
205
206
Path B For non-users:
207
1 min - Identify what persona group they would potentially belong to (if any)
208
9 min - Usability test for primary use cases? (7 min)
209
Introduction
210
211
*Participants*
212
213
The test was run on 16+ users (3-5 additional users went undocumented, but reported no issues)
214
* Of the 16+ users they had experience with one or more:
215
** Satellite 5.+
216
** Satellite 6.0
217
** Spacewalk
218
** Foreman 
219
** Puppet 3&4
220
221
* Participants roles include:
222
** Satellite 5 Customers
223
** Satellite 6 Beta Testers
224
** Foreman Community Members
225
** RHEL Only Customers
226
** Red Hat Technical Account Managers
227
** Red Hat Solution Architects
228
** Red Hat Engineers
229
230
*Testing Results Overview*
231
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.
232
233
* Host Creation Rating:
234
** New Host creation score average rating: 4 Easy
235
** Old Host creation score average rating: 2 Difficult
236
237
* Host Management Rating:
238
** New Host management score average rating: 5 Easy
239
** Old Host management score average rating: 3 Difficult