【桌面虚拟化】之四设计方法

作者:范军 (Frank Fan) 新浪微博:@frankfan7

桌面虚拟化项目相对涉及的方面较多,遵循合理的设计方法,能让你考虑到影响方案质量的众多重要因素,制定适当的项目计划,并和相关人员展开有效的讨论。

下面的七个步骤,希望能让你事半功倍。

【桌面虚拟化】之四设计方法





深入了解动机和公司战略

在用户对桌面虚拟化有兴趣的时候,我往往问的第一个问题就是,是什么因素促使你对此感兴趣?

可能回答比如有:我们希望通过此方案降低硬件购买成本或者维护成本;希望远程随时随地访问桌面及应用;我们有鼓励员工自带访问设备的计划(BYOD);我们目前的桌面环境不能满足需求等等。

桌面虚拟化的优点很多,但不一定适合所有的用户。而且用户所面临的问题也可能有其他更适合的解决方案。

同时,还应该把眼光放远一点,了解此方案可能在公司整体战略上有什么意义。比如我为一家大型银行层设计过桌面虚拟化方案。他们的办公场所遍及全球,频频兼并其他小型的金融机构。能保证所有员工快速便捷访问一些应用是对他们的生意有至关重要的影响。桌面虚拟化可以很有效的满足他们的战略需求。

把用户的动机挖掘清楚了,才能很好帮助他们创建Business Case来获得高层的支持。知道用户最在意的是什么方面,从而在设计和实施中明确一些必须遵循的原则和优先级,最大程度满足用户的关键需求。

二评估当前用户环境

了解你的目标用户是谁?他们目前的问题是什么?他们每天运行的应用是什么?怎么才能让他们满意?同时,虚拟化项目不是孤立的方案。成功的项目必须和公司已有的系统很好的整合。

用户分析:

大概对所有用户进行分类,分类方法有多种。比如根据部门划分,开发部门的需求和市场部门的需求很不同;根据用户所运行的应用划分,Taskworker, power worker 等等;根据用户希望如何访问桌面及应用,有的只是通过公司内网,有的需要通过专线或者Internet

选择最适合该用户情况的分类方法,可以针对每类用户定制合适的方案。

应用分析:

桌面虚拟化仅仅是帮助用户访问应用的手段。必须深入了解应用,评估虚拟化能否满足该应用的功能上和性能上的需求。目前用户如何管理DesktopOS Image?如何部署应用并升级?是否考虑应用虚拟化(ApplicationVirtualisation)?

Liquidware Labs lakeside 都有相应产品对用户已有环境进行评估。

其他依赖的系统:

该方案是完全自给自足,还是必须依赖其他已有的系统,比如Active Directory,Database, SCCM,IDS, Firewall, Load Balancer 

三分析各厂商方案

在充分了解客户需求之后,选择厂商方案来满足特定的需求。没有最好的方案,只有最适合的方案。

大概从以下几个方面。

厂商关系和成本:

是否用户已经使用某厂商的产品,并积累了较好的关系。是否有可能协商更好的价格。选择合适的产品打包方案。员工是否已积累了某厂商产品的技能?

技术:

FunctionalNon-Functional等各方面进行大致评估。

设计方案

需要特别注重设计方案阶段。一个成功的设计虽然不能完全保证整个项目的成功,当一个失败的设计注定你的项目不会有好的结果。我个人认为在设计阶段有下面的重要方面:

充分沟通设计并不仅仅是乙方架构师的职责,尽量和客户各个相关部门进行充分的沟通,让相关人员参与ArchitectureDecision的讨论,为什么这个决定很关键,它会有什么一系列的影响,我们建议这么办的原因是什么?

均衡考虑设计有时并不能完全从技术上考虑。还有考虑到成本,管理等一系列的方面。这就是为什么了解客户动机那么重要了。它确定了设计原则和优先级,帮助你在考量各个可能是有据可循。比如我的一个用户对高可用性特别强调。我们建议两个双活的数据中心,在一处有服务中断时,用户可以无缝切换至另一处。这明显对预算紧张,但对可靠性要求不太高的客户不合适。他们可能更在意一台服务器能最多运行多少虚拟桌面。

可追溯性(traceability我们的每一个重要的设计决定,应该能够对应客户的一个或多个需求。避免为了实现某项特定技术,而不必要的增加成本,让方案复杂化。同时每一个需求,也有相应的设计决定对应,避免遗漏。

   Proof  Of Concept 

通常建议在决定大型桌面虚拟化项目之前进行概念验证。选择一组有代表性的用户,并针对其需求快速实施一个小规模的方案。评估用户体验,吸取成功经验和关注需要提高的方面。

实施方案

实施时首先要有合理的项目计划,并根据依赖程度、优先级、人员等合理安排任务。常见的情况是由于时间紧,实施不能完全依照设计进行,造成很多后续的麻烦。

项目移交和运维

成功的桌面虚拟化项目,没有完成时,永远都是进行时。实施团队必须帮助运维团队制定完善的运维计划,来应对日常维护,扩容和新的需求。


【桌面虚拟化】之四设计方法

上一篇:OSX: ARD Admin的降级


下一篇:冒泡排序(Bubble Sort)原理及Java实现