From Production to Staging Environment

What? & how? is the major question here.

How do i get a setup that helps me push updates to the live site like standard web companies like wpmudev do.

One instance would be wpmudev: i remember how their website used to look, they pushed their update (new design) and everything changed without breaking anything.

I want to be able to test wordpress updates before pressing a "push to live" button, i want to be able to test an update of wpmudev plugin before pushing live.

Doing all of these things live, most times from my experience, breaks things, causes error, which is not nice at all: this happens to my site alot.
I wake up every morning and something changes on facebook...

Sooo, how do i setup a system for this process and also allows for team collaboration. Any reference, and advice would be appreciated.

From my numerous search on google, i came across this post

but wasnt able to make sense of it.

Someone please help with a step by step on how to set this system up. Thanks and God bless.