More Related Content
Similar to Azure 迁移之道 (20)
Azure 迁移之道
- 4. Overview
• 实践
– 先数据后应用
– 先本地后云端
– 逐层测试,局部修改,禁用不可用
• 典型问题
– COM组件,部分信任
– 文件路径问题
– Statelessness
– 版本问题:.NET, SQL
- 5. 应用迁移
• 包括.NET版本及工程类型修改、部分功能屏蔽、必要代
码修正
• website改为webapp
• 文件等包含在工程目录下,dll等包含在bin目录,以bin
deployment方式部署
• 路径问题
• 由于现有系统使用虚拟目录而Azure部署将会在网站根
目录,所以造成现有系统多处路径计算错误。
• 解决方案:新版本发版之前使用网站根目录部署并测试,
保证路径正确。同时路径计算相关问题加入开发规范,
统一路径计算处理。
• httphandlers,httpmodules 从system.web里移到
system.webserver里,改为 handlers,modules
- 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性能和稳定性需要评估。
- 10. 数据迁移-2
• 由于现有系统使用中文SQL Server开发,使得某些数
据表字段在SQL Azure英文环境下不支持中文输入。
同时一些SQL语句没有加入Unicode声明导致数据输
入、查询有误。
• 解决方案:数据库设计时,中文呢字段必须设置为
nvarchar。同时修改数据访问层,解决SQL语句运行
时没有加入Unicode声明的问题。
• insert 表里信息出现乱码,
insert into testtable values(newid() , N'你好'),前加大
写的N即可(select,update类似)
• 不支持NONCLUSTERED 应改为 CLUSTERED
• 没主键的表需要创建CLUSTERED