What are the applications (server apps, client apps, infrastructure solutions s/w & h/w) which we are using currently that are vulnerable to this bug ?
Hardware mostly isn't directly affected, most real time clock chips do not work in unix-time. Even if they did there are relatively easy workarounds. This is a software problem first and foremost.
Most 32-bit Unix-like systems and the applications running on them are badly affected. They have 32-bit time_t as a central component of the platform ABI.
64-bit Unix-like systems normally use 64-bit time as their main representation, so they aren't as badly affected, but some impact is still likely due to sloppy code that passes time around using the wrong data types or due to file formats that are designed around 32-bit Unix time.
What are the solutions for the year 2038 bug?
The normal soloution is to replace 32-bit time with 64-bit time. How difficult that is depends on the scenario. If it's just an internal variable or parameter that isn't exposed on any stable external ABIs then it's fairly easy to fix.
On the other hand replacing it in the platform ABI is hard to do without having a "flag day" where everything has to be rebuilt at once or creating two seperate worlds of legacy software and current software with completely seperate sets of libraries.
It can be done, through an approach similar to that taken for large file support, but time spreads far more broadly through the platforms libraries than file size does.
For file formats, a transition period is likely to be required. First a new version of the format is defined, then the software needs to be upgraded to read the new format. Finally the software needs to start writing files in the new format.
In some situations an alternative soloution may be to stick to 32-bit but change the time window, for example if you know that your system will not have any pre-1970 timestamps and does not use negative numbers as flag values, you might choose to move to a 32-bit unsigned quantity.
How is it possible to upgrade our solutions and applications to deal against the problem?
For full-sized servers you are probablly already running a 64-bit OS, so the basic underlying platform stuff should already be there and you can focus on looking for issues in your applications. Spin up a server with a future date and see what breaks.
For embedded stuff where running a 64-bit OS isn't reasonable or even possible things look much less rosy. Until/unless the major upstream libraries and distros get things sorted out on their side it's difficult to do anything at the application level.