In previous editions of Ansible, for each play that is being executed,
all hosts in the play start on their journey at the exact same time.
This means that if you had a batch of 50 servers, you are upgrading
all of them at once. This is potentially suboptimal (to say the
least), but could be controlled manually using the "--limit" keyword,
which was recently implemented, but ... you still had to do that
manually.
It's much more awesome now.
Starting with *now*, each play now has a a "serial: " keyword, which
is optional -- which controls the size of the playbook batch. If not
set, the default is to run all hosts in the play in parallel.
However, you can now decide how many you want to run at once, whether
one at a time, or 3 at a time, etc. This is independent
of the levels of SSH parallelism you use.