https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_...
When you say "complex ride" what does that mean?
They do suggest a backup before you run this in case there are problems, most folks have periodic backups anyways, but the backup is not used.
On managed postgresql services like RDS it's easy, yes, because Amazon does all of the nasty work for you and has already seen all the kinks you may run into.
If you are on your own and using Docker, you essentially need a third-party image that has the old and new binaries (https://github.com/tianon/docker-postgres-upgrade). Good f...ing luck if you dare run PostgreSQL inside a Kubernetes environment, because adapting that guide to that is a can of worms large enough to make anyone squirm.
If you are on your own and are using distribution packages, it's more complicated (https://blog.samuel.domains/blog/tutorials/from-stretch-to-b...).
If you are on your own and use postgres from source, well... have fun, there's a reason why I prefer using distribution-maintained packages when possible.
EDIT: Oops, guess you meant version updates not DDL. Leaving comment for posterity.