论道WP(三):应用程序栏
作者通过具体翔实的例子介绍了Winodws Phone 7中应用程序栏的使用方式。
该内容已经被标记书签!
标记书签错误,请重试!

作者 Mak King 译者 沙晓兰 发布于 2009年4月29日
Mak King的这篇文章描述了服务器整合之外的高级虚拟化应用,证实了虚拟化背后的技术和好处不仅仅局限于老生常谈的服务器整合。此外(绝对不是凑热闹),Mark的文章描述的方法显然是“绿色计算”。
如果你在实现这个或者类似的开发环境时需要Mark的建议或者帮助,请联系info@ShiftMETHOD.com。
近年在IT界工作的人肯定对虚拟化多少都有些了解。业界诸多关于虚拟技术多么无可比拟的宣传,让人开始不耐烦起来。众多粉丝甚至将其追捧为IT界过去十几年里的至宝。可以肯定,虚拟技术的应用节省了设备,节省了资金,基本上实现了它众所周知的功能。然而,虚拟技术的应用难道仅此而已?实现虚拟化以后究竟能得到怎样的好处?直到我所在的NYCE Payments Network,LCC——Metavante子公司——的开发部门实现虚拟化时,我才真正体会到虚拟在现实开发中的意义。我们开发的电子付费网络连接了国内8900多万银行卡、200多万台ATM机和出售点,消费者因此可以在任何时候任何地点安全、实时地访问自己的帐户。因此,系统的可用时间、依赖性和扩展性都是我们在实施基础构架时必须考虑的核心问题。
在IT界工作的12年里,我觉得自己在应用新技术解决业务问题方面有相当丰富的经验。当然,一直尽量采用最新的技术来开发充满了挑战,应用虚拟化也不例外。尽管NYCE在2001年就安装了虚拟系统,但我个人在虚拟技术方面的经验仍然局限于在自己电脑上尝试安装几个不同的Linux系统,直到去年的一个目录服务整合项目,我才开始采用VMWare ESX结合本地存储介质(基本上是以一个服务器和大量硬盘为基础提供VM存储,而不采用SAN)把3个陈旧的物理服务器整合到单个硬件设备上。这样的手法实在好极了!不仅节省了大量磁盘空间,还摆脱了旧设备,也不再需要很多数据线连接各个设备。在整合项目中采用VMware,证明了虚拟机在小范围内的高效。
在目录服务整合项目之后,我把注意转移到了下一个VMware实现上——开发。
在开发环境中工作或者支持开发环境的工作都有很多挑战,这些挑战在产品数据中心很少遇到。首先,一起工作的都是一些对技术了如指掌的技术人员,所以如果环境上有什么不对劲,那就是真的不对劲了,不是什么小事。其次,开发中会修改很多地方,这些修改都应当对项目起推动作用。我工作的大部分内容就是支持开发人员,满足他们的开发环境的需求,包括维护研发实验室、一些产品设备和LAN。实验室当然是最难维护的一个。其中涉及到包括从PC类设备到 workstation,再到连接了大量硬件的服务器等各种设备。这些设备都有不同的内存大小,处理能力及磁盘空间,还各自有各自的可避免电源功率波动的 UPS。除此之外,它们所连接的硬件也都各不相同,驱动器兼容性的先后次序问题、BIOS升级问题,还有对应用兼容性提供支持的要求更是增加了保证开发环境的一致、可依赖和易管理的难度。另外,每次测试某个特定应用,我们往往会被要求采办新硬件(当然这些硬件往往跟什么都不匹配),或者是增补已有设备,但升级BIOS来支持新OS使得这些举措非常麻烦。
将一个原本建立在独立服务器设备基础上的实验室重新设计为采用VMware Infrastructure和SAN的构架,这要求一个完全不同的思维方式。转移到这个新构架上来可以避免独立服务器的各种限制。实验室因此成为一个联合资源池,我们可以动态使用这些资源,可以通过对资源池定义一系列的规则来重新按需部署资源和大量设备。高度访问性和分布式资源调度器贯彻于整个设计过程,而不是单独的、空头支票似的特性。这样的解决方案学起来都相当容易!事实证明,前面提到的顾虑仍然阻碍了很多虚拟服务器的部署(我最近看到一个名为高级虚拟管理的视频,作者是VP and Service Director Data Center Strategies,Burton Group的Richard Jones,他在这个视频中说虚拟服务器的实现,在环境中部署了高度访问性的案例不到10%)。大部分实现都局限于服务器整合,往往是一个物理服务器对应移植到一个虚拟服务器,在同一台机器上寄宿多个虚拟服务器。这样做无疑可以清理数据中心的老机器,但同时又引进了一个单点失败的隐患,一旦宿主机器当掉,会丢失所有虚拟服务器数据。
在开启三个VMware主机服务器(预载ESX3.5)、SAN,插上fiber cable之后,我们就可以开始部署了。安装、配置设备很直接,这中间我只用了一个APC Symmetra中央处理器。我发现fiber cable比CAT 5线缆麻烦。设备运行起来以后,就可以开始配置环境了。
虚拟设施客户(Virtual Infrastructure Client - VIC)用来管理、配置VM环境。在安静明亮的小隔间里,用我台式机上的客户端工作,比起之前要在嗡嗡作响的实验室里呆上很多天来要舒适得多。可能你不相信,在嘈杂的实验室里最好的耳机也只能过滤掉风扇的噪声。VIC非常直观,能够构建集群、模板、服务器、虚拟交换机以及HA、DRS参数的配置。我在桌面上保留了几个VIC的快捷图标。我倾向于把3个VMware主机配置到同一个集群里,把所有资源放到根资源池中,而不是由应用或其它准则来分配。整个设施构架修改起来很轻松,不费吹灰之力。这样一来,我们可以随意尝试多种配置,直到找到最适合的为止。一旦确定新环境配置,就该动手把物理服务器移植到虚拟服务器上。我在更新现有环境的过程中结合了Converter(P2V)和服务器模板。当然,在移植到虚拟环境之前,我对所有机器都做了备份,总共占了满满一磁带,以防万一。这只是一些小绊脚石,尤其是在Windows 2000 Server设备上使用Converter,但这些都不难处理。有时候还需要从头创建全新的VM,然后复制数据和应用,虽然有点麻烦,但好处是可以在创建和复制过程中清理服务器上的内容。
在实现VMware之前,我们研发实验室的部分构架如下图所示。显然,用来连接所有设备的线缆就需要很多管理,很多workstation也没有足够的存储介质。

