If you can't explain it simply, you don't understand it well enough.
Server Deployment Common Practice
User
You has a admin user call your name. Say roychung for me. And other admin has own account too.
A user call deploy or your service name for the main service of your written code. It should not be a sudoer. And suppose you cannot login via ssh.
For different service, may be redis. You may consider to open an account for it too.
So how to deploy to the deploy user? You may consider using sudo su deploy
Using Fabric for deployment, login with your own admin account and sudo su make your life easier when there are several server
Using redis as example, you may use sudo to install redis (or using redis user install on it home folder), but running redis command will be using that redis user. So other user can modify it without knowing your account