¿Qué papel juegan las herramientas de administración de configuración en la infraestructura inmutable?

12

Si estoy usando servidores / contenedores inmutables , ¿necesito herramientas como Chef, Puppet, Ansible o Salt? Esas herramientas de administración de configuración están diseñadas para establecer una configuración y luego mantenerla.

Si estoy implementando servidores inmutables, ¿debo usar las herramientas de administración de configuración solo para el aprovisionamiento inicial?

Dave Swersky
fuente

Respuestas:

12

Hay algunas respuestas a eso:

  1. Algo necesita para construir esas imágenes inmutables. Ciertamente, es más fácil usar secuencias de comandos de procedimiento de la vieja escuela para construir algo al comenzar desde un estado inicial conocido, pero esto puede volverse muy difícil de manejar con el tiempo (por ejemplo, Dockerfiles), especialmente cuando terminas queriendo una gran matriz de imágenes diferentes para cosas como diferentes versiones de software, diferentes entornos, etc. Packer y otras herramientas de creación de imágenes se integran muy bien con Chef, Ansible, Puppet, Salt y más.

  2. La inmutabilidad es un espectro, no un binario. Incluso en una implementación "muy inmutable", no es raro tener algunos archivos de configuración que necesitan administración de tiempo de ejecución. Este es también un lugar donde puede usar las herramientas CAPS, aunque las opciones más livianas como las Plantillas Consul o etcd podrían tener más sentido dependiendo de la infraestructura general. Si está utilizando servidores de aplicaciones inmutables pero sus servidores de bases de datos se administran más tradicionalmente con Chef, entonces podría tener sentido usar Chef incluso en el lado inmutable para tareas de administración menores.

  3. Gestión de día cero. La inmutabilidad es agradable, pero ¿qué vas a hacer cuando caiga el próximo día OpenSSL 0? Si tiene su canal de compilación en condiciones de crear imágenes de revisión inmediatas e implementarlas, entonces eso es genial. Pero muchas personas probablemente no tendrán ese tipo de habilidad de giro rápido.

  4. Cosas que no pueden ser inmutables. La falta de respuesta, pero un infra completo rara vez es 100% inmutable. Cosas como los servidores de bases de datos y las estaciones de trabajo de desarrolladores (sí, son parte de su infraestructura) se encuentran entre difíciles e imposibles de hacer inmutables.

coderanger
fuente
Estás haciendo muchas suposiciones sobre "muchas personas". Aquellos que no pueden generar imágenes para su infraestructura inmutable, probablemente no tengan la infraestructura inmutable para empezar.
Evgeny
Existe una gran brecha entre "se puede implementar usando contenedores inmutables" y "se puede reconstruir y volver a implementar cada contenedor en 6 horas, incluso con otras implementaciones en progreso".
coderanger
Y en mi experiencia, cuando tienes esa brecha (de 6 horas), no puedes tener una infraestructura inmutable. Tener servidores inmutables y construir servidores inmutables rápidamente no son habilidades idénticas, pero están estrechamente relacionadas.
Evgeny
Muchas personas que dicen "ejecutamos contenedores inmutables" no están en esa categoría. Por lo tanto, señalando que es un problema abordar, que fue el punto central de la pregunta.
coderanger
Puede definir "inmutable" para que signifique "nadie en SSH y hacer cambios manuales", porque no puede significar un cambio total, ya que cambian a sí mismos durante las operaciones normales. Incluso escribir un archivo pid es una mutación.
Cayo
0

El ambiente absolutamente inmutable es una mala idea, creo.

Las herramientas CM como Ansible, Chef, Puppet pueden ser útiles en muchos casos, incluido el suyo.

Estoy usando ansible para el aprovisionamiento inicial de instancias de VM en GCP.

Quarind
fuente