开发者们接受Microsoft Windows Azure的速度异乎寻常的快。因为它是基于Windows 和 .NET的,所以它和开发者们现有的应用程序是高度兼容的,使用Microsoft Windows Azure作为云平台的话,应用程序可以很轻松地迁移到云中。
通常,一个应用程序要迁移到云中,需要经过两个关键性的阶段。第一个阶段是尽可能地少做改动,让它可以“原封不动”地在Microsoft Azure中发挥作用,在这个阶段,只改变那些不得不改变的地方就可以了。第二个阶段是对这个应用程序的一些组件进行升级,让你的应用程序可以利用上那些Microsoft Azure提供的独一无二的能力。
在本文中,我们将会讨论一些在完成第一个阶段(只要可以在Microsoft Azure中正常工作就可以了)的过程中遇到的问题。大多数的迁移项目都是从“云适应性”分析开始的,这可以帮助你识别出要完成迁移,哪些部分需要做一些额外的工作。当你正在进行第一个阶段的时候,搞清楚你的系统架构是至关重要的,同时,你要让必须要做的代码变更最小化。如果你使用一个完整的单元测试套件来构建你的系统,那么现在你可以开始欢呼雀跃了。
1,数据迁移
从应用程序的底层开始,我们就不得不面对我们应该把数据存储到哪里,以及如何存储的问题。最常见的ASP.NET应用程序使用SQL Server把数据存储在关系数据模型中。无论你的代码如何使用这些数据(Entity Framework, nHibernate, ADO.NET等),你都应该关注一下如何把SQL数据库迁移到SQL Azure中。这样做的话,可以让你的应用程序处于“near data”的场景之中,在这种场景中,应用程序可以保持高度的响应性。
一个Microsoft Azure中的应用程序完全可以通过一个内置的SQL Server来连接和使用数据,但是这样做的话,会创建一个“far data”的场景。在这种场景中,数据访问的延迟会很大,而且性能也会有所降低。
SQL Azure和SQL Server是高度兼容的,所以迁移起来并不是很困难,对于那些小型数据库来说,情况更是如此。你必须要留意一下你自己可以使用的SQL Azure数据库的最大尺寸,目前,这个最大尺寸是50GB。如果你的数据库比这个尺寸还要大,那么你必须对你的数据进行分割。
有一个叫作SQL Azure Migration Wizard的开源工具可以帮助你完成这个任务,你可以使用它来分析和迁移你的数据。它可以分析你当前的模式,指出和SQL Azure不兼容的地方,然后帮助你修改这些地方。再然后,它可以在后台使用BCP,把你的数据迁移到云中。你可以在这个页面中找到这个工具。
长期来看,你可以对你的数据进行分析,判断出哪些数据从本质上来说是非关系型的,然后把它们迁移到Windows Azure Table storage中。
123456下一页