¿Qué es Chef? - Una herramienta utilizada para la gestión de la configuración



Este blog sobre What is Chef es el primer blog de la serie de blogs Chef. Habla sobre la gestión de la configuración y cómo Chef logra eso usando un caso de uso.

Chef es una herramienta que se utiliza para la gestión de la configuración y compite estrechamente con Marioneta . En este blog, explicaré Qué es Chef, Configuration Management y cómo Chef logra Configuration Management con un caso de uso.

¿Qué es Chef?

Chef es una herramienta de automatización que proporciona una forma de definir la infraestructura como código. Infraestructura como código (IAC) simplemente significa que administrar la infraestructura escribiendo código (Automatización de la infraestructura) en lugar de utilizar procesos manuales. También puede denominarse infraestructura programable. Chef utiliza un lenguaje específico de dominio (DSL) puro Ruby para escribir configuraciones del sistema. A continuación se muestran los tipos de automatización realizados por Chef, independientemente del tamaño de la infraestructura:





  • Configuración de infraestructura
  • Despliegue de aplicaciones
  • Las configuraciones se gestionan en toda su red

Me gusta Marioneta que tiene una arquitectura Master-Slave, incluso Chef tiene una arquitectura Cliente-Servidor. Pero Chef tiene un componente adicional llamado Workstation. Hablaré de la estación de trabajo en mi próximo blog. Consulte el diagrama a continuación:

Chef vs Puppet - ¿Qué es Chef? - Edureka



En Chef, los nodos se actualizan dinámicamente con las configuraciones en el servidor. Se llama Configuración de extracción lo que significa que no necesitamos ejecutar ni un solo comando en el servidor Chef para impulsar la configuración en los nodos, los nodos se actualizarán automáticamente con las configuraciones presentes en el servidor. Mi próximo blog en Chef Tutorial explicará la arquitectura de Chef junto con todos los componentes de Chef en detalle.

Ahora, veamos las razones detrás de la popularidad de Chef.

Qué es Chef - Métricas clave de Chef

  • Chef es compatible con múltiples plataformas como AIX, RHEL / CentOS, FreeBSD, OS X, Solaris, Microsoft Windows y Ubuntu. Las plataformas de cliente adicionales incluyen Arch Linux, Debian y Fedora.
  • Chef puede integrarse con plataformas basadas en la nube como Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure y Rackspace para aprovisionar y configurar automáticamente nuevas máquinas.
  • Chef tiene un apoyo comunitario activo, inteligente y de rápido crecimiento.
  • Debido a la madurez y flexibilidad de Chef, está siendo utilizado por gigantes como Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace, Get Satisfaction, IGN, Marshall University, Socrata, University of Minnesota, Wharton School de la Universidad de Pennsylvania, Bonobos, Splunk, Citi, DueDil, Disney y Cheezburger.

Según Phil Dibowitz, ingeniero de producción, Facebook



“Hay tres dimensiones de escala que generalmente consideramos para la infraestructura: la cantidad de servidores, el volumen de diferentes configuraciones en esos sistemas y la cantidad de personas necesarias para mantener esas configuraciones. Chef proporcionó una solución de automatización lo suficientemente flexible como para adaptarse a la dinámica de nuestra escala sin necesidad de que cambiemos nuestro flujo de trabajo '.

Sin lugar a dudas, Chef es una de las herramientas de gestión de configuración más famosas y compite estrechamente con Marioneta . Pero, antes de profundizar en 'Qué es Chef', es justo que primero explique qué es la Gestión de la Configuración y por qué es importante.

Gestión de la configuración

No se preocupe, no habrá una definición estricta de Gestión de la configuración en este blog :)

Permítanos entender la administración de la configuración de esta manera: suponga que tiene que implementar un software sobre cientos de sistemas. Este software puede ser un sistema operativo o un código o puede ser una actualización de un software existente. Puede hacer esta tarea manualmente, pero ¿qué sucede si tiene que terminar esta tarea durante la noche? Gran día de mil millones venta en la empresa o alguna METRO o Rebaja etc. en los que se espera un tráfico intenso. Incluso si pudiera hacer esto manualmente, existe una alta posibilidad de errores múltiples en su gran día. ¿Qué pasa si el software que actualizó en cientos de sistemas no funciona? ¿Cómo volverá a la versión estable anterior? ¿Podrá realizar esta tarea manualmente? ¡Por supuesto que no!

Para resolver este problema, se introdujo Configuration Management. Mediante el uso de herramientas de gestión de la configuración como Chef, Puppet, etc., puede automatizar esta tarea. Todo lo que tiene que hacer es especificar las configuraciones en un servidor centralizado y, en consecuencia, se configurarán todos los nodos. Permite el acceso a un registro histórico preciso del estado del sistema para fines de auditoría y gestión de proyectos. Básicamente, necesitamos especificar las configuraciones una vez en el servidor central y replicarlas en miles de nodos. Configuration Management ayuda a realizar las siguientes tareas de una manera muy estructurada y sencilla:

  • Averiguar qué componentes cambiar cuando cambian los requisitos.
  • Rehacer una implementación porque los requisitos han cambiado desde la última implementación.
  • Volver a una versión anterior del componente si lo ha reemplazado por una versión nueva pero defectuosa.
  • Reemplazo del componente incorrecto porque no pudo determinar con precisión qué componente se suponía que debía reemplazarse.

