1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335
|
#+TITLE: Introduction to Hyper-V Pre-Planning and Planning
#+AUTHOR: Brian Dewey
#+EMAIL: bdewey@microsoft.com
#+DATE: December 9, 2009
#+DESCRIPTION:
#+KEYWORDS:
#+LANGUAGE: en
#+OPTIONS: H:3 toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:nil
#+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:nil
#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
#+LINK_UP:
#+LINK_HOME:
* DONE Introduction
CLOSED: [2009-12-09 Wed 15:18]
CLOCK: [2009-12-09 Wed 15:00]--[2009-12-09 Wed 15:18] => 0:18
CLOCK: [2009-12-09 Wed 10:02]--[2009-12-09 Wed 10:14] => 0:12
The pre-planning activities for Hyper-V proceeded in three
phases. In the first phase, we identified and wrote down a set of
/business value propositions./ These are things we could pitch to
customers as new value they would get from using Windows 8. To wrap
up phase one, we worked with Mike Neil's team in Windows Server to
rank the business value propositions. This step ensured that COSD
and Windows Server operated from a common, agreed-upon set of
priorities.
For the second phase of pre-planning, we brainstormed all of the
features we would need to implement to deliver on the value
propositions from phase one. We captured a short description of each
potential feature in a one-page spec.
In the final phase of pre-planning, the dev team estimated how much
dev effort would be required to implement each feature.
By the numbers, our pre-planning work generated:
- 19 different value propositions
- 159 one-page specs
- A 770-line spreadsheet containing dev estimates
- 4.5 times the amount of dev work than we can tackle in a single release
Moving from pre-planning to planning, our objective has been to
understand and to shape overall Windows priorities so we can pick
the /right/ 20% of work to commit to for Windows 8.
This document gives an overview of the different pre-planning
activities we did. It provides pointers to the pre-planning
artefacts we produced and shows how we've been able to map our
pre-planning work into planning.
* Business Value Propositions
CLOCK: [2009-12-07 Mon 09:09]--[2009-12-07 Mon 09:50] => 0:41
CLOSED: [2009-12-01 Tue 10:52]
One of the first pre-planning activities we did in Hyper-V was
define a set of /business value propositions/ (BVPs). A business value
proposition is an end-to-end hook that can convince a customer that
Windows 8 is worth buying.
Our BVPs are stored in the [[http://windows/hyper-v/initiatives/Value%20Propositions/Forms/AllItems.aspx][Hyper-V Portal]].
** Anatomy of a BVP
Each BVP followed a simple, one-page template with the following
parts:
- Customer Summary
- Storyboard
- Requirements
- Partner teams
The following sections walk through each section and give an
example from one of our BVPs, [[http://windows/hyper-v/initiatives/Value Propositions/DynamicDatacenter-ValueProp.docx][Resource-Smart Virtualization
Infrastructure]] (also called /Dynamic Datacenter/).
*** Customer Summary
The /customer summary/ section is a one-sentence description of
the customer value proposition, written from the customer's point
of view. Each customer summary starts with the phrase, /I want.../
The purpose of this section is to make sure we can give a concise
description of what we expect the customer to accomplish.
#+BEGIN_QUOTE
/Example:/
I want to add or remove computing resources to company owned
virtualization infrastructure automatically, on-demand in
response to rapidly changing business needs without any loss of
business availability.
#+END_QUOTE
*** Storyboard
To help people understand the customer scenario, the /storyboard/
section walks through the steps the customer would take to get the
new value from Windows 8.
#+BEGIN_QUOTE
/Example:/
Comsco warehouse IT provides access to multitudes of different
workloads including database servers, LOB applications, and
homegrown three-tier distributed applications spread across two
sites. Tim, administrator at Comsco IT, wants to see VM life cycle
management (create, deploy, service, move and destroy) utilizing
their existing tools and want it to be more efficient process than
managing physical servers. Tim wants Microsoft software to
automatically create new VM on server from a pool of physical
servers and deploy workload in the VM when combined criteria of
load balancing and resource utilization he defined are met. While
Tim will continue to monitor real-time usage and Joe, who works in
CIO office, wants historical trending of resource utilization of
CPU, memory, power, storage, network bandwidth, storage bandwidth
and backup bandwidth for selected VMs and workloads across all the
servers. Based on historical trend analysis, Tim receives business
logic requirements from the office of CIO and he defines per VM
multi dimensional policy in Microsoft software to automatically
control resource usage allocation, resource prioritization and
resource move for above resource types. Tim also wants to service
storage hardware without any downtime to running workloads. Tim
wants MS software to freely move workloads between his primary
site and across the town secondary site as needed without any
downtime.
#+END_QUOTE
*** Requirements
This section captures the core requirements for delivering the
customer value. Knowing we would not be able to do everything, we
categorized requirements into those needed for delivering good
value, a better value, and best value. To minimize the
randomization that could come from the bucketing, we identified
the customers who would be satisfied by a given level of value.
#+BEGIN_QUOTE
/Example:/
| Target Level | Customer | Example Requirements |
|--------------+-----------------------------------------+-----------------------------------------------|
| Good | Large/medium enterprises | Storage migration with zero business downtime |
| Better | Early adopters at the Dyanmic I/O model | VM migration for load balancing |
| Best | Hosters | Chargeback infrastructure |
#+END_QUOTE
*** Partner teams
Because BVPs describe end-to-end value, none can be delivered just
from the Hyper-V team. This section notes the partner teams we
would need to reach out to.
#+BEGIN_QUOTE
/Example:/
SCVMM, Failover clustering, Kernel, Intel & AMD
#+END_QUOTE
** BVP Ranking
Working with Mike Neil's team, the Hyper-V trio and PM leads ranked
the BVPs based on the information we'd gathered through CFD
sessions and on the importance of competing with VMWare. The
consensus opinion is stored in a spreadsheet [[http://windows/hyper-v/initiatives/Value Propositions/ValueProposition-BucketTemplate-Master.xlsx][here]].
For each BVP, we also identified the target value level -- would we
aim for good value, better value, or best value?
Here's our ranked BVP list.
| Value Proposition | Customer Statement | Target Bucket |
|----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------|
| Resource-Smart Virtualization Infrastructure | I want to add or remove computing resources to company owned virtualization infrastructure automatically, on-demand in response to rapidly changing business needs without any loss of business availability. | Best |
| Server High Availability | I want to ensure that my server applications are highly available. | Better |
| Server Disaster Recovery | I want to ensure my business can quickly resume operations in the event of a disaster. | Better |
| Platform Extensibility | I want a rich ecosystem so I'm not locked into a single vendor for storage, networking, etc. | Better |
| Hosting | I need to be able to deploy thousands of physical servers into one or more farms dedicated for hosting. Provisioning of virtual machines must integrate fully into my back end network topology. Virtual machines must have strong network isolation. I must be able to monitor, change, charge for and throttle usage dynamically. I must be able to move virtual machines to another server in my farm with little or no downtime. | Better |
| Scale Up | I want to get the maximum utilization from my hardware investment. | Better |
| VDI | I want to control cost by deploying thin desktops and letting employees connect to a completely virtualized desktop. | Better |
| Cloud Integration | I want to be able to dynamically enable movement of workloads between on premise and off premise without changing the operational or application model. | Better |
| Security | I want to enhance the security of my system by making it more difficult for malicious programs to attack my operating system core. | Good |
| Deployment | I want to increase efficiency in managing my datacenter & desktop infrastructure. | Better |
| Green IT | I want to increase energy efficiency in my datacenter infrastructure. | Good |
| Server test/dev | I want to quickly and easily create and test server applications. | Good |
| Appliance Development Model | I want to reduce development costs by shipping a server application in a pre-configured VM. | Good |
| Application Compatibility | I want users to have access to old applications even when I upgrade their desktop operating systems. | Cut |
| Client test/dev | I want to quickly and easily create and test desktop applications | Cut |
| Integration Testing | I want to quickly and easily test new applications and updates before deploying them | Cut |
| Employee-owned hardware | I want to let employees use their own hardware to run corporate applications and connect to the corporate network in a secure way. | Cut |
* DONE One-Page Specs
SCHEDULED: <2009-12-07 Mon> CLOSED: [2009-12-07 Mon 16:39]
CLOCK: [2009-12-07 Mon 16:26]--[2009-12-07 Mon 16:39] => 0:13
Armed with the prioritized list of customer value propositions to
consider for Windows 8, we started work on the next level of detail:
What features would we need to implement to deliver the value
proposition? Two main tasks refined our thinking in this
area. First, we brainstormed all of the features required to deliver
the target level of value in the BVP. Then, to reduce ambiguity, we
wrote a /one page spec/ for each feature. What exactly does
/cross-cluster live migration/ mean? The one-page spec tells
you. The goal of the one page spec was to capture just enough
information that a developer could estimate how expensive the
feature would be to implement. Our one-page spec library is [[http://windows/hyper-v/w8/Specs/Forms/AllItems.aspx][here]].
#+BEGIN_QUOTE
/Example: Cross-cluster live migration/
Key customer scenario: An enterprise is building large scale Hyper-V
based infrastructure to run vast majority of server workloads with
High-Availability is a requirement. Customer builds multiple
clusters for one or more of the following business needs:
# NOTE, for formatting reasons, don't fill the following.
- To keep cluster size to be manageable based on preconceived perception of node failure time is linearly proportional to cluster size,
- Due to increased business need they need to build new cluster once maximum supported cluster size is reached,
- There are departmental clusters and temporarily there is a need to use extra capacity of a cluster when one cluster experiences capacity peaks.
Customer would like ability to live migrate, quick migrate or move
VMs from one cluster to other cluster for above mentioned needs.
The goal is to provide more flexibility in VM mobility space without
cluster as a boundary. Hyper-V needs to perform two operations in a
transaction:
- Live migrate VM from one cluster node to destination cluster node.
- Live migrate VM’s storage from one cluster’s shared storage to another cluster’s shared storage.
If any of the above fails, VM must continue to run on the source
node.
A user should be able to orchestrate live migration through Hyper-V
manager, Failover cluster UI, WMI or Powershell.
Live migration should perform necessary checks to ensure live
migration requirements are met. Some of the examples in addition to
other migration checks are, performing estimation of time to migrate
VM, access to the VM storage and same IP network on destination to
ensure VM will be able to migrate successfully without dropping a
TCP connection. If Hyper-V cannot reliably guaranty retaining TCP
connection live migration should fail and must ensure VM continues
to run on source node.
Administrator should be able to set cluster wide, Hyper-V wide or
per VM policies around allowing or denying live migrating one or
more VMs from one cluster to any particular cluster or any other
cluster.
User experience and workflow of orchestrating live migration within
a cluster or across the cluster site should be the same.
#+END_QUOTE
* DONE Feature SWAGS
CLOSED: [2009-12-09 Wed 08:57]
CLOCK: [2009-12-09 Wed 08:46]--[2009-12-09 Wed 08:57] => 0:11
SCHEDULED: <2009-12-07 Mon>
Using the one-page specs, the dev team estimated the dev time it
would take to implement each feature identified to deliver on the
business value propositions. The estimates are kept in this
[[http://windows/hyper-v/w8/BVP/BVP%20Feature%20Expansion.xlsx][spreadsheet]]. The estimaes are fine-grained. To stretch an analogy,
instead of t-shirt sizes, we've got estimates of the yards of thread
required to make the t-shirt. For each feature we identified in the
BVP process, the dev team estimated how to break apart the work and
estimated the number of weeks of senior, mid-level, and junior dev
time it would take to implement the feature.
The key conclusion from the exercise: Our eyes are *way* bigger than
our wallets. In the BVP process, we identified about five times as
much work as we will be able to deliver in Windows 8.
* DONE Moving From Pre-Planning to Planning
CLOSED: [2009-12-09 Wed 15:20]
CLOCK: [2009-12-09 Wed 09:56]--[2009-12-09 Wed 10:01] => 0:05
CLOCK: [2009-12-09 Wed 09:00]--[2009-12-09 Wed 09:01] => 0:01
Pre-planning identified a significant amount of work we /could/ do
in Windows 8. Our challenge in planning has been to identify the 20%
of the work on our list that best aligns with the overall Windows
vision, so we can commit to this as work we /will/ do for Windows 8.
The business value propositions we defined in pre-planning lined up
well with planning themes & subthemes. As we moved from pre-planning
to planning, we narrowed down the list of BVPs that we focused on,
and we worked through the established theme & subtheme
planning. Through the Windows planning process, we have been able to
work with our partner teams to find alignment on priorities.
The following table shows how we mapped our BVPs to planning themes
for the planning process.
| BVP | Planning Theme (Subtheme) |
|--------------------------------------------------------------------------+----------------------------------------------------------------------------------------|
| Resource-Smart Virtualization Infrastructure, Hosting, Cloud Integration | Infrastructure Scaled for SMB, Enterprise, & Service Providers (Hosted Private Clouds) |
| Server High Availability | Continuous Availability (Contiuous Availability) |
| Server Disaster Recovery | Continuous Availability (Business Continuity) |
| Platform Extensibility | Big Bet: Scale for Datacenters |
| Scale Up, Green IT | Infrastructure Scaled... (Leverage the Hardware Ecosystem) |
| VDI | Work Anywhere (Centralized Desktops) |
| Deployment | Management (Solution Deployment) |
| Server test/dev, Client test/dev | Streamline the developer experience *or* Desktop for enthusiasts |
| Appliance Development Model | Infrastructure Scaled... (Virtual Appliance for Partners) |
* TODO Conclusion
Because of our pre-planning work, we've had good alignment between
COSD (and now Windows Core) and Windows Server on overall Hyper-V
priorities and directions. The work on estimating feature costs has
enabled us to set realistic expectations on the scope of work we can
deliver in Windows 8. Taken together, our pre-planning work should
have made Hyper-V a more predictable and transparent partner team to
work with in the planning process.
|