Windows Azure迁移之道   Wang Tao / 2011-3-16
• Anytao• http://iface.me/anytao• http://t.sina.com.cn/anyta  o• http://anytao.cnblogs.com/
Agenda1 Overview2 实践和典型问题3 应用迁移4 数据迁移5 Misc
Overview• 实践 – 先数据后应用 – 先本地后云端 – 逐层测试,局部修改,禁用不可用• 典型问题 – COM组件,部分信任 – 文件路径问题 – Statelessness – 版本问题:.NET, SQL
应用迁移• 包括.NET版本及工程类型修改、部分功能屏蔽、必要代  码修正• website改为webapp• 文件等包含在工程目录下,dll等包含在bin目录,以bin  deployment方式部署• 路径问题• 由于现有系统使用虚拟目录而...
应用迁移-2• 时间问题:UTC• 日志、文件上传• 现有系统使用基于本地文件的日志和文件  上传。• 解决方案:使用CloudDrive在Azure环境下模  拟磁盘进行日志操作、文件上传。可以考  虑使用Blob Service和CDN解决...
应用迁移-3• Session和Cache的分布式存取• 目前系统运行时客户的单台服务器,Session和Cache大部分使用  了本机内存。在多实例运行环境下,由于Azure平台目前不支持  请求定向的功能(即同一请求定向到同一虚拟机),需要...
应用迁移-4• 解决方案 4:完全自己开发分布式存储服务。• 统一配置信息到数据库• 目前的配置信息是保存在网站目录下的多  个config文件,为了多个实例可以共享配置  信息,将所有配置统一存入数据库。
数据迁移• 包括本地数据库迁移至SQL Azure、基础数  据导入• 导入导出数据用bcp命令• Azure部署时ReportViewer不支持• varchar类型的字段不能存中文,应改为  Nvarchar
数据迁移-2• 由于现有系统使用中文SQL Server开发,使得某些数  据表字段在SQL Azure英文环境下不支持中文输入。  同时一些SQL语句没有加入Unicode声明导致数据输  入、查询有误。• 解决方案:数据库设计时,中文呢字段...
数据迁移-3• 不支持跨库操作:跨库查询、跨库事务,  对于跨库情况在数据层解决• 多租户模型• 在系统库中加入租户信息以及租户的订阅  信息,保持目前每个帐套一个数据库实例  的做法,实现数据隔离。
Misc
Thank you.
Upcoming SlideShare
Loading in...5
×

Azure 迁移之道

946

Published on

The presentation of my training ppt in Microsoft Azure Deep Dive Lab in 2011/3/15 - 2011/3/18.

Published in: Self Improvement
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
946
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Azure 迁移之道"

  1. 1. Windows Azure迁移之道 Wang Tao / 2011-3-16
  2. 2. • Anytao• http://iface.me/anytao• http://t.sina.com.cn/anyta o• http://anytao.cnblogs.com/
  3. 3. Agenda1 Overview2 实践和典型问题3 应用迁移4 数据迁移5 Misc
  4. 4. Overview• 实践 – 先数据后应用 – 先本地后云端 – 逐层测试,局部修改,禁用不可用• 典型问题 – COM组件,部分信任 – 文件路径问题 – Statelessness – 版本问题:.NET, SQL
  5. 5. 应用迁移• 包括.NET版本及工程类型修改、部分功能屏蔽、必要代 码修正• website改为webapp• 文件等包含在工程目录下,dll等包含在bin目录,以bin deployment方式部署• 路径问题• 由于现有系统使用虚拟目录而Azure部署将会在网站根 目录,所以造成现有系统多处路径计算错误。• 解决方案:新版本发版之前使用网站根目录部署并测试, 保证路径正确。同时路径计算相关问题加入开发规范, 统一路径计算处理。• httphandlers,httpmodules 从system.web里移到 system.webserver里,改为 handlers,modules
  6. 6. 应用迁移-2• 时间问题:UTC• 日志、文件上传• 现有系统使用基于本地文件的日志和文件 上传。• 解决方案:使用CloudDrive在Azure环境下模 拟磁盘进行日志操作、文件上传。可以考 虑使用Blob Service和CDN解决文件(图片) 引用问题。
  7. 7. 应用迁移-3• Session和Cache的分布式存取• 目前系统运行时客户的单台服务器,Session和Cache大部分使用 了本机内存。在多实例运行环境下,由于Azure平台目前不支持 请求定向的功能(即同一请求定向到同一虚拟机),需要修改 目前Session和Cache的实现达到分布式的要求。• 解决方案 1:使用Windows Azure AppFabric Caching作为存储源。 但是目前此功能还未在Azure实现,需要等微软的实现时间。• 解决方案 2:使用SQL Azure作为Session存储源。目前已经有现 成的Session Provider和解决方案。但是Cache还是需要再想办法 实现。• 解决方案 3:使用Windows版本的Memcached作为数据源。目前 有开源实现以及相应的Session Provider。但是Windows下的 Memcached性能和稳定性需要评估。
  8. 8. 应用迁移-4• 解决方案 4:完全自己开发分布式存储服务。• 统一配置信息到数据库• 目前的配置信息是保存在网站目录下的多 个config文件,为了多个实例可以共享配置 信息,将所有配置统一存入数据库。
  9. 9. 数据迁移• 包括本地数据库迁移至SQL Azure、基础数 据导入• 导入导出数据用bcp命令• Azure部署时ReportViewer不支持• varchar类型的字段不能存中文,应改为 Nvarchar
  10. 10. 数据迁移-2• 由于现有系统使用中文SQL Server开发,使得某些数 据表字段在SQL Azure英文环境下不支持中文输入。 同时一些SQL语句没有加入Unicode声明导致数据输 入、查询有误。• 解决方案:数据库设计时,中文呢字段必须设置为 nvarchar。同时修改数据访问层,解决SQL语句运行 时没有加入Unicode声明的问题。• insert 表里信息出现乱码, insert into testtable values(newid() , N你好),前加大 写的N即可(select,update类似)• 不支持NONCLUSTERED 应改为 CLUSTERED• 没主键的表需要创建CLUSTERED
  11. 11. 数据迁移-3• 不支持跨库操作:跨库查询、跨库事务, 对于跨库情况在数据层解决• 多租户模型• 在系统库中加入租户信息以及租户的订阅 信息,保持目前每个帐套一个数据库实例 的做法,实现数据隔离。
  12. 12. Misc
  13. 13. Thank you.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×