My workflow has become quite large over the years so I can't post all the details here, but in general:
- inform yourself:
How to perform dist-upgrade procedure on server with Plesk
Chapter 4. Upgrades from Debian 8 (jessie)
- make sure that your domains will be compatible with the new version of PHP
- make a backup
- test it on a non-production server first (I used one where the domains have already been migrated away from, so by entering those domains in my HOSTS, I am still able to access them on the old server)
- switch to MariaDB
- update to the latest Plesk version
- make a backup
- run /opt/psa/bin/distupgrade.helper.deb8-deb9_pre.x64.sh
- follow instructions from Debian regarding the upgrade to Stretch
- run /opt/psa/bin/distupgrade.helper.deb8-deb9_post.x64.sh (will print out massive amounts of debugging messages, but Plesk support doesn't see this as something that should be fixed (already with the previous upgrade)
- fix any issues that may arise
My workflow also includes stuff like deleting old inactive configuration files from packages, comparing new configs, updating Perl, fixing minor known issues that I experienced on previous upgrades, and so on...