This is purely a matter of opinion, but in my experience once scale gets large enough where something like Chef or Puppet looks more appealing you really should be looking at containers/pods. It seems to me that Ansible is hitting the right niche between being simple enough to massage the base image for your fleet of docker/kubernetes engines and still works well at a bit of pre and post work for building the containers themselves. It is definitely possible for a good Puppet or Chef system to scale up and handle the whole stack from top to bottom, but I sincerely think that the moment is passing both of those technologies by and the agentless nature of Ansible, its simplicity, and the fact that it leverages Python instead of Ruby is pushing Ansible forward and eclipsing tools that would have been considered competitors five years ago...