Estoy interesado en utilizar Chef (http://wiki.opscode.com/display/chef/Home) de manera operativa en nuestro entorno Windows \ Linux. ¿Podría alguien darme algunos ejemplos de cómo lo han usado y qué beneficios o dificultades ha experimentado?

Chef ya no es opscode. Puede probar sus increíbles tutoriales sobre cómo puede usarlo tanto para Windows como para Linux.

Aprenda los conceptos básicos de Chef en Windows Server -> windows

Aprenda los conceptos básicos de Chef en Red Hat Enterprise Linux -> Linux

Tiene opciones de servicio alojado, lo que significa que utiliza los servidores de chef alojados por CHEF.

O bien, puede instalar un servidor de chef y luego iniciar sus nodos de Windows / Linux con el cliente de chef. Esto lo ayudará a administrar todos los nodos de manera eficiente.

Chef solo es bastante viejo ahora, chef zero es la mejor herramienta cuando desarrollas tu código (libros de cocina)

Checkout Test Kitchen para desarrollar tus libros de cocina -> Introducción – KitchenCI

Una vez hecho esto, puede empujar sus libros de cocina al servidor de chef y luego administrar todos los nodos desde su estación de trabajo.

Ventajas: muchas de ellas

  1. Gestión de la configuración a través del código.
  2. consistencia de su entorno en DEV, STAGE, PROD. Utiliza los mismos libros de cocina para configurar. Los valores se pueden actualizar y se pueden separar para DEV, STAGE, PROD (por ejemplo, el tamaño grande para tomcat puede ser de 2GB en DEV pero de 8GB en prod)
  3. Configuración comprobable, ya no tiene que iniciar sesión manualmente en el servidor, depurar los problemas y probar varias cosas. Puede hacer pruebas de interacción directamente en su computadora de escritorio / portátil / estación de trabajo y ver cómo se están produciendo los cambios de configuración
  4. Un montón de libros de cocina en la comunidad para configurar todo lo que quieras, todo lo que necesitas es usar esos libros de cocina básicos e incluirlos en tus libros de cocina de envoltura

Problemas de escollos -> Puede encontrar que le toma 20 minutos pasar de cero a un entorno listo para producción, pero si esto es demasiado tiempo de inactividad para usted. Puede pensar en cambiar a una arquitectura inmutable, como la que usan netflix y google.

La precidencia de atributos es una parte difícil

La gestión de versiones y la gestión de dependencias se convierten en un problema con el tiempo cuando creces demasiado. Un libro de cocina puede depender de otros 50 libros de cocina, por lo que si algo se rompe en alguna de las dependencias, le llevará un tiempo darse cuenta de lo que realmente sucedió.

La actualización de los libros de cocina de la comunidad puede interrumpir los cambios en su sistema, por lo que debe tener cuidado al actualizar sus dependencias.

Estoy usando chef para fines de desarrollo y producción. Y lo que he encontrado realmente útil es usar chef solo con vagabundo http://vagrantup.com/docs/provis … para crear un entorno de desarrollo personalizado. El aprovisionamiento rápido y la capacidad de compartir NFS con el nodo host lo obligarán a crear un entorno aislado.