In one view of the world, there is no such thing. What works for one team might be completely inadequate for another.
We use Deployer. Within Deployer we use the “Runtime” project type but that has been deprecated by SAG in favor of “Repository” project type and the use of ABE. I won’t go into details here but I am very dismayed about this decision – and is an example of why there is no such thing as “best practice.” Using repository-based deployments is argued by some as the “right” way or “best practice.” But for us it offers zero added value and is mostly just a different way.