I've heard both used to describe the idea of deploying an update on new machines while keeping old machines active, ready to rollback if an issue occurs. I've also heard it used to describe sharing load between updated services and old service, again for the purpose of a rollbacks —sometimes terminating inactive older patches and sometimes not.
My understanding also is that it is strictly for cloud services.
Can someone help to demystify these terms?
Both blue/green and red/black deployment represent the same concept.
While the first is the most common term, the latter seems to be used mainly in Netflix and their tools (like Spinnaker).
They apply only to cloud, virtualized or containerized services in the sense your infrastructure has to be automatable in order to make sense of this approach.