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. Cocinando con Chef
    Mike Rosado
    Entusiasta DevOps / Evangelista Técnico
    @MikeRosTX

    View full-size slide

  2. ¿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

    View full-size slide

  3. 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

    View full-size slide

  4. ¿Entonces qué es DevOps?
    @MikeRosTX

    View full-size slide

  5. ¿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

    View full-size slide

  6. ¿Entonces qué es DevOps?
    Operaciones
    de
    Tecnología
    @MikeRosTX

    View full-size slide

  7. 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

    View full-size slide

  8. Libros de Receta
    Bloques de Construcción
    Recetas
    Recursos
    @MikeRosTX

    View full-size slide

  9. 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

    View full-size slide

  10. 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

    View full-size slide

  11. 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

    View full-size slide

  12. Ambientes
    Roles
    Libros de Cocina
    Bloques de Construcción
    Recetas
    Recursos
    @MikeRosTX

    View full-size slide

  13. 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

    View full-size slide

  14. 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

    View full-size slide

  15. Bolsas de Datos Ambientes
    Roles
    Libros de Cocina
    Bloques de Construcción
    Recetas
    Recursos
    @MikeRosTX

    View full-size slide

  16. ¿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

    View full-size slide

  17. 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

    View full-size slide

  18. 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

    View full-size slide

  19. 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

    View full-size slide

  20. 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

    View full-size slide

  21. 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

    View full-size slide

  22. Herramientas de Chef
    @MikeRosTX

    View full-size slide

  23. 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

    View full-size slide

  24. 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

    View full-size slide

  25. 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

    View full-size slide

  26. 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

    View full-size slide

  27.  Licencias de Apache 2.0
     1500+ Contribuyentes Individuales
     200+ Contribuyentes Corporativos
     1500+ Libros de Cocina
    El Supermercado de Chef
    @MikeRosTX

    View full-size slide

  28. 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

    View full-size slide

  29. 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

    View full-size slide

  30. 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

    View full-size slide

  31. 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

    View full-size slide

  32. Ecosistema de Chef
    Consulting
    Servers
    Sistema Operativos Virtualización
    Infraestructura
    Intergrador de Soluciones
    Softlayer

    View full-size slide

  33. 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

    View full-size slide

  34. 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

    View full-size slide

  35. 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

    View full-size slide