Deployment pipeline best practices

I am soon to begin a single instance Enonic project for my workplace. While the Enonic docs are fairly good, it doesn’t say too much about how a typical or recommended XP development to production process could or should look like.

From a former project I was involved with at my previous workplace, we built a fair amount of custom dev setup to simulate the setup on the hosted Enonic cloud we would use for production (cc @Jonas). From here it was a matter of a straightforward Jenkins build script to deploy a new version of our app. Is this a typical setup for others?

Gaining momentum I would guess a lot of XP users have built a dev, build and deployment pipeline that works well for them in an unclustered server setup. Could anyone share some experiences on how their pipeline works?

In this upcoming project we won’t have 24/7 permanent badass continous delivery ops ninja skills, but would like a sensible setup that let’s us focus on development, and have a simple click-a-(few)-button(s)-deployment to production when we are happy with a new part, have made some fixes, or even want to upgrade XP. A few minutes of downtime is perfectly acceptable in our case.