Por qué utilizar Chef para la automatización y la orquestación

Chef ha sido una herramienta líder de código abierto para automatizar el aprovisionamiento y la configuración de servidores durante la mayor parte de una década. En los últimos años, la compañía agregó InSpec y Habitat a la cartera, proyectos de código abierto que automatizan las pruebas de cumplimiento de políticas y la implementación y configuración de aplicaciones, respectivamente. La oferta comercial insignia de la compañía, Chef Automate, reúne todas estas piezas.  

Chef Automate proporciona un conjunto de capacidades empresariales para flujo de trabajo, visibilidad de nodos y cumplimiento, y se integra con los productos de código abierto Chef, InSpec y Habitat. Chef Automate viene con servicios de soporte para toda la plataforma, incluidos los componentes de código abierto. Además de proporcionar vistas de los eventos operativos, de cumplimiento y de flujo de trabajo, incluye una canalización para la entrega continua de infraestructura y aplicaciones.

Componentes de Chef y flujo de trabajo

La estación de trabajo Chef DK (kit de desarrollo) es donde los usuarios interactúan con Chef. En la estación de trabajo, los usuarios crean y prueban libros de cocina usando herramientas como Test Kitchen (para generar VM de prueba) e interactúan con el servidor Chef usando las herramientas de línea de comandos. Por ejemplo, Knife es una herramienta de línea de comandos que proporciona una interfaz entre un repositorio Chef local y el servidor Chef. Knife ayuda a los usuarios a administrar nodos, libros de cocina, paquetes de datos y la instalación (arranque) del cliente Chef en los nodos, entre otras tareas. La mayoría de los archivos de un libro de cocina de Chef están escritos en Ruby, aunque algunas configuraciones están escritas en YAML.

Cocinero

El servidor Chef de código abierto actúa como un centro para los datos de configuración. El servidor de Chef almacena libros de recetas, las políticas que se aplican a los nodos y metadatos que describen cada nodo registrado que está siendo administrado por Chef. Los nodos utilizan el cliente Chef para solicitar al servidor Chef detalles de configuración, como recetas, plantillas y distribuciones de archivos. En otras palabras, Chef es por defecto un sistema basado en extracción ; también tiene capacidades de empuje.

Chef Supermarket es el lugar en el que se comparten y administran los libros de cocina de la comunidad. La consola de administración de Chef, los informes de ejecución de chef-cliente (agente), las configuraciones de alta disponibilidad y la replicación del servidor de Chef están disponibles como parte de Chef Automate.

InSpec es un marco de trabajo gratuito y de código abierto para probar y auditar sus aplicaciones e infraestructura. Es la base de la parte de cumplimiento de Chef Automate. Se integra con Puppet y Ansible, así como con Chef.

Habitat es una plataforma de gestión del ciclo de vida de las aplicaciones y automatización de aplicaciones nativas de la nube de código abierto, diseñada desde el punto de vista de la aplicación en lugar del punto de vista de la empresa o la plataforma.

Cocinero

Chef para devops, cumplimiento y nube

Chef Automate ayuda a aprovisionar e implementar aplicaciones más rápido, con más frecuencia y de manera más confiable; en otras palabras, es compatible con DevOps. También automatiza el cumplimiento al reducir la desviación del servidor, identificar las infracciones de cumplimiento y solucionar automáticamente cualquier problema. Chef Compliance, basado en InSpec de código abierto, solía ser un producto separado, pero ahora es parte de Chef Automate.

La migración a la nube es uno de los casos de uso interesantes para Chef. Eso incluye AWS, Microsoft Azure, Google Cloud Platform, implementaciones mixtas y nubes híbridas. Otro conjunto importante de casos de uso es garantizar el cumplimiento de PCI, HIPAA y otras regulaciones de seguridad y privacidad.

Como se muestra en la figura siguiente, uno de los puntos de venta de Chef es que funciona con lo que tienes. Eso incluye los principales repositorios basados ​​en Git, sistemas CI / CD, sistemas operativos, nubes y sistemas de orquestación de contenedores.

Cocinero

Instalación y configuración de Chef

