You keep two complete copies of your production stack. At any moment one is live (say blue) and the other is idle (green). Blue is the version your users are hitting right now. Green sits there ready, either empty or running the previous release.
To ship a new version, you deploy it to green while blue keeps serving every request. Nothing your users do touches green yet, so a broken build or a bad migration there cannot hurt anyone. You run smoke tests, health checks, and maybe a synthetic transaction or two against green directly.
Once green looks healthy, you change one thing: the traffic router. That can be a load balancer target group, a DNS record, a service mesh route, or a reverse proxy upstream. The instant the switch flips, every new request goes to green. Green is now live, blue becomes the idle standby, and you have a tested rollback target already warmed up.
The name comes from the two-color labeling. There is nothing special about the colors. Some teams call them slot 1 and slot 2, or active and inactive.