I have a legacy application that communicates with a remote server over TCP. The legacy application act as a server and a client at the same time. The port numbers on both sides are established and cannot be changed (they have been hardcoded on both – the server and the application).
I am trying to scale up the application to run more instances, and I am looking for the best alternatives. Spinning multiple VMs is defiantly an option, but I am trying to achieve the same using containers. I can run the legacy application in Windows or Linux containers. The problem is that when I run multiple containers, I need them to have accessible IP & ports to act as TCP listeners so that the server can establish a connection back. Is there a possibility to scale the containers in such a way that they will not go through NAT and each one of them will have accessible IP?