Consulte mi blog sobre Puppet para saber cómo NYSE ahorró millones de dólares con la ayuda de Configuration Management

Existen, en términos generales, dos formas de administrar sus configuraciones, a saber, configuraciones Push y Pull.

  • Configuración de extracción: En este tipo de gestión de la configuración, los nodos sondean periódicamente un servidor centralizado para obtener actualizaciones. Estos nodos están configurados dinámicamente, por lo que básicamente extraen configuraciones del servidor centralizado. La configuración de extracción es utilizada por herramientas como Chef, Puppet, etc.
  • Configuración de inserción: En este tipo de gestión de la configuración, el servidor centralizado envía las configuraciones a los nodos. A diferencia de Pull Configuration, hay ciertos comandos que deben ejecutarse en el servidor centralizado para configurar los nodos. Herramientas como Ansible utilizan la configuración push.

Aprenda varios componentes de la Gestión de la Configuración en mi Blog Tutorial de Puppet

Ahora es el momento adecuado para que lo lleve adelante en esta búsqueda de entender “¿Qué es Chef?” Al explicar cómo Chef logra la Gestión de la Configuración.

¿Qué es Chef? Gestión de la configuración con Chef

Hemos entendido qué es Chef, ahora te explicaré cómo Chef logra la Gestión de la Configuración con un caso de uso. Gannett es un holding de medios estadounidense que cotiza en bolsa. Es el editor de periódicos más grande de EE. UU. Medido por la circulación diaria total.

El flujo de trabajo de implementación tradicional de Gannett se caracterizó por múltiples transferencias y pruebas manuales. Veamos cuáles fueron los problemas que enfrentaron con este proceso:

  • Mantener construcciones precisas y repetibles fue difícil.
  • Hubo muchas fallas de compilación y las pruebas a menudo se ejecutaban en los entornos incorrectos.
  • Los tiempos de implementación y aprovisionamiento pueden variar desde unos pocos días hasta varias semanas.
  • El equipo de operaciones no tenía acceso a la nube ni a los entornos de desarrollo.
  • Cada grupo utilizó su propio conjunto de herramientas y no hubo responsabilidad por las finanzas o la seguridad. Nadie sabía cuánto costaba realmente una aplicación. La seguridad no tenía forma de auditar las pilas de software.

Gannett estaba listo para el cambio. Los desarrolladores querían implementar sus aplicaciones rápidamente. Las operaciones querían una infraestructura estable donde pudieran construir e implementar de manera repetible. Finanzas deseaba conocer el verdadero costo de una aplicación. Seguridad quería ver y auditar todas las pilas y poder realizar un seguimiento de los cambios.

Java C ++ Python

Gannett vio que la nube como servicio ofrecía muchas ventajas. Los desarrolladores tuvieron acceso a recursos estandarizados. Era más fácil manejar los picos de tráfico debido al modelo de computación bajo demanda de la nube, y se minimizaban las transferencias.

Chef le permite aprovisionar y desaprovisionar dinámicamente su infraestructura a pedido para mantenerse al día con los picos de uso y tráfico. Permite implementar y actualizar nuevos servicios y funciones con mayor frecuencia, con poco riesgo de tiempo de inactividad. Con Chef, puede aprovechar toda la flexibilidad y el ahorro de costos que ofrece la nube.

Veamos cuáles fueron las funciones realizadas por Chef en Gannett:

  • Gannett comenzó a construir VPC (Virtual Private Cloud) para un entorno de desarrollo que imitaría la producción. Ninguna de las herramientas que ya estaban usando era apropiada. Pero descubrieron que Chef funcionaba bien con la nube y con el entorno Linux y Windows. Utilizaron Chef para crear un entorno de desarrollo que se adaptaba perfectamente al entorno de producción.
  • Para que una aplicación se trasladara a la VPC, tenía que aprovisionarse e implementarse con Chef.
  • La seguridad estaría involucrada desde el principio y administraría los controles obligatorios para el acceso a Chef y para mantener los estándares de seguridad del sistema.

Ahora es el momento de comprender cuáles fueron los resultados de este proceso:

  • La implementación de Gannett se volvió más rápida y confiable. El aprovisionamiento y la implementación de aplicaciones, que una vez tomó semanas, después de usar Chef, tomó minutos.
  • Todas las aplicaciones nuevas se implementaron en la nube con Chef. Estas aplicaciones se implementaron en todos los entornos de la misma manera que se implementaron en producción. Además, se realizaron pruebas en cada entorno, por lo que las implementaciones fueron confiables.
  • Toda la infraestructura se trató como código, lo que aumenta enormemente la visibilidad de cualquier cambio que se produzca. Desarrollo, Operaciones, Seguridad y Finanzas se beneficiaron de esto.

Después ' Que es Chef 'Mi próximo blog es decir Chef Tutorial se centra en la arquitectura de Chef junto con sus componentes. También he explicado cómo implementar Apache2 usando Chef.

Si encontraste este blog en ' Que es Chef 'Relevante, revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de formación de certificación de Edureka DevOps ayuda a los alumnos a adquirir experiencia en diversos procesos y herramientas de DevOps, como Puppet, Jenkins, Nagios y GIT, para automatizar varios pasos en SDLC.