I will agree with cdhw. Profile Manager is a service I love to hate. Going from Server 3 to Server 5 is a big jump with a lot of changes to the underlying database. I've seen Profile Manager self-destruct on a dot dot OS patch. I am pretty confident it will self-destruct and take your geographic region with it on a two OS and two server version jump.
So before you begin, ask yourself if the upgrade is really needed. If you are buying new gear and embracing new features like DEP and the latest iteration of VPP, then you need to move to the latest. If you are supporting the same fleet and not altering the OS, then maybe your best bet is to stay where you are and continue to function.
This is not to say that and in place upgrade will not be successful. You may be lucky. If you are going to try the upgrade route, I strongly encourage getting the server into as much isolation as possible. Close any NAT/PAT maps to the server to ensure no external devices can access. Turn off as many client devices as possible. If you have an OD replica, destroy it BEFORE upgrading (you can add it later) Stop all stoppable services on the server. Shutdown the server. Reboot to alternate volume. Create a DMG restorable clone of the server. Confirm that it is restorable. Perform the upgrade, ensuring that no services are active until you valid the required service chain. After final reboot, make sure ARD is working (usually the management ports are active but the control/observe functions are busted), make sure DNS is working. Don't start any services until DNS and server identity if validated as unchanged. Validate one service at a time. Go into OD and make sure you can add, delete, and EDIT accounts. Do this test repeatedly (meaning at least 6 times). If you have any problems, revert to your backup. If OD checks out, then launch Profile Manager. Cross fingers. Watch the system log during Server.app install/upgrade and when launching individual services. Use tail -f /var/log/system.log to watch the log live. In a second Terminal windows use the logger command to ender break points, such as logger "starting server.app upgrade now"
Once Profile Manager fires up, hit the web admin first. Confirm that all users, groups, and devices are present. Check your payloads. Try and create a bogus placeholder to confirm DB write. If you get this far, turn on one machine. Send a blank push to the one machine or force and update. Confirm that no errors appear on the machine and that the push is successful (meaning it does not sit forever in pending). Create a new payload just for the test machine. Confirm delivery of the payload.
If you are already doing VPP, get a free App, make sure it appears, and assign it to the test device. DEP is new so there will be no means of testing unless you buy your latest round through DEP association. If you have a spare device, try and enrollment. If all functions check out, then open up your network, turn on your other devices, and rejoice in the glow of success.
Out of curiosity, I am guessing you are a school. How large is your fleet and are you supporting both iOS and OS X?
Reid
Apple Consultants Network
Author - "El Capitan Server – Foundation Services"
Author - "El Capitan Server – Control & Collaboration"
Author - "El Capitan Server – Advanced Services"
:: Exclusively available in Apple's iBooks Store