创新 从云开始
微软公司全球资深副总裁,微软亚太研发集团主席/张亚勤博士
经过多年的积淀和持续的探索,云计算开始成为全球信息产业发展的主流,这是行业变革水到渠成的结果。新兴的移动互联网技术、不断提高的计算能力,以及快速普及的数字化通讯推动产业变革并催生新的商业模式,重塑着经济发展和商业竞争的格局。
云计算能够成为IT创新实践的主流要归功于如下三方面的因素:
首先,过去十几年来,技术的进步让大规模、集中化计算的构想渐渐化为现实--CPU、GPU的多核进化及虚拟化技术的日趋完善,为信息系统的高性能和低功耗找到了重要的突破点;更大的互联网带宽则使实时的、多元的、复杂的计算应用成为可能;海量存储、数据挖掘、人工智能等技术的不断发展也带来了更快捷、更精确、更人本化的互联网服务。
其次,我说过,云计算是被逼出来的。随着数据越来越多,软件越来越复杂,终端越来越多样,计算量越来越大,服务器和PC客户端已经不能满足用户需求,云计算应运而生,海量数据成为新的生产要素。在未来的5~10年,数据大爆炸仍将持续。据统计,到2015年就将有250亿台联网的设备,包括智能电表、智能汽车、智能建筑、智能电视、平板电脑、智能手机、移动健康监测设备和传统PC等,它们每年将产生1.6ZB以上的数据,这是目前全球网络年度流量(130EB)的12倍。因此,产业必须依靠云计算才能发展下去。
最后,新商业模式的涌现,让个人和企业用户看到了不同于以往的趋势和可能。2001年,我曾撰文指出,“服务化”将成为软件产业的一个趋势,现在看来,这个趋势无疑更加明显。软件不再只是封装(或预装)好的“商品”,还可以通过在线服务、随需租用、附带广告的免费版本等多种多样的形式来获取。此外,P2P资源分享、视频点播、信息搜索、LBS(基于位置的服务),这些都是传统软件不易实现的功能,必须依赖“云”之上的大规模计算资源。
云计算作为新一代信息技术、物联网、移动互联网的神经中枢,一些发达国家和跨国企业已经投入巨资,积极部署云计算的基础架构、操作系统、应用开发平台,以吸引开发者
云应用开发(第2版)
创新 从云开始开发出大量的应用和服务。
这一切都指向一个关键性事实,即“云和端”的操作系统,都势必会成为兵家必争之地--在智能终端上,操作系统已迈进属于iOS、Android和Windows 的三国时代;而在云计算领域,具有完整的知识产权储备、久经验证的、性能强大的操作系统内核、开放的框架、开发环境与语言、开发者社区等生态系统的企业和组织,也只有微软、亚马逊、谷歌等寥寥数家。
而微软的优势在于不仅能在“云和端”两个层面都具有完整的生态系统优势,更在于前瞻性的战略思考与先行一步的战略优势。在此,我们不妨先回顾一下Windows Azure平台诞生的始末。
微软的战略转型,始于1995年。那一年,比尔·盖茨发表了《互联网浪潮》 (The Internet Tidal Wave)的备忘录,引起全球业界的极大关注。同期,微软收购了Hotmail,并开始提供MSN服务,从那时起,微软开始自己运营互联网数据中心和互联网服务,并逐渐积累了丰富的数据中心建设、部署、配置、监控、安全方面的经验,以及互联网服务的开发和运维经验。
而微软真正开始云战略的规划,则是积累了十年经验后的厚积薄发。2005年10月,当时作为微软首席技术官的Ray Ozzie写了一份名为《互联网服务时代来临》 (The Internet Services Disruption)的备忘录,其要点在于推动微软整体向互联网服务转型。这一备忘录同样和10年前的那份一样,在微软内部和全球业界也引起了极大反响,从此微软开始转向“软件+服务”的战略。
2006年6月,微软成立了内部代号为“Red Dog”的项目,开始着手建立一个面向全球的互联网应用服务平台,这一团队囊括了微软多位技术院士和杰出工程师,其中包括Dave Cutler (Windows NT和VMS之父),以及被称为内核专家的Mark Russinovich。经过两年的全球性内部调研、研发和测试,这一项目最终在2008年10月的专业开发者大会上,作为微软的云计算平台正式公开,并拥有了一个人们耳熟能详的名字--Windows Azure(蓝天)平台。2012年9月,微软发布了云操作系统,向客户提供跨越私有云、托管云和公有云的现代化IT架构,能够轻松支持数以十亿计的、互联互通的各种设备,同时实现对大数据的洞察,让用户能够提供永不间断的企业级服务。
如今,微软公司已经在全球范围内投资逾23亿美元,先后建立了十多个世界级的云数据中心,为90多个国家的组织和个人提供Windows Azure平台服务。截至2012年6月, Windows Azure平台的总体运算性能相当于816000台服务器,超过了1999年全球全部服务器的运算能力(当年这一数字为787262台). Windows Azure平台上有近十万家企业级用户,而且增长仍在不断加速--Windows Azure的计算使用量在过去6个月中翻了一番,存储在过去2个月中增加了一倍,而企业订购在过去6个月中增加了56%. 以Windows Server和Windows Azure为核心的微软云操作系统提供了全面、一致和灵活的开发环境、管理工具、虚拟化、身份认证、数据洞察。
在Windows Azure平台上,微软还为全球100多个国家和地区的十多亿用户,提供超过200项云服务,并创造了许多令人惊艳的数字,比如,每个月有2.8亿用户使用Skype进行通话和视频,在2012年一季度,总计通话时长超过1000亿分钟;Outlook.com上线后,两周内聚集了1000万用户;每月超过1700万人使用SkyDrive存储和分享在线内容;每月Windows Update向全球数百万服务器和十数亿电脑提供的 1PB 以上的更新; LiveMeeting每年处理500万次以上的在线会议记录;Forefront for Exchange 每月过滤10亿封邮件;Xbox Live在35个国家拥有超过4000万用户……
在对中国云计算市场的重视程度上,微软同样领先于业界。2012年11月,微软成为了第一个将公有云平台带入中国市场的跨国企业。可以说,微软把握住了云计算发展的大趋势,尤其是云计算在中国已经步入实践期的时代脉搏。对本书的读者而言,尤为重要的是,Windows Azure平台的落地,将带来更多创新的自由和展露潜能的机会。
《云迁移技术》、《云应用开发》、《构建弹性云应用》、《构建混合云应用》系列丛书的内容由浅入深,囊括了从应用迁移、架构设计,应用开发、应用集成等内容,为设计、构建或操作云应用和云服务的架构师、开发人员、信息技术专业人士,以及有志于从事云计算应用开发的在校学生们提供了非常好的指引和参考。
在此,特别感谢上海交通大学的邹恒明教授、清华大学出版社和微软中国云计算创新中心的同仁,在该书翻译出版中付出的卓越努力。
最后,祝愿本系列丛书的读者们,能把握云计算带来的重大创新与机遇,与微软共创云的未来。序--Amitabh Srivastava
上百万的人正在使用微软的云服务。微软正全身投入到云计算中。作为一个从一开始就一直参与Windows Azure项目的人,看到其结出果实自然心感满意。对于仍然在探索云计算的意义的用户,由微软的模式和实践团队推出的本书能够回答许多问题。微软对云计算执著、认真,并进行了大量投入,目的就是为确保用户可以在Windows Azure平台上成功开发新的应用程序或将现有的应用迁移到云端。读者手上的本书就是这大量投入的一部分。
熟悉.NET和微软其他平台的开发人员可以使用现有的技能来快速构建云应用或将现有应用迁移到云上,并利用云所提供的能力来扩展应用程序以支持上百万的用户和达到世界上的每一个人。尽管如此,Windows Azure是一个开放的平台,可以与其他技术或应用程序和谐共存,给用户提供选择的多样性和灵活性。用户可以根据自己的需要将尽可能多的业务迁移到云上,也可以将很少的业务迁移到云上,还可以在迁移实施中间调整迁移量的多寡,而无须从头来过。
本书采取的论述方式为基于应用场景的分析。对于想从事云计算的人来说,本书是一个很好的起点。
真诚的,
Amitabh Srivastava
Windows Azure资深副总裁序--Yousef Khalidi
微软公司最近发布的Windows Azure平台是一个用来开发、托管和管理云服务的操作环境。用户可以通过Windows Azure所提供的支持方便地将应用程序从业务所在地迁移到云平台上。使用Windows Azure带来的好处包括高灵活性、高扩展性和低运营成本。
微软的云战略遵守以下三个广义的原则。
(1) 根据业务需求发布服务的灵活性。
(2) 可用、可靠和安全的企业级服务。
(3) 跨设备、跨平台的一致性体验。
而Windows Azure是微软云战略的关键组成部分。
Windows Azure的基石是微软多年运行在线服务的经验和长期为开发人员构建平台的历史。这些在线服务的用户达数百万之多。微软专注于为程序员和IT专业人士提供服务,以简化业务所在地到云平台的迁移为己任: 开发人员现有的技能和经验正是开始使用Windows Azure平台所需要的技能和经验。
Windows Azure是微软的一项长期投入。微软将密切关注各种企业使用Windows Azure的情况,无论是企业,还是独立软件供应商。随着对用户使用Windows Azure方式的了解,微软将不断对Windows Azure进行扩充和改进。而能够快速引入创新是在线平台的一个优点。
我很高兴向读者引介微软模式和实践团队编写的第一本云系列指导书籍。这是微软致力于帮助用户在Windows Azure平台上取得成功的明证。不管是刚接触Windows Azure的新手,还是已经在使用Windows Azure的用户,本书都是难得的参考资料。我敦促读者即刻开始探索微软的公有云平台,并密切关注模式和实践团队推出的其他Windows Azure的指导手册(或书籍).
真诚的,
Yousef Khalidi
Windows Azure杰出工程师《微软云计算系列丛书》译者序
愚妄者故作高深,智慧人求于至简
这是云计算的时代,这是物联网的时代,这是虚拟化的时代。
虚拟上的虚拟,万般皆是虚拟;云上的云服务,一切都是浮云。 在万物成为“浮云”的时代,所有的人也都“浮上”了云端。人们热议云计算、人们调侃云服务、人们论说云存储、人们讨论云平台,一时间,似乎人人都成了云专家。开发移动终端应用的人说自己做的是云计算,开办IT外包呼叫中心的人说自己做的是云计算,建立数据中心的人当然也说自己做的是云计算,研究一点Map/Reduce或者Hadoop的人更声称自己做的是云计算,就连从事高性能计算,似乎耐得住寂寞的人也不能免俗,也辩说自己的工作是云计算或者与云计算相关。一句话,只要是与IT沾点关系的人,都说自己从事的是云计算或者与云计算相关的工作。不过,在这浮华虚夸的背后,留下的却是众多的问题。
到底什么是云计算呢?如果去听这些人的解释,则很有可能在听完之后就堕入云里雾里,不知所云了。如果再问得细一点,问题就更多了:云计算是一种技术模式,还是一种商业模式,或者二者兼而有之?云计算的本体是什么?云到底给个人和企业如何带来何种具体和可量化的好处?是否人人都真的需要云?云是如何让应用程序进行伸缩的?又是如何让应用程序更具弹性?如何才能开发出性能卓越的云应用程序?如何才能构建起真正的具有商业应用的云架构(或曰云平台)?掌握云计算或开发云应用需要什么新知识和新技能,又可以使用哪些现有的知识和技能?开发云应用和开发其他应用有何不同?
面对上述众多的“云”问题时,很多的“云专家”恐怕就答不上来了。
如果读者想求助于市面上出版的各种关于云计算的书籍的话,恐怕也会是打错了算盘。市面上的“云”书籍非但未能向自己的读者解释清楚云计算的要义,甚至还助长了各种误解和混乱。大部分书对云计算的阐述大同小异、流于肤浅、缺乏逻辑、术语堆积,甚至误导繁多。从某种程度上说,这些书不过就是各种技术或商业术语如SaaS、PaaS、IaaS、Hadoop等的堆砌,对于如何克服读者在实际使用、开发或管理云计算平台和应用方面所面临的具体障碍没有什么有价值的指导。以至于不少人以为,云计算就是一次新的规模
云应用开发(第2版)
《微软云计算系列丛书》译者序更大的忽悠,大可不必理会。
就是在这种混乱和误解中,云计算却真真实实地在一步一步地往前迈进,甚至有一部分人士正在经历云计算所带来的变化和阵痛。随着软件作为服务(SaaS,云计算中的一种可能模式)这种模式的不断推进,越来越多的企业发现已经难以像过去那样,将商业软件作为商品来购买。但由于其业务性质,这些企业又不能直接使用SaaS模型,从而被迫陷入到架构软件的开发和私有云的构建中。这种发展趋势对人员的素质提出了很高要求,相关人员必须对云的架构、云的平台、云的生态环境、云上面的软件开发、布置和管理有着正确和深刻的理解。
无论是为了消除云计算上的误解和混乱,还是为了满足有识之士对云计算理念、技术和实践的强烈渴望,都需要精良的书籍来为大众指点迷津。
就是在这个时刻,微软公司恰如其时地推出了一套精良的云计算系列丛书。这套系列云计算丛书对上述的部分问题做出了回答。剩下的部分没有做答的问题,这套丛书也提供了有益的理解背景,读者可以在这些背景的基础上更容易获得一个正确或接近正确的答案。
该套丛书以庖丁解牛般的手法阐述了云计算的理念、平台、架构和应用。该套书以微软的云平台Windows Azure为基础,以云应用为核心,展示如何迁移、开发云应用,及如何让云应用更具弹性,对云计算的多个方面进行了深入浅出的讨论,为大众释疑解惑。
全套丛书目前由四部分组成,分别是《云迁移技术》、《云应用开发》、《构建弹性云应用》和《构建混合云应用》. 《云迁移技术》是系列丛书的第一部,讨论如何将一个机构现有的业务迁移到云平台上。该书以一家虚构公司Adatum为例,以场景分析的方式,详细论述了如何对公司的费用跟踪和分期偿还应用程序进行修改,一步一步地展示应用迁移的步骤和迁移过程中的注意事项,如身份验证和授权、数据访问、会话管理、应用部署、部署生命周期和运行成本分析,最终达到让应用程序平滑部署到Windows Azure云平台上并顺利运行的状态,从而将读者逐步带入到云迁移的境界里,不知不觉中掌握云迁移的关键技术。
《云应用开发》是系列丛书的第二部,讨论如何在Windows Azure云平台上从零开始创建一个多租户的SaaS应用程序,内容包括如何在云平台上进行应用程序开发,如何对云应用进行调试、发布和维护,以降低成本、提高可用性和业务的灵活性。该书以虚构的Tailspin公司为例,围绕其民意调查应用业务,构造一个可以大幅伸缩的民意调查应用程序,引导读者一步一步地构造出为云而设计、适合云环境的、面向多租户的可伸缩的云应用解决方案。
云系列丛书的第三部是《构建弹性云应用》。该书讨论如何使用Windows Azure平台里的企业库集成包(Enterprise Library Integration Pack)来提升现有Windows Azure应用程序的可维护性、管理性、扩展性、稳定性和伸展性。本书在上本书《云应用开发》的Tailspin公司的民意调查应用程序基础上,一步一步将该程序的伸缩能力进行提升,使其成为一个能够充分利用云平台各种功能和优势的弹性云应用程序。
《构建混合云应用》为云系列丛书的第四部。该书讨论的是企业在向云计算过渡时所面临的一个非常实际的问题。除非是新创企业,否则都会有大量的现有业务所在地应用。这些应用不可能一次性全部迁移到云上,而只能是逐个迁移。这样就会存在一种既有云应用,又有业务所在地应用的一种混合场景。即使对于新创企业,出于安全或者法律法规方面的考虑,可能会选择只将部分业务部署在云端。这样,如何构建合理、安全、高效、富有弹性的混合云应用就是大多数向往云的企业所不得不面对的一个问题。本书就是为解答这个问题而撰写的。该书以虚构的Trey Research公司为例,一步一步地教导读者如何将该公司的订单应用程序构造成一个混合应用的典范,从而既享受云计算的巨大优势,又避免云计算的些许不足。
全套丛书的最大特点是实践性强。全套丛书中的每一部都以一个虚拟公司为例,以与实际情况非常贴切的场景为背景,以动手操作为推手,以实际代码为讨论对象,将云计算的各种实战技术娓娓道来,非常易于理解和消化。读者只要顺着书的讲解,并配合运行和分析其附带的代码,即可手到擒来地开发或构造出相应性质的云应用程序。
本套丛书的第二个特点是案例成套、完整,可以发布到Windows Azure云平台上运行,从而与其他论述云计算的书籍有所区别。读者可以从这样的实际运行中获得更深入的理解。
本套丛书的第三个特点是采用了专家点评的方式。在讲述之间穿插各种专家对方案的点评,在细微处画龙点睛,给人豁然开朗的欣然感受。
本套丛书的读者群为需要设计、构建或维护云应用或云交互应用的架构师、开发人员或信息技术专业人员。同时,本套丛书也非常适用于高等院校相关方向的学生阅读。
本套丛书不是泛泛地谈一些概念,而是内容具体、步骤可复制、讲解清楚、对实际指导作用强,是云计算领域开发人员及参与人员不可多得的一套好书。如果读者还在市面或网络上寻找精良的云计算书籍,请不用再找了。阅读微软的这套云计算系列丛书吧。你对云的理解误区将会大幅度减少,你会真的融入到云计算的世界。相信我,你不会失望的。
邹恒明2012年10月于上海莘庄前 言
企业和公司如何创建一个真正面向全球,且又能通过快速伸缩来满足突然、海量的需求暴增的应用程序?在过去,各种企业和公司投入了大量的人力物力来构建可以支持这种应用程序的IT架构。一般来说,只有大型企业才有足够的资源来支持这种冒险。构建和管理这种IT架构并不便宜,尤其是因为这种架构需要为高峰需求进行配置,导致大量的计算能力和容量在大部分时候都处于闲置状态。云计算的出现已经改变了这种游戏规则: 通过将IT架构按照“所用即所付”的模式进行出售,创建海量可伸缩的面向全球的应用程序就不再是难事,而不必关心企业的规模是大还是小。
云平台提供按需访问容量的能力,同时还具有容错、分布式计算、遍及全球的数据中心,以及与其他平台进行集成的能力。用户只需在每个记账周期支付自己在该周期内所使用的IT资源,而其他人负责管理和维护整个IT架构。这样,用户就可以集中精力,利用自己对核心领域专业知识的掌握来构建和布置应用程序。应用程序可以布置到离终端客户最近的数据中心。在布置完成后,用户还可以根据需求的变化对应用程序进行监控、扩展和收缩。
是的,通过将应用程序迁移到云平台上,用户放弃了对应用程序的部分控制权和自治权,但获得的收益也是巨大的,包括降低成本、增加灵活性、可伸缩的计算和存储容量等。Windows Azure的指导手册将告诉读者如何实现这种收益。
本书的目标读者群
本书是讨论Windows Azure技术平台的云系列丛书的第2卷。该系列的第1卷是《云迁移技术》一书,书中对Windows Azure平台进行了介绍,对云应用程序的成本模型和应用生命周期管理进行了讨论,对如何将现有的基于ASP.NET技术的应用程序迁移到云端进行了描述。本书则将演示如何使用最新版本的Windows Azure工具和Windows Azure平台的最新功能来从头创建多租户、软件即服务的云应用程序。
本书的目标读者群包括设计、构建或操作运行在云平台上或需要与云平台打交道的应用和服务的架构师、开发人员和信息技术专业人士。虽然基于非Windows操作系统的应用程序也可以运行在Windows Azure平台上,但本书是为与Windows系统打交道的人士而写。读者在阅读本书前应该熟悉Windows Azure、微软的.NET框架、Microsoft Visual Studio开发系统、ASP.NET MVC和微软的Visual C#开发工具。
本书的适时性
一般来说,云是让应用程序面向广大用户的一种有效机制。Windows Azure给开发
云应用开发(第2版)
前言人员和IT专业人士提供了一整套工具,以帮助他们充分利用Windows Azure所提供的能力。例如,开发人员可以使用自己熟悉的工具如Visual Studio来编写云应用。此外,Windows Azure SDK包括计算模拟器和存储模拟器。开发人员可以用它们在本地编写、测试和调试应用程序,而无须先将应用程序发布到云端。Windows Azure还配有账户管理工具和API。本书将展示如何在常见的场景下使用所有这些工具,即如何开发崭新的、多租户的SaaS应用程序。
本书的结构
本书的结构如图1所示。
图1 本书结构
第1章是在开始前。该章对Windows Azure平台进行简要介绍,以帮助读者快速入门。该章列出和提供了大量的资源链接,读者可以从这些资源上找到各种信息。这些信息包括的内容有对Windows Azure的各种功能如Web角色和Worker角色的讨论,Windows Azure里可以使用的服务(如访问控制和缓存),在Windows Azure里保存数据的不同方法,构建Windows Azure应用程序的开发工具和最佳实践,以及Windows Azure的计费模型。读者最好先阅读完本章内容后再进入后面的场景分析和讨论内容。
第2章是Tailspin场景分析。本章对一个虚构的Tailspin公司进行介绍,并重点阐述该公司的民意调查应用程序。该章仅对民意调查应用程序的架构进行描述,后续的章节则对Tailspin公司如何设计和实现该民意调查应用程序的细节进行描述。阅读本章将帮助读者理解Tailspin公司的商业模式、采用云平台的战略和公司的一些关注问题。
第3章是在Windows Azure平台上托管多租户应用程序。该章围绕构建多租户应用程序所面临的一些问题进行讨论,对需要考虑的多租户架构的好处与缺点进行论述,并提供一个概念框架以帮助读者理解后续章节中将要详细讨论的一些议题。
第4章是访问民意调查应用程序。本章描述在设计与实现一些面向客户的应用程序组件时,Tailspin开发人员所面临的一些挑战。该章的议题包括选择URL来访问民意调查应用程序,将应用程序托管在多个地理位置上,以及使用内容交付网络来缓存应用程序的内容。
第5章是为Windows Azure构建可伸缩的、多租户应用程序。本章讨论Tailspin公司如何确保多租户民意调查应用程序的伸缩性。该章描述的内容包括应用程序是如何划分的,如何使用Worker角色,如何支持签约过程(on-boarding) 、定制化和计费。
本书最后一章是民意调查应用程序里的数据处理。该章描述应用程序是如何使用各种数据的。本章讨论的主要内容包括民意调查应用程序是如何在Windows Azure的表存储和Blob块存储里保存数据的,Tailspin公司的开发人员如何设计可测试的存储类。本章同时也描述了Tailspin公司如何解决一些与数据相关的具体问题。这些问题包括在数据中翻页、实现会话状态等。最后,本章对SQL Azure技术平台在民意调查应用程序里扮演的角色进行了描述。
运行代码的系统要求
运行本书附带的样本源代码的系统要求如下。
Windows Vista with Service Pack 2, Windows 7 with Service Pack 1,或Windows Server 2008 R2 with Service Pack 1 (32 bit or 64 bit editions).
Microsoft .NET Framework version 4.0.
Microsoft Visual Studio 2010 Ultimate, Premium,或Professional edition with Service Pack 1 installed.
Windows Azure Tools for Visual Studio (包括 Windows Azure SDK).
Microsoft SQL Server或SQL Server Express 2008.
MVC 3 Framework.
Windows Identity Foundation,此模块为基于声明的权限管理所必需。
WebAii,将其置于例子的Lib文件夹里。
Moq version 4.0.10501.6,下载本模块后先打开“属性”对话框进行解锁,然后抽取内容。将抽取的内容放置于例子的Lib文件夹里。
Microsoft Anti-Cross Site Scripting Library V4,将该函数库放到样本程序的Lib文件夹里。
Enterprise Library 5,该模块所需的汇编模块包括在源代码文件夹里。
Unity 2.0,该模块所需的汇编模块包括在源代码文件夹里。
谁是谁
如前所述,本书使用一个样本应用程序来演示如何开发、实现和发布一个云应用程序。在本书的讨论过程中,我们请一组专家将对整个开发过程进行点评。该组专家包括一位云计算专家、一位软件架构师、一位软件开发人员和一位IT专业人士。这些专家将从自己的视角对样本应用程序的交付过程进行点评。下面列出的是这些场景分析专家的简介。Bharath是一位云计算专家。他的责任是确保任何解决方案与公司的实际情况相符合并能够提供可见的收益。因为这个缘故,Bharath处事谨慎。
Bharath说: “为云平台开发简单的单个应用程序比较容易。但使用基于云平台的解决方案来实现最大收益却不是那么直截了当。" Jana是一名软件架构师。她的责任是对整个应用程序的结构进行规划。她的观点既务实又具有战略眼光。换句话说,她不光考虑何种技术方案是今天所需的,同时还考虑公司的未来方向。Jana曾经参与过多个需要使用企业库的项目。
Jana说: “在公司、用户、IT机构、开发者和我们所依赖的技术平台之间进行平衡并不容易。" Markus是一位资深软件开发人员。Markus喜欢分析、注重细节、一丝不苟。他一直专注于手上的工作: 就是开发一个强大的云应用程序。Markus知道,他就是最终要对代码负责的人。
Markus说: “在大部分时候,我们所知道的软件开发知识都可以用于云平台上。但是,总会有些非常重要的特殊考虑”. Poe是一个IT专业人士,是一位在公司数据中心发布和运行应用程序的专家。Poe对各种问题的实际解决方案饶有兴趣。毕竟,当出现问题时,他就是那个在凌晨3点接到传呼的人。
Poe说: “在云平台上运行一个由成千上万用户访问的应用程序涉及一些巨大的挑战。我的责任是确保云应用程序运行良好、且可靠安全。Tailspin公司的声誉将取决于用户的感受。" 如果读者对某个特定的视角有兴趣,可以参考与自己兴趣相同或接近的专家的点评意见。
致 谢
3月4日,我收到了公司首席执行官 Steve Ballmer的一封电子邮件。由于平时并不经常收到他的邮件,我对这封邮件给予了高度关注。邮件的标题是“我们全身心投入(we are all in) " 。邮件概括了微软对云计算的投入。如果还需要任何证据来证明微软对云计算是认真的话,这封邮件就是。
我在3年前第一次接触到Windows Azure及其组件(不过,那个时候还不叫Windows Azure这个名称)。那时我还在开发者和平台推广(Developer & Platform Evangelism, DPE) 团队,我的工作是研究将软件作为服务发布的可能性。读者中可能有人还记得我在2007年晚些时候开发的一个模型,称为北风托管(Northwind Hosting) 。该模型演示了Windows Azure平台在今天所提供的许多能力。(看到我早期投入的一个项目在今天成为现实让我非常、非常高兴。)
2009年2月,我离开了 DPE团队,加入了模式和实践团队(Patterns & Practices Team) 。我的任务是领导微软的“云计划”。该计划由一组项目组成,研究构建云应用所面临的设计挑战。当Windows Azure平台发布时,对Windows Azure指导手册的需求也迅速高涨。
在研究了不同的应用开发场景后,我们发现,在进行任何其他事情之前,必须正确解决身份管理问题。如果公司在业务所在地已经有大量的投入,希望将这些资产中的一部分迁移到云上,这一点将更加重要。而我们顾客中的一大部分都符合这个描述。
2009年12月,我们发布了基于声明的身份和访问控制指导手册。这是模式和实践团队的第一项交付,也是云计划的一个重要里程碑。
Windows Azure云平台在很多方面都很特别,其中之一是其创新的频率。从事该系统研发的各种团队都颇具实力,其交付新功能的速度非常快。为了能跟上他们的速度,我们只能加速开发内容。我们决定进行两个月的冲刺,每个月专注于一个方面和一本书。 本书主要覆盖一种特定的迁移场景: 如何将现有的应用程序迁移到Windows Azure平台上。与《基于声明的身份和访问控制》一书类似,我们开发了一个虚构的案例来一步一步地阐述客户可能遇到的挑战。
我希望感谢为本书做出了创作题材方面贡献的专家和人员: Dominic Betts、Scott Densmore、Ryan Dunn、Steve Marx和Matias Woloski. Dominic有一种不同寻常的天赋,他对题材极为熟悉,并且总能够找到一种办法来将其解释得非常精确、完整,又容易理解。Scott在如何构建可伸缩的Windows Azure应用程序方面具有丰富的知识,他在加入我的团队之前就在从事该方面的工作;Scott同时还有多年的为开发人员构建框架和工具的经验。我在以前的一些项目中就有幸和Ryan共事,他的机敏、洞见和经验让我受益匪浅。作为Windows Azure的热情传播者,他能够告诉我们用户的实际需求到底是什么。Steve是Windows Azure的技术战略家,他在本书的编写上发挥了举足轻重的作用。他不但能告诉我们这个平台在今天能做什么,而且还能预测这个平台在将来会怎样进化。这点非常重要,因为我们希望本书所提供的指导原则能够与我们的长期目标保持一致。最后,Matias和我一起做过很多项目。他从一开始就参与了Windows Azure项目,他的努力对我们编写此书有着不可估量的价值。
云应用开发(第2版)
致谢像我们所著的所有其他书一样,本书的大部分章节都附带有样本源代码。这些代码演示了书中所讲的内容。非常感谢本项目的开发和测试团队,他们提供了技术上严谨又容易明白的代码: Masashi Narumoto, Scott Densmore, Federico Boerr (Southworks), Adrin Menegatti(Southworks), Hanz Zhang, Ravindra Mahendravarman (Infosys Ltd.), Rathi Velusamy (Infosys Ltd.).
本书不仅需要在技术上精确可靠,同时还要读起来有趣。而做到这点并不是简单的事情。我希望感谢微软编写和编辑团队的Dominic Betts、RoAnn Corbisier、Alex Homer和Tina Burden,他们的确非常优秀。
本书使用的视觉设计概念原本是由Roberta Leibovitz和Colin Campbell (Modeled Computation LLC)为《基于声明的身份和访问控制》一书而创作。由于用户反馈良好,我们决定在本书中再次使用。本书的设计由John Hubbard (eson)创作。里面的卡通脸谱由获奖的西雅图卡通漫画家Ellen Forney绘制。技术插图则由Rob Nance 和 Katie Niemer从我的掌上电脑模型改编而来。
我们所有的指导手册(书籍)均经过大量客户、合作伙伴及同事的审校、点评、详细检查和评鉴。我们也通过CodePlex网站收集了更大范围内的反馈。Windows Azure平台覆盖广泛、跨越许多领域,能够有这样背景多元、技能各异的读者群提供反馈,我们感到非常幸运。
我同时还希望感谢对本书早期内容和草稿提供过建议和帮助的人员。在他们中间,我希望提及下面的一些人士: David Aiken、Graham Astor (Avanade)、EdWindows Azurerd Bakker (Inter Access)、Vivek Bhatnagar、Patrick Butler Monterde (Microsoft)、Shy Cohen、James Conard、Brian Davis (Longscale)、Aashish Dhamdhere (Windows Azure、Microsoft)、Andreas Erben (DAENET)、Giles Frith 、Eric L. Golpe (Microsoft)、Johnny Halife (Southworks)、Alex Homer、Simon Ince、Joshy Joseph、Andrew Kimball、Milinda Kotelawele (Longscale)、Mark Kottke (Microsoft)、Chris Lowndes (Avanade)、Dianne O'Brien (Windows Azure、Microsoft)、Steffen Vorein (Avanade)、Michael Wood (Strategic Data Systems).
最后,我希望读者发现本书的价值。
Eugenio Pace
资深项目经理-模式和实践
Microsoft
Redmond, 2010年5月