User data is used for configuring/augmenting the provisioning process of a new VM instance by the cloud provider. In the simplest case, this is just another shell script. However, many cloud providers provide images with pre-configured cloud-init. This tool can do a lot more in an easier way. It even allows multipart config data which is why you can add multiple snippets here. Please be aware, that some providers limit the total amount of data. Please read the cloud-init documentation and ask your provider about those limits.
Also note: If using multipart data, we enforce merging of multiple yaml snippets. More info about this feature here. Finally, with some providers (like Rackspace for example), you must also enable the config drive option further below in order to take advantage of this feature.