As far as I remember, this is possible. 1 APP server should work fine as well. The only must-have is 2 WFEs. Steps you need to do:
- Configure load balancing so that all traffic is redirected to another WFE if one is down;
- Connect to one WFE using RDC, run the usual
Add-SPSolutionin SharePoint Management Shell; - Run
Install-SPSolutionwith-Localattribute. This will deploy the .wsp locally; - Wait until solution is successfully deployed;deployed. You can check by running the following PS command:
Get-SPSolution solution.wsp | ? {$_.LastOperationDetails}. It should displayTrueunderDeployed. - Restart IIS and the SharePoint Timer Job Service on that server;server. Either manually or by running:
Restart-Service sptimerv4andiisreset; - Repeat steps 2-5 on the other WFE.
If I recall correctly, using the -Force attribute will recycle affected app pools, so be careful with that. I think the hardest part in all this is getting the load balancing configured properly.