Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOpsDays Cuba 2016: Cocinando con Chef

DevOpsDays Cuba 2016: Cocinando con Chef

Author: Mike Rosado
Summary:

DevOpsDays Cuba

October 18, 2016
Tweet

More Decks by DevOpsDays Cuba

Other Decks in Technology

Transcript

  1. ¿Qui¬n soy yo? • Entusiasta DevOps / Evangelista Técnico •

    Consultor Independiente • Nacido en Brooklyn, Nueva York • Criado en Carolina, Puerto Rico • Estudios en la Universidad de Puerto Rico reciento de Rio Piedras • Más de 28 años en el campo de Informática • 22+ años en Microsoft @MikeRosTX
  2. Resumen • ¿Resumir qué es DevOps? • Chef es un

    estructura de automatización de código abierto que permite la infraestructura como código • Chef aprovecha definiciones reutilizables para automatizar el estado deseado • Chef es impulsado por API • Chef es compatible con variantes de Linux, variantes de Unix, AIX y Windows, todos como ciudadanos de primera clase @MikeRosTX
  3. ¿Entonces qué es DevOps? Movimiento cultural y profesional que hace

    hincapié en la entre los desarrolladores de software y profesional de operaciones de TI @MikeRosTX
  4. La Plataforma de Software de Chef – Infraestructura como Código

    Kit de Desarrollo Chef Libro de Cocina y Política de Autoría Infraestructura Impulsado-a- Prueba Consola de Administración Plataforma Analítica Replicación y Alta Disponibilidad Nódulos de Cliente Chef Centro de Datos La Nube Servidor Chef @MikeRosTX
  5. Bloques de Construcción: ¿Qué es un Recurso? • Un Recurso

    es un estado del sistema que se define  Ejemplo: Paquete instalado, estado de un servicio ó un archivo de configuración existente • Tú declaras lo que es el estado del recurso  Chef automáticamente determinar CÓMO se logra ese estado package "httpd" do action :install end windows_feature "IIS-WebServerRole" do action :install end @MikeRosTX
  6. Bloques de Construcción: ¿Qué es una Receta? • Una Receta

    es una colección de Recursos • Recursos se ejecutan en el orden que se enumeran package "httpd" do action :install end template ”/var/www/index.html" do source ”index.html.erb” mode "0644" end service "httpd" do action [ :enable, :start ] end windows_feature "IIS-WebServerRole" do action :install end template 'c:\inetpub\wwwroot\Default.htm' do source "Default.htm.erb" rights :read, "Everyone" end service "w3svc" do action [ :enable, :start ] end @MikeRosTX
  7. Bloques de Construcción: ¿Qué es un Libro de Cocina? •

    Un Libro de Cocina es un conjunto de Recetas • Un Libro de Cocina es un conjunto definido de objetos y diferentes resultados que tú esperas a dirigir  Un Libro de Cocina podría tener una Receta para instalar apache2/httpd pero también otra serie de Recetas para activar módulos requeridos. ./attributes ./attributes/default.rb ./CHANGELOG.md ./metadata.rb ./README.md ./recipes ./recipes/application.rb ./recipes/balancer.rb ./recipes/database.rb ./recipes/default.rb ./recipes/webserver.rb ./templates ./templates/default ./templates/default/mysite.conf.erb @MikeRosTX
  8. Bloques de Construcción: ¿Qué son los roles? • Define los

    roles o funciones reutilizables para el Código de Infraestructura chef_type: role default_attributes: my-app: application: version: 1.5.6 description: Role for my application json_class: Chef::Role name: my_application_role run_list: role[base] recipe[my-app::application] @MikeRosTX
  9. Bloques de Construcción: ¿Qué es un Ambiente o Entorno? •

    Define el ambiente o un entorno reutilizables para el Código de Infraestructura chef_type: environment cookbook_versions: database: 2.2.0 default_attributes: myapp: application: version: 1.2.3 description: Our production environment json_class: Chef::Environment name: production @MikeRosTX
  10. Bolsas de Datos Ambientes Roles Libros de Cocina Bloques de

    Construcción Recetas Recursos @MikeRosTX
  11. ¿Cómo es qué funciona Chef? • Asegura estado deseado realizando

    continuamente pruebas y reparación de recursos individuales en el sistema • Se componen utilizando una serie de simples declaraciones políticas • El cliente de Chef trae esas políticas desde un servidor central y las aplica a la máquina local • El estado de la máquina es grabado y enviado a una base de datos donde se crea un índice para la búsqueda, presentación de informes y auditoría @MikeRosTX
  12. Infraestructura como Código en una forma simple… 1. Define La

    Política Que Describe La Infraestructura 2. Un Agente Autónomo Implementa Su Política 3. Aplicación De La Política Es Continuo Y Seguro 4. Automatiza Toda Su Infraestructura A Escala @MikeRosTX
  13. 1. Define Policy that Describes Your Infrastructure “Un problema bien

    declarado es un problema mitad resuelto.” --Charles Kettering Código *DSL de Chef es como “documentación ejecutable”. Fácil de leer, fácil de escribir, y fáciles de solucionar. *Domain Specific Language *Lenguaje Específico de Dominio @MikeRosTX
  14. 2. Un Agente Autónomo Implementa Su Política Un agente de

    software vive en cada máquina, pacientemente esperando nuevas instrucciones. El agente es como un robot que entiende cómo llevar a cabo sus instrucciones. Administradores de sistemas ya no están en el negocio de administración de servidores, en lugar de eso ellos logran escribir el código que construye servidores. @MikeRosTX
  15. 3. Aplicación De La Política Es Continuo Y Seguro •

    Idempotente  Política puede ser aplicada a un número infinito de veces y obtener el mismo resultado cada vez. En otras palabras, es seguro ejecutar el cliente de Chef una y otra vez. Scripts de Shell por lo general * no son * idempotente. • Convergente  Evalúa el estado y repara si es necesario. El estado del sistema es monitoreado regularmente por un agente de software. Si el estado del sistema difiere de la política, el cliente Chef coloca el sistema en el estado de la configuración deseada. @MikeRosTX
  16. 4. Automatiza Toda Su Infraestructura A Escala Cada nodo es

    responsable de su propio estado de configuración. Compilación de la política se hace en el equipo local. El cliente Chef baja la nueva política desde el servidor maestro en lugar de empujarla. Esto permite escalabilidad masiva manteniendo altos estándares de seguridad y fiabilidad. Pull Push (Bajar) (Empujar) @MikeRosTX
  17. Ohai (pronunciado “Oh, hi.”) Ohai es una herramienta que se

    utiliza para detectar los atributos de un nodo y luego proveerle estos atributos al cliente chef al comienzo de cada ejecución de cliente de Chef. Ohai es requerido por el cliente de chef y debe estar presente en un nodo. (Ohai está instalado en un nodo como parte del proceso de instalación cliente de Chef). Referencia: https://docs.chef.io/ohai.html (Consulta) (Búsqueda) (Recolectar) @MikeRosTX
  18. Cuchillo es una herramienta de línea de comandos que proporciona

    una interfaz entre un chef-repo local y el servidor de Chef. El Cuchillo le ayuda a los usuarios a administrar: Knife (Cuchillo)  Nódulos  Recetas y Libros de Receta  Roles  Almacenes de datos JSON (bolsas de datos), incluyendo datos encriptados  Ambientes o Etornos  Recursos en la nube, incluyendo aprovisionamiento  La instalación del cliente Chef en estaciones de trabajo de gestión  Búsqueda de datos indizados en el servidor de Chef @MikeRosTX
  19. Bento (弁当, bentō) is a single-portion takeout or home-packed meal

    common in Japanese cuisine. Kitchen (Cocina) Bento Use Cocina para automáticamente probar la data de los Libros de Cocina a través de cualquier combinación de plataformas y suites de prueba. Bento es un proyecto que contiene un conjunto de imágenes de base que son utilizados por Chef para pruebas internas y para proporcionar un conjunto completo de imágenes de base para el uso con Cocina. Cocina utiliza por defecto, las imágenes base proporcionadas por Bento. (Imágenes personalizado también pueden construirse utilizando Packer.) Referencia -- https://docs.chef.io/kitchen.html @MikeRosTX
  20. El Supermercado Chef es la biblioteca del sitio de la

    comunidad para librería de Libros de Recetas. Libros de Recetas que forman parte de los supermercados de Chef pueden utilizarse por cualquier usuario de Chef. Cómo se utilizan los libros de la comunidad varía de organización a organización. El Supermercado de Chef público es albergado por Chef y está disponible en https://supermarket.chef.io. Un Supermercado de Chef privado puede ser instalado en locales detrás del firewall. Referencia -- https://docs.chef.io/supermarket.html El Supermercado de Chef @MikeRosTX
  21.  Licencias de Apache 2.0  1500+ Contribuyentes Individuales 

    200+ Contribuyentes Corporativos  1500+ Libros de Cocina El Supermercado de Chef @MikeRosTX
  22. Chef Analítico Proporciona Una Visibilidad de Tres Maneras Política de

    Servidor Chef (Acciones) Ejecutación Cliente Chef (Historiade Ejecución) Estado del Nódulo (Auditoria de Controles) CONTROL DE CAMBIOS DE TODAS LAS FUENTES Integración de mensajería y correo electrónico incorporada Extender las notificaciones a los sistemas existentes Tablero de instrumentos con búsqueda simple, filtros y opciones de clasificación Integración con otras herramientas existentes a través de API @MikeRosTX
  23. Estado antes y después de la convergencia Diferencias de recursos

    (por ejemplo, para plantillas, archivos) Mensajes de error y trazas de la aplicación apilado Estado de éxito/fracaso de cada corrida del cliente Chef individual Resúmenes de cuentas del éxito y el fracaso Resúmenes de ejecución y duración sobre tiempo Informes – ¿Qué cambió ocurre en un corrido de Chef? @MikeRosTX
  24. Construir Cualquier Cosa • Simples aplicaciones internas • Complejas aplicaciones

    externas • Estaciones de trabajo • Clústeres de Hadoop • Infraestructura IaaS • Infraestructura de PaaS • Aplicaciones SaaS • Sistemas de almacenamiento • Lo que sea http://www.flickr.com/photos/hyku/245010680/ @MikeRosTX
  25. Y Administrar Simplemente • Reconfigurar Automáticamente Todo • Linux, Windows,

    UNIX, BSD • Balanceadores de Carga • Sistemas de Recogida de Métricas • Sistemas de Monitoreo • Migraciones de Nubes se convierte trivial http://www.flickr.com/photos/helico/404640681/ @MikeRosTX
  26. El Trayecto de Chef “Si usted va a alcanzar la

    excelencia en las cosas grandes, desarrolla el hábito en asuntos pequeño. La excelencia no es una excepción, es una actitud prevaleciente.” - Colin Powell Comenzando el Trayecto de Chef Colaboración de Código Desarrollo Local Integración Continua Implementación del Código de Chef Binarios empaquetados de la estación de trabajo creados Flujo de trabajo de desarrollo local definida Prueba-> Código-> Prueba Práctica Varios equipos aportando código Control de código fuente y código de revisión de las prácticas en el lugar Diseños de repositorio de código definidos Herramientas de integración continuadas en su lugar Código estándar Chef pruebas de trabajos definidos Reportes de Calidad definidos Trabajos de implementación de código estándar Chef definidos Implementación de informes definidos Proceso de canalización de Libros de Recetas implementado @MikeRosTX
  27. El Trayecto de Chef - Segunda Parte “Sin el continuo

    crecimiento y progreso, palabras tales como mejora, logro y éxito no tienen ningún significado.” - Benjamin Franklin Estado Constante y Crecimiento Continuo Virtualización como un Servicio Implementación de Aplicaciones Completa Automatización Implementación Continuo Proceso de implementación de aplicación definido Dev-> prueba-> QA-> entornos Prod consistente Pruebas de "Humo" definidas Plataforma de virtualización basada en API implementado Kickstart/JEOS plantillas definidas Ejecutar listas de Chef que define como "aplicaciones están empaquetados" Automatización de red y almacenamiento implementado Pruebas definidas de Punto- A-Punto Despliegue de "aplicación empaquetada" conducción de la interfaz de usuario final Conductos de distribución de aplicación completa desde Dev-> prueba-> QA-> Prod Apilado de infraestructura de software todo tratado como una @MikeRosTX
  28. Para Empezar en el Trayecto de DevOps 1. Obtener experiencia

    aprendiendo Ruby viendo estos videos y practicando: http://www.bing.com/videos/search?q=ruby+videos+tutorials+youtube&qpvt=ruby+videos+t utorials+youtube&FORM=VDRE 2. Ir a través de los enlaces de DevOps y vídeos para aprender a Chef: http://learn.chef.io/skills/ Estoy seguro que Puppet, Ansible y Salt Stack tienen videos de aprendizaje también, pero prefiero a los de Chef. 3. Descargar, instala y practica con Chef una y otra vez tanto como usted puede. http://downloads.chef.io/ 4. Leer artículos y suscribirse a diferente sitios web que publican contenido DevOps. 5. Leer, aprender, practicar y respirar PowerShell. http://powershell.org/wp/ebooks/ https://www.penflip.com/powershellorg/the-dsc-book http://pwrshell.net/tag/chef/ https://channel9.msdn.com/Search?term=powershell#ch9Search 6. Asistir a seminarios virtuales tantos como puedas que sean GRATIS. https://www.chef.io/webinars/ @MikeRosTX