ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:205.23KB ,
资源ID:22352891      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22352891.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(将应用程序迁移到云的技巧Word格式文档下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

将应用程序迁移到云的技巧Word格式文档下载.docx

1、 应用程序兼容性 数据库兼容性 我们在迁移实验中最常听到的问题和关注点就以这四个方面为中心。 因此,我们将围绕这些主题进行讨论。我们常遇到一种误解,就是在使用 Windows Azure 迁移到云或在云中创建应用程序时,认为开发人员无需担心常见体系结构模式的一些值得关注的问题,如可用性、可伸缩性、可靠性和安全性。 事实上,构建的应用程序无论是进行内部部署还是 Windows Azure 部署,分布式计算上下文中的体系结构模式都同样有效。应用程序管理 无论您的应用程序在内部部署还是在云中运行,操作管理团队都需要一些数据来做出有效的决策。 您将需要考虑一些问题,包括服务级别协议、容量计划、客户计费

2、、审核、应用程序监视、流量分析和成本管理(知道何时升高或降低)。 这些问题需要在将应用程序部署到生产环境中之前得到解决,而且往往最好在创建应用程序之前解决。这些只是需要在 Windows Azure 迁移实验中考虑的一部分问题。 通过利用 Windows Azure SDK 中提供的 Windows Azure 诊断 API (Microsoft.WindowsAzure.Diagnostics),客户可以公开应用程序故障转储、失败的请求跟踪、Windows 事件日志、IIS 日志、Windows Azure 日志以及性能计数器。这远比您的预期简单得多。 您告诉诊断监视器要收集哪些类型的诊断信

3、息(请参见图 1 中的示例),并将这些信息的数据传输计划设置为传输到中央 Windows Azure 存储位置。图 1 设置诊断 复制代码 public class WebRole : RoleEntryPoint public override bool OnStart() DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration(); / To see which counters you can capture, type / typeperf.exe /q in a

4、command window. / Capture CPU utilization. PerformanceCounterConfiguration procUtilization = new PerformanceCounterConfiguration(); procUtilization.CounterSpecifier = Processor(*)% Processor Time; procUtilization.SampleRate = System.TimeSpan.FromSeconds(30.0); config.PerformanceCounters.DataSources.

5、Add(procUtilization); / Monitor available memory. PerformanceCounterConfiguration procAvailMemory = procAvailMemory.CounterSpecifier = MemoryAvail MBytes procAvailMemory.SampleRate = config.PerformanceCounters.DataSources.Add(procAvailMemory); / Add event collection from Windows Event Log / (System

6、and Application event logs). config.WindowsEventLog.DataSources.Add(System!*);Application! / All of the information monitored so far is being stored locally. / Tell diagnostic monitor what schedule period should be used when / transfering the events. config.Directories.ScheduledTransferPeriod = Time

7、Span.FromMinutes(1); config.Logs.ScheduledTransferPeriod = / Start the diagnostics monitor. DiagnosticMonitor.Start(DiagnosticsConnectionString, config); / True gives full crash dumps. False gives small crash dumps. CrashDumps.EnableCollection(false); System.Diagnostics.Trace.TraceInformation(OnStar

8、t Completed RoleEnvironment.Changing += RoleEnvironmentChanging; return base.OnStart(); .有关 Windows Azure 诊断的更多信息,请参见云诊断:控制 Windows Azure 中的日志记录与跟踪这篇文章(由 Mike Kelley 撰写,发表在 MSDN 杂志的 2010 年 6 月刊上)。应用程序安全性 对于任何组织而言,迁移到云时关注的首要问题就是安全性。 大多数公司都已在设计和开发安全模型方面投入了大量的时间、财力和工程资源,因此让它们能够利用现有投资(如身份存储、单一登录解决方案和防火墙

9、)是十分重要的。虽然公司可以采用许多种方式来保护基于云的应用程序,但是一种基于声明的方法已成为越来越流行的模式。图 2 显示了此过程。 为使应用程序能够处理来自安全令牌服务 (STS) 的安全令牌,必须在 STS 与应用程序之间建立信任关系。图 2 应用程序上下文中基于声明的标识 将定义符合业务要求(即,哪些用户可登录到应用程序中)的访问控制规则(步骤 1)。 这些规则与 STS 一起存储。 当用户尝试访问应用程序时,他将被重定向到 STS,以便他能够接收到有效令牌(步骤 2)。 该用户向 STS 提供一组输入声明(例如,Live ID 或域帐户)以便进行身份验证。 该用户通过身份验证后,ST

10、S 将这些声明映射到一组输出声明(步骤 3)。 在步骤 4 中,输出声明将打包到安全声明标记语言 (SAML) 令牌中,由 STS 签名,并返回给用户,以便转发给应用程序(步骤 5 中的依赖合作伙伴)。 应用程序确认该 SAML 令牌有效且来自可信 STS(步骤 6)。 验证令牌后,应用程序检查令牌中的声明,并发回适当的响应(步骤 7)。 相当简单! 这种方法的优点是它非常适合用于 ASP.NET 提供程序模型。 使您的 ASP.NET 应用程序变得能感知声明的过程非常简单。为了让开发人员的工作更轻松,Microsoft 引入了 Windows Identity Foundation (WIF

11、) SDK。 它能够完成分析 SAML 2.0 令牌方面的所有繁重工作,让开发人员能够将精力集中于应用程序上,而不必担心底层安全技术。首先需要下载 WIF 和 WIF SDK。 一旦将它们安装好,您就已获得让应用程序感知声明所需要的一切。在包含您的 ASP.NET Web 应用程序的 Visual Studio 解决方案中,右键单击并选择“添加”|“添加新网站”。 选择“ASP.NET 安全令牌服务网站”模板。 然后,您便可以为您的开发环境设置 STS。在您创建 STS 之后,便可通过右键单击您的应用程序并单击“添加 STS 引用”添加对 STS 的引用。这将启动一个向导,您可依照其指示逐步完

12、成在应用程序与 STS 之间建立关系的过程。 对您的站点,指向应用程序的 web.config 文件,并指定应用程序 URI(请参见图3)。图 3 启动联合实用工具向导 在下一步中,选择“使用现有 STS”,然后指定 STS 项目中 FederationMetadata.xml 文件的位置(请参见图 4)。 在此过程中其余部分中选择默认设置。图 4 配置 STS 请看一下 web.config 文件。 您将看见 FedUtil.exe 向导更改了大量的代码。 最重要的更改是对 web.config 文件的 microsoft.identityModel 节点做出的。 您将在此处看到对 STS

13、项目的引用,以及应用程序所需要的声明类型。 为了确保您的应用程序能够相应地接收到从 STS 返回的声明,请将以下代码放入 default.aspx 页面(请注意,您将必须从 WIF SDK 添加对 Microsoft.IdentityModel 的引用):IClaimsIdentity ici = (IClaimsIdentity)Thread.CurrentPrincipal.Identity;foreach (Claim c in ici.Claims) Response.Write(c.ClaimType + - + c.Value + 接下来,当您运行应用程序时,会自动将您重定向到您的

14、 STS。 默认情况下,STS 将允许您作为“Adam Carter”进行身份验证。您只需单击“登录”按钮即可(无需密码)。STS 对登录进行身份验证之后,您就会重定向回您的 Web 应用程序,并获得身份验证需要的 SAML 令牌。 您的应用程序将接受该令牌,并允许 default.aspx 页面运行。 因为 WIF 模块将拦截您的安全凭据,您将能够把标识主体强制转换为 IClaimsIdentity,因而还能够从标识对象提取出声明类型和值(请参见图 5)。图 5 标识对象的声明类型和值 现在 Web 应用程序已能感知声明,因此它很容易适应现有标识模型。 只需更新您的配置文件,让它指向您的生产

15、 STS,并确保您已将应用程序配置为依赖方。 此外,您还可以使用此信息来创建自定义角色提供程序,以便将声明类型转换为角色。这是一种极为强大的方法,通过这种方法,您能够把应用程序迁移到几乎任何环境 内部部署环境、云环境甚至合作伙伴数据中心,并且仍然可通过公开的 STS 对标识存储进行验证。应用程序兼容性 Windows Azure 是一个应用程序平台,因此了解适合 Windows Azure 平台的应用程序类型很重要。 虽然您能够运行本机代码,并且能以完全信任级别运行应用程序,但您必须在将应用程序部署到云之前把它打包,这就是说,评估应用程序是否合适很重要。例如: 我们在 Windows Azur

16、e 迁移实验室的一个客户有一个在 IIS 上运行的现有应用程序,它由一个 SQL Server 2005 后端、一个 LINQ to SQL 数据访问层以及一个使用 MVC Framework 1.0 和 ASP.NET 3.5 SP1 的前端组成。该应用程序位于一个含有传送流量的负载平衡器的 Web 场中。 该应用程序本身是没有状态的,因此,用户最终定向到哪个服务器无关紧要。一个与此应用程序有关的有趣细节是:该 MVC 应用程序管理着超过 220 个独立的网站。 该公司结合使用 MVC 路由和存储在 SQL Server 数据库中的信息来确定应该对每个网站加载哪些内容。 对于这些网站的集合,

17、在负载平衡器背后,有五个 Web 服务器每月对超过 4 百万个页面访问提供服务。该公司面临的主要挑战是为其环境提供新 Web 服务器所需要的时间:长达数月! 当该公司考虑将应用程序迁移到 Windows Azure 时,其主要动机是节省大量的时间。 向外扩展将成为一个配置细节,而不是持续整个季度的噩梦。迁移到 Windows Azure 的过程实际上相当简单。 下面就是我们使用的一般过程:1. 验证应用程序是否在开发环境中正常运行。2. 使用“SQL Azure 迁移向导”将 SQL Server 后端迁移到 SQL Azure(我们将在本文稍后部分详述)。3. 更新本地应用程序,使之使用 S

18、QL Azure 数据库。 这个过程非常简单,只需改一下连接字符串即可。4. 将应用程序转换为“Web 角色”项目。5. 验证应用程序是否在本地开发结构中运行。6. 将“Web 角色”打包,并将它部署到 Windows Azure。7. 验证应用程序是否可从 Windows Azure 运行。为了缩小“Web 角色”包的大小,我们最后将所有图像和 CSS 文件从它们的内容文件夹中取出,并把它们放入 Windows Azure Blob 存储空间。因为所有内容都在 Windows Azure Blob 存储空间中,GGP 便可以利用 Windows Azure 内容传送网络 (CDN)。 这样,

19、数据缓存能够更接近于最终用户。有关开发、测试和部署 Windows Azure 的概述,请参见 Windows Azure:在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序这篇文章(发表于 MSDN 杂志 2010 年 4 月刊)。 若要更深入地了解存储问题,请参见云存储:使用 Windows Azure 存储增强应用程序的引擎(发表于 2010 年 1 月刊)。数据库兼容性 在 SQL Azure 出现之初,我们就将我们的几个 SQL Server 数据库迁移到了其中。 再加上我们运作 Windows Azure 迁移实验室的经验,我们学到了您在开

20、始迁移过程之前应该考虑的很重要的几件事。首先,需要检查数据库的大小以及它是否符合 SQL Azure 使用的数据库限量范围,这很重要。 目前,SQL Azure 提供 1GB 和 5GB 大小的 Web Edition 以及 10、20、30、40 和 50GB 大小的 Business Edition。 您需要检查您的数据库并确保它的大小不超过 50GB。 如果您的数据库大于 50GB,则需要检查该数据库是否可以拆分为较小的数据库(换句话说,将数据库分片)或者将大数据移至 Blob。SQL Azure 仅支持 SQL 身份验证,因此您需要考虑是否需要更改您的应用程序所使用的身份验证方案。 另

21、外,SQL Azure 还有一个限制连接时间的资源限制。 我们稍后将在本文中讨论这两个问题。您的 SQL Server 数据库的版本是在将数据库迁移到 SQL Azure 之前需要考虑的另一个问题。 SQL Azure 是基于 SQL Server 2008 构建的。 这就是说,如果您想将 SQL Server 2000 或 SQL Server 2005 数据库迁移到 SQL Azure,则需要确保您的数据库与 SQL Server 2008 兼容。 例如,SQL Server 的早期版本支持旧式的 TSQL 联接,如 WHERE 子句中的 *= 和 =* 运算符。 SQL Server 2

22、008 仅支持 ANSI 式样的联接。 例如:SELECT ProcessClassTypeName , bpa.PropertyMetadata AS PropertyMetadataOverride , act.PropertyMetadata AS PropertyMetadataDefault FROM dbo.BusinessProcessActivities bpa LEFT JOIN dbo.Activities act ON act.Activity_ID = bpa.Activity_ID当数据库的兼容性级别设置为 SQL Server 2005 或 SQL Server 2

23、008 时,不支持旧式 TSQL 联接(*= 和 =*)。 这只是您在迁移到 SQL Server 2008 时会发现的兼容性问题的一个示例。详述迁移到 SQL Server 2008 的过程超出了本文的范围。 如果您对数据库迁移最佳实践感兴趣,请查阅升级到 SQL Server 2008 的终极指南。 在 MSDN SQL Server 开发人员中心也提供了丰富的资源。您将发现最好的途径是从与 SQL Server 2008 兼容的数据库迁移到 SQL Azure。 这就是说,如果您想将 SQL Server 2000 或 2005 数据库迁移到 SQL Azure,则可以在迁移到 SQL

24、Azure 之前进行到 SQL Server 2008 的内部升级。Microsoft 提供了一个名为 SQL Server Upgrade Advisor 的出色工具,该工具分析 SQL Server 2000 和 SQL Server 2005 的实例,以识别可能会影响升级的功能和配置更改。 它提供了指向一个文档的链接,该文档描述识别出的每个问题并说明如何解决这些问题。 一旦您已验证您的数据库与 SQL Server 2008 兼容,便可以快速将数据库迁移到 SQL Azure。虽然如此,您还需要知道,SQL Azure 并不支持所有的 SQL Server 2008 新功能。 例如,目前

25、在 SQL Azure 中不支持文件流。 在迁移到 SQL Azure 时,有几种方式可以检查兼容性问题。粗暴的方法就是疯狂测试:对 SQL Azure 运行您的 TSQL 脚本并查找错误。 更正出现的所有错误,再次运行。 重复此过程,直至成功。 这样做可能并不能最好地利用您的时间,但这由您决定。您可以使用 SQL Server Management Studio 脚本生成器向导来生成 TSQL 脚本。 请注意,当您根据向导指示逐步执行操作时,请确保选择高级脚本编写选项,并对“数据库引擎类型的脚本”属性选择 SQL Azure 数据库。 如果您错过这个步骤,则 SQL Server 将生成与

26、SQL Azure 不兼容的 TSQL。另一个选择是从 下载 SQL Azure 迁移向导 (SQLAzureMW)。 SQLAzureMW 将尽力识别兼容性问题,尽可能解决这些问题,并将它所了解的所有问题都通知给您。要更好地理解 SQL Azure 的一般指导原则和限制,请参见 一旦您在 SQL Azure 中拥有了数据库架构(表、视图、存储过程等),您将需要上载您的数据。 下面是最常见的方法: SQL Server Integration Services 大容量复制程序 (BCP) 用于数据迁移的 SqlBulkCopy SQL Azure 迁移向导(在后台使用 BCP) 使用 SQLA

27、zureMW George 创建了 SQLAzureMW 来帮助我们的客户完成 SQL 数据库迁移过程。 图 6 显示了运行中的 SQLAzureMW。图 6 使用 SQLAzureMW SQLAzureMW 分析 SQL Server 数据库是否存在与 SQL Azure 的兼容性问题。 它还允许您将数据库对象和数据从源数据库迁移到 SQL Azure。通过使用 SQLAzureMW,数据库开发人员可以了解在将其数据库迁移到 SQL Azure 时将需要执行多少工作。 如果 SQLAzureMW 标记出与 SQL Server 2000 或 2005 数据库的许多兼容性问题,我们建议首先将您

28、的数据库升级到 SQL Server 2008,然后再迁移到 SQL Azure。 已有很多文献说明迁移到 SQL Server 2008 的过程,您可以利用大量的指导和专业意见。 有关迁移到 SQL Server 2008 的更多信息,请参见 SQL Server 2008 升级技术参考指南 ( 在 MSDN SQL Server 开发人员中心 ( 也提供了丰富的资源。请注意,如果您没有 SQL Server 2008 R2,则您可以继续升级过程,而并不会因此受到影响。 只需下载 SQL Server 2008 R2 Express Edition,并执行并行升级过程即可。还有其他一些较好的资源可以帮助数据库开发人员了解 SQL Server 与 SQL Azure 之间的区别,比如哪些部分兼容和哪些部

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1