En general, una instalación de Chef Automate consta de un mínimo de dos servidores: un servidor de Chef (al menos cuatro vCPU y 8 GB de RAM), que contiene los libros de cocina y los datos utilizados para crear, probar e implementar sus componentes dentro de Chef Automate y su infraestructura y un servidor Chef Automate (al menos cuatro vCPU y 16 GB de RAM), que coordina el proceso de mover un cambio a través de la canalización del flujo de trabajo, además de brindar información y visualizaciones sobre su clúster Chef Automate.

Hay dos servidores opcionales, un servidor de trabajos push, que se utiliza para crear nodos de infraestructura para las pruebas de implementación y también es necesario si usa nodos de compilación basados ​​en trabajos push como parte de su proceso de prueba e implementación, y corredores o nodos de compilación (en al menos dos CPU virtuales y 4 GB de RAM), que realizan el trabajo de ejecutar compilaciones, pruebas e implementaciones fuera de Chef Automate, y solo son necesarias cuando se utilizan las capacidades de flujo de trabajo de Chef Automate.

Empiece por instalar el servidor Chef, ya sea de forma independiente o en una configuración de alta disponibilidad. Luego, cree un usuario y una organización para usar con Chef Automate, usando chef-server-ctlcomandos. Opcionalmente, descargue el código y cree un servidor de trabajos push, y luego vuelva a configurar el servidor Chef, nuevamente usando chef-server-ctlcomandos.

En este punto, puede instalar y configurar Chef Automate usando rpmo dpkg. Instale su licencia y use los automate-ctlcomandos para ejecutar una verificación previa al vuelo y el proceso de configuración. La configuración le pedirá que cree un corredor para el flujo de trabajo. Finalmente, puede configurar sus nodos para la recopilación de datos.

AWS OpsWorks for Chef Automate simplifica enormemente el proceso de instalación, asumiendo que desea tener sus servidores Automate y Chef en AWS; puede implementarlo en 10 minutos o menos. Aún puede administrar sus nodos locales desde OpsWorks, aunque OpsWorks brilla cuando la mayoría de sus nodos están en AWS, ya que puede inscribir nodos automáticamente en grupos de escalado automático.

Hay un tutorial decente sobre AWS para enseñarle sobre Chef, Chef Automate y OpsWorks, en el que configurará todo y realizará tareas de automatización paso a paso. El tutorial lleva un poco más de tiempo que una implementación básica, pero vale la pena hacerlo si es nuevo en Chef.

También puede instalar Chef Automate en máquinas virtuales desde AWS Marketplace. Además, Chef tiene integraciones con Google Cloud Platform, Microsoft Azure Marketplace y VMware.

Sólido en devops y cumplimiento, con un amplio soporte de plataforma y una gran colección de módulos, Chef Automate proporciona un conjunto completo de capacidades empresariales para automatizar la entrega y el funcionamiento continuo de la infraestructura híbrida. Es probable que satisfaga la mayoría o todas sus necesidades de automatización de TI.

-

Costo: Proyectos de código abierto (Chef, InSpec, Habitat, etc.), gratis. Chef Automate, $ 137 / nodo / año con soporte estándar (12x5). AWS OpsWorks con Chef Automate, $ 0.0155 / nodo / hora. Chef alojado, $ 72 / nodo / año.

Plataforma: Chef Automate Server requiere un sistema operativo RHEL, SUSE o Ubuntu. Además de estos, Chef Automate Job Runner es compatible con MacOS.

Chef Automate es compatible con los sistemas operativos VMware, CoreOS, Docker, Windows y Linux; las nubes de Google, AWS, Azure, OpenStack y VMware; los sistemas de orquestación de contenedores Kubernetes, Docker Swarm y Mesosphere. Un servicio Chef Automate basado en la nube está disponible como AWS OpsWorks para Chef Automate. Debe navegar a la consola de Automate con Google Chrome; IE específicamente no es compatible.

Chef DK (kit de desarrollo) es compatible comercialmente con MacOS 10.11, RHEL 6, SUSE 11, Ubuntu LTS, Windows 10 o Windows Server 2012 y versiones posteriores de esos sistemas operativos. El soporte de la comunidad está disponible para Debian 7 y Scientific Linux 6 y posteriores.