3

I'm interested to know how likely it is that the following steps will result in the application running on my new machine will mirror the application on my production machine.

Background: I have Windows application running in a Windows 2008 R2 VM in my on-prem datacenter. I need to migrate this server application to the cloud (AWS). I want the server application to retain all of the user information and configuration information. Due to security restrictions I am unable to image the on-prem VM and export it to AWS.

Proposed Solution:

  1. Launch the AWS instance using the same version of Windows (Windows Server 2008 R2).
  2. Run the same installer on the AWS instance that was run on the existing production server.
  3. Delete the C:\Program Files\My_Server_App and replace it with the equivalent directory from my existing on-prem VM.

This method assumes that all the necessary files are stored in C:\Program Files\My_Server_App.

Any thought or suggestions would be greatly appreciated! Thanks!

user409449
  • 41
  • 1
  • 1
    You need to find out how the program stores its resources. Most likely it stores stuff in Windows registry, maybe some files located somewhere in the flesystem. It all depends on the actual application. You'll get best information from the application developer. – Tero Kilkanen Apr 06 '17 at 19:25
  • I recognize that it would store stuff in the registry, but isn't that static? By that I mean doesn't that remain the same after the initial installation procedure. I was trying to get around that by performing the install and then just moving the Program Files into place. I'm a Windows noob so I could very well be wrong about that. – user409449 Apr 06 '17 at 20:11
  • 2
    The registry data might be static, but it also might not be. We cannot guess since we know nothing about the application. The application developer does. – Tero Kilkanen Apr 06 '17 at 20:33
  • I'm in contact with the developer. Awaiting an answer as we speak. Thanks for your input. – user409449 Apr 06 '17 at 22:04

3 Answers3

3

We don't really have enough information about your application to answer this question completely, IMHO, but....

Where does the application store data and configuration information? Does it store it in a database? The registry? Files on the hard drive? All of the above? You need to understand this in order to migrate all the user and configuration information.

Will the directory paths stay the same (they should, otherwise you might end up editing the registry/database/configuration files/etc.).

Does the application store information about the server (servername, etc.) in the registry/database/configuration files? If so, you'll probably need to edit the registry/database/configuration files.

If you absolutely can't migrate the whole VM into AWS, like Craig Watson suggested, I'd probably:

  1. Install the application using the same installer into identical directory paths. (The application might store dlls in Windows, for example, so you would want to run the installer, yes.)
  2. Copy any related database/registry keys/configuration files to the new server and import them, possibly after judiciously editing them. (If it does use a database, you might need to change permissions on the database.)
  3. Test, test, test.

That doesn't guarantee it'll work, because the application might have some other anti-tampering coding in it (I used to work with a license server that stored the MAC address in a hidden file to prevent you from moving it to a new server without proper licensing, for example).

Oh, and I would not copy \program files\your application wholesale, unless that's the only place it stores config files/user data. Even so, I'd leave the binaries alone.

Katherine Villyard
  • 18,550
  • 4
  • 37
  • 59
  • 1
    Thank you for your lengthy response. I do not know the answers to your questions at this point, but I am in contact with the developers to get an answer. It is good to know that in theory it might work. My only question is why not copy the binaries? It seems like they are the only things that are going to remain the same for certain. They don't license the server, only the client. – user409449 Apr 06 '17 at 22:08
  • Well, you certainly could. I was just hoping to keep the install as close to "fresh" as possible. (Edit: Actually, depending on how the applications is patched, this might be wrong advice. But a mismatch between the binaries in program files and any dlls in Windows might be bad.) – Katherine Villyard Apr 06 '17 at 22:46
1

Rather than hacking your application into a new installation, I would personally recommend migrating the server OS wholesale into AWS, and then cleaning up the OS and removing unwanted applications.

For VMware, there is the AWS Management Portal for vCenter and in general you could look at the AWS Migration Service and VM Import.

Craig Watson
  • 9,575
  • 3
  • 32
  • 47
  • 1
    Thank you for the input. Unfortunately, this approach is not an option for me. My company only allows me to launch hardened AMIs that they provide and then build on top of that. – user409449 Apr 06 '17 at 20:08
1

Since we know no much about your application, I would suggest you ask your developers about app's PATHs and registry keys and data.

Once you would have the required information, deploy fresh AMI and install your application in AWS. By the way to relocate/migrate your application simply zip application data from PATHs on-prem VM and unzip them to corresponding PATHs on AWS AMI.

Mr. Raspberry
  • 3,918
  • 13
  • 32