Knowledge Base/Engine Yard Cloud Documentation/Migrate Applications

Migrate to Engine Yard Cloud

Engine Yard
posted this on February 16, 2012 10:03 AM

This page describes how to migrate your application from your current environment to the Engine Yard Cloud. While many applications will run without any changes, some applications may require some configuration changes or customizations to take advantage of the Engine Yard Cloud service.

To ensure you have as quick and smooth a migration as possible, it is important to plan each step of the process - and to test.

Prerequisites

Prepare your application

  • Deploy your app:
  • Test your setup for functionality. Some common areas to look for:
    • Ensure all areas of your application are functional.
    • Make sure you can deliver email, if needed.
    • Assets are being served properly.
    • Check that your app can properly connect to the database.

Finalize your migration

  • Iterate through your migration plan skipping any steps that will affect your current production environment.
  • Update or add any steps as needed.
  • Continue to iterate until you can run through the migration without any issues.
  • Schedule the final cut-over and communicate the maintenance to your users.

Special requirements

Some applications have special considerations when migrating such as very large databases or very large traffic volumes. If you feel that your application falls into either of these categories please read on.

Large data sets

If you have a large database, say over 2 GB, then you may not want to wait while you dump, compress, move, uncompress, and load your database. If this is the case we suggest that you contact our support organization for an assisted data move. Through our Professional Services Program we can setup a replication stream from your current DB to your cloud DB.

During the final cut-over one of our DBAs will be able to work with you to promote the new cloud DB to a master DB, ensuring that replication is completely caught up. This can take the move from a few hours to a few minutes.

Heavy traffic applications

If you have a heavy traffic pattern it’s very important to make sure you properly size your new environment before migrating your users to your new environment. To give you peace of mind you can setup a load test. Using em-proxy you can setup a load test with live traffic. Coupling this with New Relic will allow you to review your cloud performance during your heaviest traffic times and make any needed adjustments.

Read more on how to load test with real production traffic.

The final cutover

When it’s time for the final cutover you should have a nice migration guide that was fleshed out by walking through the steps above. Make sure you start the migration inside of a maintenance window that has been set with your end users. Here are some things to be aware of during the final cutover.

  • In your current hosting environment put up your maintenance page and stop your application prior dumping the database. You want to be absolutely sure that your users are not still writing to the old database after you start the dump.
  • Make sure you shut off any crons and/or background processes that modify data. This includes letting any queued processes finish running (if you are using something like Resque).
  • Lowering your TTL for your DNS a few days prior to the cutover will result in quick DNS updates.
  • Updating your DNS entries to point to cloud is the point of no return. After you do this, you’ll be taking live traffic on your new cloud environment. As such it is especially important that you do one final test against your cloud setup before you update DNS.

If you have feedback or questions about this page, add a comment below. If you need help, submit a ticket with Engine Yard Support.