First to start, you will have the following steps:
- Apply binary to all Servers
- Run Upgrade-SPContentDatabase
- Perform PSConfigui.exe on First Server (Pick any server it really doesn’t matter)
- Perform PSConfig.exe on the remaining servers
For the first step it is better if you can stop all SharePoint services on the server as this will allow the binary install to be faster (See this blog for more info), this will cause an Outage for each individual server as the services are stopped and the server is possibly rebooted.
For the second step you will run Upgrade-SPContentDatabase this will actually perform the database upgrade that used to be performed by PSConfig. I would recommend that you run several databases at the same time across several different servers to maximize time. And if you are using the correct version of SQL you can use snapshots to present a read only copy to end users while the database is being upgraded, for more info on this cmdlet see this article. This will cause an outage for each individual database while it is updated, however if you use the parameter -UseSnapshot this will improve downtime by giving you a read-only view of the Site Collections in the database.
In the third step we run PSConfig on any server for the first time, traditionally this was the Central Admin server but the reality is that it can be any server you want. During this phase we are upgrading all the other databases (Service Applications and Config). There will be downtime for the server where you run psconfig (Stops IIS) and for those services that it upgrades.
In the fourth step we run PSConfig against the remaining machines. Each server will have downtime while PSConfig runs on that machine as it stops and starts IIS.
Now that you have read thru that you should check out this script from my coworker Joe which helps to automate these steps. Do note that the script does not use the -UseSnapshot parameter but you could easily edit the script to use it if you are sure that you are running the correct version of SQL.
Depending on your Search configuration you may want to incorporate the commands in this blog while upgrading search servers to ensure that we minimize query downtime.