这次migration的scope包括约30个Web程序,分布在7个服务器上(Web Server + DB Server)。有些程序相互之间有接口,有些程序和Oracle的HR模块(不在这些服务器上)有接口,有些程序采用了SSO认证机制。所有的程序都是用ASP开发,部分程序还有offline的VB应用程序被使用;许多程序把业务逻辑都被写成存储过程放在SQL Server上,由程序调用;也有些存储过程被直接作为SQL Server的Job定期运行。
这次migration的目标是把这些程序从7个服务器上migrate到1个Web服务器加上1个DB服务器上,各个程序的目录结构重新规划,需要决定新的URL路径。由于这些业务系统一直被用户使用着,migration不能对用户的使用造成任何影响。考虑到用户的使用习惯,用户大都通过Portal里面的链接或者自己收藏的Favorite链接访问自己的应用程序,migration不应该对portal进行改动,用户可以通过以前的URL访问,感觉不到migration的变化。所以Server team需要对旧的URL和IP做重定向,指向新的URL。
在对项目进行分析后我们列出了一个checklist,包括了这次migration在制定Migration Plan时需要考虑到的方方面面的问题:
1. Migration涉及到不同的Team,需要有各个Team的人员组成一个Migration Project Team,负责各个Team的coordinator,Book各个Team关键人员的时间,保证各个Team之间的交流顺畅。
2. 准备好DEV/STG/PRD(Development/Staging/Production)环境。
3. 配置新的程序运行环境。
a) 启动IIS6 Web服务;
b) 启动SQL Server2000数据库服务;
c) 安装/注册JMail组件并启动SMTP服务;
d) 安装/注册Word/Excel读写组件;
e) 安装SiteMinder Web Agent;
4. 源代码的Copy需要保证文件系统的权限(读写执行)和IIS的特殊设置在copy前后保持一致。(这由Server team使用专门的工具完成)
5. 检查ASP代码中的数据库连接部分,需要把数据库连接指向新的DB Server。
6. 检查ASP代码中的邮件发送部分,需要改变邮件服务器地址指向新的邮件服务器。
7. 检查存储过程代码中的数据库连接部分,需要把数据库连接指向新的DB Server。
8. 检查存储过程代码中的邮件发送部分,需要改变邮件服务器地址指向新的邮件服务器。
9. 检查VB程序源代码中的数据库连接部分,需要把数据库连接指向新的DB Server。
10. 检查VB程序代码中的邮件发送部分,需要改变邮件服务器地址指向新的邮件服务器。
11. 检查程序与其他应用程序的接口部分,并按照以下情况执行:
a) 如果是要migrate的程序自己向其他应用程序的数据库写数据,或调用其他应用程序的服务,migration时不做改动;
b) 如果是其他应用程序向要migrate的程序数据库写数据,或调用要migrate的程序的服务,其他应用程序需要做相应改动,指向新的地址。
c) 如果是要migrate的程序之间有接口,检查代码中是否有指向程序地址的Hard Coding。如果有,需要改动并指向新的地址;如果没有,不需要改动。
12. SSO程序重新配置。(由SSO team完成)。
13. 数据库migration。DB的访问权限、数据、数据库Job等所有数据库对象需要在migrate前后保持一致。(由DBA Team完成)。
14. 数据库切换要在非Business时间进行。切换前要通知所有用户该系统要有一个Outage。然后将旧的Web Server和DB server服务停止,新的Web Server和DB Server服务启动,这样如果用户开始使用,数据就会写入新的数据库,不会发生数据丢失的情况。
15. 旧的系统在删除前要保留一段时间,一般可以是3个月或更长,具体根据实际需要。