En mi humilde opinión, la única ventaja de una arquitectura de extracción maestro / agente es que se puede usar en una red con firewall (cuando la configuración real se encuentra fuera de esa red) sin abrir agujeros en el firewall, mientras que la arquitectura de inserción no puede.
En términos de flexibilidad, creo que el problema más importante es la configuración mínima requerida en un nodo para que sea manejable de forma remota. Una vez que se cumple este requisito, ambas arquitecturas pueden manejar las actualizaciones. Una arquitectura maestro / agente necesita el agente instalado, configurado y en ejecución. Por un lado, Puppet y Chef no están (todavía) instalados por defecto en la mayoría de los sistemas, mientras que sshd (que necesita Ansible) sí. Por otro lado, incluso Ansible necesita sshd en ejecución y las credenciales configuradas en el nodo para ser accesibles, por lo que diría que no hay mucha diferencia desde esta perspectiva, especialmente si la configuración mínima se logra a través de imágenes de sistema personalizadas.
En términos de escalabilidad, consideraría la arquitectura maestro / agente menos escalable (pero solo un poco):
si el maestro intenta mantener activamente un estado del sistema en vivo (es decir, el mapa de todos los agentes y sus estados), eso consumiría algo de tiempo / recursos. Sin un maestro, Ansible no es susceptible a este problema de escalabilidad. Por supuesto, incluso las arquitecturas maestro / agente pueden ofrecer un enfoque escalable para proporcionar un estado general del sistema similar al de Ansible (y probablemente todos lo hacen hoy en día).
En los viejos tiempos, cuando el maestro realmente manejaba las tareas de configuración del agente (como se menciona en la publicación a la que hizo referencia en su respuesta), la escalabilidad de dicha arquitectura podría sufrir mucho. Pero esto ya no es un gran problema ya que para todas las herramientas mencionadas en su pregunta, la configuración simplemente se transfiere al nodo local que luego realiza las tareas.
cuando se trata de transferir las configuraciones a los nodos locales, una arquitectura de extracción está limitada solo por la capacidad de servir esas configuraciones (comunes a ambas arquitecturas), pero un maestro / agente también necesita ejecutar las transferencias de conducción lógica y realmente hacer la transferencias, si corresponde (es posible indicar a los agentes que extraigan sus propias configuraciones), lo que limita la rapidez con que el maestro puede propagar configuraciones a una gran cantidad de agentes.