我们在某些部分安装了VMware、把物理服务器转换到虚拟服务器(P2V),又在某些情况下用VM来替代物理服务器,之后,实验室现有构架如下图所示。

现在实验室有了更多的冗余能力,配置了高可用性,每个服务器的资源都不再是硬性绑定到物理硬件资源上。通过将三个主机服务器的资源组成池,虚拟机可以动态更新各自所需资源。另外,由于通过远程客户端来访问虚拟机,我甚至可以同时开着4个LCD显示屏监控。总体上,这一实现将实验室设备削减了85%。实验室也没有以前那么热,都不需要开什么空调。
在集群配置了高可用性之后,让我们来好看看它是不是真有传闻说的那么好。
整个环境中,一个集群下有3个主机(A、B、C),运行有12个VM。有11个VM通过VMotion迁移到了主机B和C,而主机A上单运行一个 Windows 2003 Server。然后我做了件通常情况下极为糟糕的事情 —— 拔掉主机A的电源。按计划,VMotion HA应该可以检测到主机A当机了,然后在其它运行的主机上重启受影响的VM。这究竟行不行呢?事实证明,两分钟后,主机A上的VM在主机B上重启运行了。接着,我重复了实验,在主机A上运行Windows 2000 Server。结果也一样,不到两分钟的时间,VM就在另一个主机上重启了。在确认了HA的这个功能之后,我才把主机A的电源重新插上,恢复集群原先的冗余,再通过VMotion把VM恢复到早先的主机上。测试结果更加巩固了我在开发环境中采用VMware的信心。
实验室安装运行VMware已经有几个月了,VMware的优点逐渐明显起来。以下是比较明显的几点:
NYCE的开发环境现在已经迁移到VMware,我很高兴,因为这个开发环境很灵活。我们可以很快部署资源服务器,本来需要好几个星期,现在就几分钟就能搞定。VMotion配合HA和DRS的使用,在保证环境全天候运行的前提下提高了可用时间和可信度。商务方面对此也很高兴,因为这一方案削减了现场维护和支持开销,从原先多台机器的使用减少到目前的三台。总之,这对我来说是个非常积极、有益的经验。我很期待在公司其他环境下使用VMware。
Mak King是NYCE Payments Network,LLC的高级商业系统工程师,他期待着你的评价。他的Email地址是:akamak at gmail dot com。
本文中的信息、观点仅属于作者,不代表NYCE Payments Network,LLC公司的研发、观点。该公司对本文内容不承担任何责任,作者对本文负全责。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。
枪手是原作者,而不是InfoQ的翻译者。
根据其部署得出的4个优点有夸大嫌疑。
还有一些缺点没列出来,比如说:“原先13台各不相同的机器,现在只要3台同样的机器”,原来13台机器能提供的服务由现在的3台机器来提供,显然服务速度、服务质量大大降低,3台机器满负荷或超负荷运转,寿命也会下降。......
因为对虚拟机来说,微软的VPC和VirtualBox都是免费的
根本不需要用付费的VMWare。
虚拟机用来部署本身就是好的,错的在于用的产品。
ESXi也是免费的
原来13台机器能提供的服务由现在的3台机器来提供,显然服务速度、服务质量大大降低,3台机器满负荷或超负荷运转,寿命也会下降。......
作者说这个项目是建立开发试验环境,我想这些机器是用来进行开发测试的,不存在服务速度和质量问题。现在的服务器3台机器带13个虚拟机负荷不成问题,我们一台服务器带了10多台虚拟机。寿命就算下降也没有问题,节省出来的开支可以购置新服务器了,而且服务器损坏与否对虚拟机没有影响。
看来您没有作为数据中心管理的经验,目前的情况看vmware是绝对的领先于其他的实现,当然只是目前,这个领域在一两年内一定会发生重大的变化,KVM和VPC也许会赶上来,但目前如果你实施或测试过上面那样的环境的话,你就不会提到VPC和VirtualBox了。
总之我赞同作者的观点,不管你如何看,虚拟化会很快的占领数据中心,当然不会完全占领,但会一定会大面积占领。
我的重点是它推荐了VMware这个需要花钱的产品,并未反对用虚拟化。
虚拟化搭建测试环境早就是未来的趋势了,只是如果我的产品仅仅用在windows上,我有什么必要非得买VMware的产品呢,更何况VMware的免费产品功能受限,很难用于工作环境。VPC是微软2005年的产品,现在的产品hyper-v更强大了!
你的言论倒更像枪手,呵呵。开个玩笑。
问题在于,WINDOWS本身可不便宜。
VMware的ESXi是免费的,功能上比HyperV Server(不是带有HyperV的Windows Server)要好一些,后者同样是免费的。
VMware的东西之所以敢于卖钱,是因为它确实是有用户的。但是只有你有很多应用服务和物理主机的时候,才能体验到。
抛开具体产品,作者的文章很不错。现在云计算是趋势,而虚拟化也必然是未来的趋势。在维护成本、硬件成本、能耗等方面虚拟化都提供了很大的优势。
枪不枪的,俺不知道 参考一下 是不错的
这篇枪得太利害了。虚拟机用VMWare也就算了,还整上FC SAN,这不是典型的钱多没地方花的做法吗?只能说,这花的不是自己的钱。
老外确实会这样用的。
我们现在用VMware服务器在新西兰,确实配了SAN。
开发环境,重要的是有独立的空间,你要什么样的服务质量?
我只知道生怕机器不能物尽所能,还第一次听说怕寿命不长的。莫非要像自己的爱车那样,擦的亮亮的给人看?
我们就用虚拟机搭建的开发环境,还没听说每个虚拟机都会满负荷运转的。你们的开发人员可能比较猛,有N个机器,N个都能满负荷运转。
just for testing,enough
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
精益软件开发方法因其对市场和交付的重视和在各种场景下体现出的适应能力正在获得广泛的关注。特别是在精益创业(Lean Startup)渐渐兴起和技术日新月异的今天,其"极端"的思想也变得越来越必要和可行。 InfoQ就此主题对他做了深入的采访。
14 条回复
关注此讨论 回复