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

Filosofía DevOps

Filosofía DevOps

Clemens Wältken (Dev) y Nahuel Oyhanarte (SysAdmin) nos cuentan sobre el paradigma DevOps y sus implicancias.

Avatar for Edrans Social

Edrans Social

November 21, 2018
Tweet

More Decks by Edrans Social

Other Decks in Technology

Transcript

  1. Clemens Wältken (@waeltken) Un alemán en BA. Ingeniero. Developer @

    Edrans. Quiénes somos? Nahuel Oyhanarte (@nahueloyha) Un porteño del Interior. Futuro ingeniero. SysAdmin @ Edrans.
  2. • Problema • Before • Solución? • Qué es DevOps?

    ◦ CALMS Framework • Cómo lo implementamos... • Show time! • Primeros pasos... • ... próximos pasos • Cómo sigue DevOps? Agenda
  3. • Llevar tu app al usuario: ◦ Con velocidad ◦

    Sin interrupción de servicio ◦ Con confianza ◦ De una manera reproducible ◦ Que nos permita dormir tranquilo Problema
  4. Before • Silos • Falta de comunicación • Falta de

    colaboración • Mucho tiempo hasta PRD
  5. Pero… qué es DevOps? Cultura + Prácticas + Herramientas =

    Acelerar el ciclo de vida de las aplicaciones
  6. - Culture • Fomentar la comunicación • Cultura orientada al

    cliente • Espacios (y tiempos) colaborativos • Equipos diversos y multidisciplinarios • Experimentación continua
  7. - Automation • Evitar tareas manuales / repetitivas • Prevenir

    errores humanos • Obtener feedback rápido • Acortar tiempos hasta el usuario • Start small, scale out
  8. - Measure • Empezar con lo básico e ir mejorando:

    ◦ Test Coverage ◦ Usuarios nuevos vs. Usuarios perdidos ◦ Reproducciones de video ◦ Tráfico a la página ◦ Tiempo de desarrollo en cada features • Las métricas deben guiar el camino • Usar métricas significativas para tomar decisiones
  9. - Share • Compartir responsabilidad (equipo first!) • Shared knowledge

    • Alinear objetivos • Visión conjunta • Dar charlas en UTN
  10. • Cloud • Infrastructura como código • CI/CD • Containers

    • Configuration Management • Monitoring Cómo lo implementamos...
  11. - Infrastructure as Code • Especificar infraestructura de manera declarativo

    • Posibilidad de recrear ambientes parecidos • Evolucionar infraestructura • Colaborar sobre infraestructura • Documentación en código
  12. - Configuration Management • Configurar servers automágicamente • Manejar usuarios

    / servicios de forma programática • Automatizar parches / actualizaciones
  13. - Containers • Capa de virtualización más liviana • Entornos

    reproducibles / automatizables • Habilita levantar ambientes de pruebas local • Rapid startup • Infrastructura inmutable
  14. - CI/CD • Continuous Integration / Continuous Deployment • Automatizar

    build -> test -> deploy • Tener un ambiente de referencia • Lograr feedback imediato • Crear ambientes de pruebas
  15. - Monitoring • Lo que no se mide no se

    mejora • Métricas de HW/SF + métricas de negocio • Otorga visibilidad: qué está pasando? • Actioning -> AutoScaling / Self-healing
  16. • Crear un repo en GitHub • Probar el flujo

    de Pull-Request • Agregar un Build Pipeline con Travis • Colaborar en grupo: Trello, Asana, etc. • Probar Docker & Docker Compose • Levantar recursos en AWS • Agregar Terraform para dichos recursos Primeros pasos…
  17. … próximos pasos? • Identificar cuellos de botella en procesos

    • Agilizar buildeo / deploy / testing • Minimizar el riesgo / Aumentar confianza • Cambios + chicos + frecuentes • Crear ambientes distintos (QA / STG / PRD) • Generar lazos cross-teams