Migration

Hi all,

Would appreciate advise on my situation.

Currently server A is in production. Server A takes in data from Server X, does some processing and send to server Y. We are going to develop a different system in server B, something like an enhanced version of A. Server A will be retired once server B is commissioned. Server B is also required to take data from server X, does some processing and send to server Y.

What strategy should i adopt?

1) Develop B as a standalone. However, when i conduct end to end testing for B, B must also send results to Y. But because Y is an external server, it cannot take in results from A and B. The data will be out of sync*. If i were to adopt this strategy, how can i seperate the results from A and B ? Meaning, how can i verify that B is crunching the data correctly, and successful sending to Y ( eg, comparision with data from A) and at the same time only trigger the results from A to Y?
****
The reason that the data will be out of sync is because A may be sending
1 2 3,1,2,3
and B is sending 1,2,3.
Something like an summary of A. Y is only interested in unique values, hence B is more optimal
****
2) Develop B and at the same time bring in A. That is, while developing B, make provisions to integrate A. Hence only one copy of the results will be sent out. I can do comparision of the results from A and B.( to ensure B is developed correctly) and send results from A's processing. And if i need to retire A, i just cut of the provisions made earlier.

(2) seems initutive, but more importantly, have i missed out any critical gaps in my planning strategies?

Create a local dummy "server Y" for testing B. Use a development machine as the dummy Y server.

Run a parallel test. See if dummy "Y" and the real Y have identical data after a long run, with A-> real Y, B->dummy Y

Thank you for the suggestion.