In 2010, Cloud Computing is likely to see increasing adoption. Migrating Web applications from one data center to another is a complex project. To assist you in migrating Web applications from your hosting facilities to cloud hosting solutions like Amazon EC2, Microsoft Azure or RackSpace’s Cloud offerings, I’ve published a set of checklists for migrating Web applications to the Cloud.
These are not meant to be comprehensive step-by-step, ordered project plans with task dependencies. These are checklists in the style of those used in other industries like Aviation and Surgery where complex projects need to be performed. Their goal is get the known tasks covered so that you can spend your energies on any unexpected ones. To learn more about the practice of using checklists in complex projects, I recommend the book Checklist Manifesto by Atul Gawande.
Your project manager should adapt them for your project. If you are not familiar with some of the technical terms below, don’t worry: Your engineers will understand them.
Pre-Cutover Migration Checklist
The pre-cutover checklist should not contain any tasks that “set the ship on sail”, i.e. you should be able to complete the pre-cutover tasks, pausing and adjusting where needed without worry that there is no turning back.
- Set up communications and collaboration
- Introduce migration team members to each other by name and role
- Set up email lists and/or blog for communications
- Ensure that appropriate business stakeholders, customers and technical partners and vendors are in the communications. (E.g. CDN, third-party ASP)
- Communicate via email and/or blog
- Migration plan and schedule
- Any special instructions, FYI, especially any disruptions like publishing freezes
- Who to contact if they find issues
- Why this migration is being done
- Design maintenance message pages, if required
- Setup transition DNS entries
- Set up any redirects, if needed
- Make CDN configuration changes, if needed
- Check that monitoring is in place and update if needed
- Internal systems monitoring
- External (e.g. Keynote, Gomez)
- Create data/content migration plan/checklist
- Databases
- Content in file systems
- Multimedia (photos, videos)
- Data that may not transfer over and needs to be rebuilt at new environment (e.g. Search-engine indexes, database indexes, database statistics)
- Export and import initial content into new environment
- Install base software and platforms at new environment
- Install your Web applications at new environment
- Compare configurations at old environments with configurations at new environments
- Do QA testing of Web applications at new environment using transition DNS names
- Review rollback plan to check that it will actually work if needed.
- Test parts of it, where practical
- Lower production DNS TTL for switchover
During-Cutover Migration Checklist
- Communicate that migration cutover is starting
- Data/content migration
- Import/refresh delta content
- Rebuild any data required at new environment (e.g. Search-engine indexes, database indexes, database statistics)
- Activate Web applications at new environment
- Do QA testing of Web applications at new environment
- Communicate
- Communicate any publishing freezes and other disruptions
- Activate maintenance message pages if applicable
- Switch DNS to point Web application to new hosting environment
- Communicate
- Disable maintenance message pages if applicable
- When publishing freezes and any disruptions are over
- Communicate that the Web application is ready for QA testing in production.
- Flush CDN content cache, if needed
- Do QA testing of the Web application in production
- From the private network
- From the public Internet
- Communicate
- The QA testing at the new hosting location’s production environment has passed
- Any changes for accessing tools at the new hosting location
- Confirm that DNS changes have propagated to the Internet
Post-Cutover Migration Checklist
- Cleanup
- Remove any temporary redirects that are no longer needed
- Remove temporary DNS entries that are no longer needed
- Revert any CDN configuration changes that are no longer needed
- Flush CDN content cache, if needed
- Check that incoming traffic to old hosting environment has faded away down to zero
- Check that traffic numbers at new hosting location don’t show any significant change from old hosting location
- Soon after launch
- A few days after launch
- Check monitoring
- Internal systems monitoring
- External (e.g. Keynote, Gomez)
- Increase DNS TTL settings back to normal
- Archive all required data from old environment into economical long-term storage (e.g. tape)
- Decommission old hosting environment
- Communicate
- Project completion status
- Any remaining items and next steps
- Any changes to support at new hosting environment
The checklists are also published on the RevolutionCloud book Web site at www.revolutioncloud.com/2010/01/checklists-migration/ and on the Checklists Wiki Web site at www.checklistnow.org/wiki/IT_Web_Application_Migration
Hi Rajiv,
I'm planning to host a simple e-commerce site developed using java based technologies which will run on a tomcat server, uses MySQL as the backend DB and most likely will have Apache http server as the web server for serving static content.
Now I was originally looking at traditional hosting providers like "GoDaddy" or "Eapps". However would it possible for me to host the application on the Cloud? Am I going to get the same administrative features that I get with the traditional hosting providers? Is it going far too much expensive?
Not really finding answers to the above but I need to take a decision soon. Any response is appreciated.
Cheers
Rajib D