DevOps: primeros pasos

Documentos relacionados
Devops Fundamentals + Taller DevOps OpenSource

Reduciendo el Time to Market: Cómo DevOps transforma los procesos de TI y le brinda mayor agilidad al negocio

microservicios Introducción y conceptos generales

Arquitectura de configuración, desarrollo y despliegue de indenova. Jordi Gisbert - indenova

Desarrollo ágil en la nube de Oracle

Propuesta framework de herramientas para el desarrollo de aplicaciones en un modelo colaborativo. Ricardo Borillo Domenech

DEVOPS ESSENTIALS PROFESSIONAL CERTIFICATE (DEPC)

Metodologías ágiles de desarrollo de software

Presentación. Dirigido a

Introduction to Containers, Kubernetes, and Red Hat OpenShift

Propuesta de Servicios De Agile y Desarrollo

El rol de Docker para ejecutar pruebas automatizadas como parte de la Integración Continua

Implementación de Soluciones de Infraestructura Microsoft Azure

Instalación, Administración y Configuración de SQL Server 2012

Azure. Plan de Estudio

Implementación AWS de DevOps

20246C Monitoreo y operación de una nube privada

COMPUTACIÓN EN LA NUBE CON JAVA

APIFICACION y DevOps. Iván Sampedro Postigo Oracle Cloud Platform Sales Consultant. TIC en la Modernización de la Justicia.

Agenda. Ventajas Versión 6.X. Procesos Sencillos. Soporte completo. Plataforma modular. Vista unificada. Migración desde 5.X. Tibco y DATA ADVISER

Oracle Enterprise Manager 10g Grid Control NUEVO

Automatización de Pruebas de Software con Herramientas Open Source. Henry Eduardo Carrión Cristóbal

20247 Configuración e implementación de una nube privada

Especialistas en Auditoría de TI, Gestión de Riesgos, Control Interno, Gobierno de TI

Maven e IC. Maven, SonarQube, Artifactory y Jenkins

20764 Administering a SQL Database Infrastructure

20767A Implementing a SQL Data Warehouse

Oracle Database 12c Administration Workshop

CLASE # 2 PLANEACIÓN DE PRUEBAS

Implementación del paquete de recomendaciones para la mejora de procesos de una Fábrica de Software. Accenture 2006 Propietario y Confidencial

INCREMENTANDO LA EFICIENCIA EN EL CALL CENTER

Capítulo 10. Bases de datos distribuidas

Administrador de Contenido Empresarial

Testing Ágil. Experiencia de aproximación 2.0 Junio de 2016

Gestión y Monitoreo de Redes. Claudia Inostroza Albert Astudillo Managua 05 y 06 de Diciembre de 2011

CÓDIGO MANUAL DE ORGANIZACIÓN Y FUNCIONES GERENCIA DE TECNOLOGIA DE LA INFORMACIÓN

4.1 Introducción al continuous delivery + GitFlow

Rational Unified Process

Interfaz Humano Computadora DRA. LETICIA FLORES PULIDO PRIMAVERA 2012

Gestión y Monitoreo de Redes Introducción

emis: Entorno para la Medición de la Calidad del Producto Software

Windows Server Instalación, gestión del almacenamiento y computación Preparación para la certificación MCSA - Examen

Introducción al Cloud Computing

Foro de Negocios San Luis Potosí Servicios administrados y en la nube

Developing ASP.NET MVC 4 Web Applications

OpenGnsys 1.1.0: Automatización de entornos virtuales y nuevas funcionalidades

Sistemas de Información para la Gestión

GESTIONE SUS TAREAS Y PROYECTOS DE NEGOCIO

Transcripción:

DevOps: primeros pasos Club de Investigación Tecnológica Allan Cascante Martín Flores 27 de Julio. 2016

Agenda La idea detrás de DevOps Beneficios Prácticas para lograr ser DevOps Conclusiones

Administradores de sistemas Operaciones Administradores de servidores Sysadmins Infraestructura Infra...

Ciclo de desarrollo de software Proceso de entrega Desarrollo Pruebas Entrega Planeamiento Monitoreo Ciclo de retroalimentación DevOps: mejoras que hacen que este ciclo sea más rápido.

La historia de la compañía X 2001 Odisea en el espacio. El salto temporal más largo de la historia del cine

Ciclo de vida de desarrollo del monolito Desarrollo Pruebas Entrega Desarrolladores Aplicación

Cambios en arquitectura Servicios altamente desacoplados Una sola responsabilidad Conectados a través de APIs Microservicios

Cambios organizacionales Responsabilidad total Autonomía total Comparten los mismos incentivos y objetivos DevOps

Hubo mejora pero...??? Desarrolladores Servicios Proceso de entrega

Mejoras en el proceso de entrega Se crearon herramientas para acelerar el proceso ChatOps Ambientes de producción independientes Creación de tuberías de entrega (delivery pipelines) Automatización

Ciclo de vida de los microservicios Desarrollo Pruebas Entrega Desarrollo Pruebas Entrega Desarrollo Pruebas Entrega Desarrollo Pruebas Entrega Desarrolladores Servicios Proceso de entrega

Amazon.com (2014) Miles de equipos x Arquitectura basada en microservicios x Entrega continua x Múltiples ambientes = 50 millones de deployments por año

DevOps

Una aplicación moderna 1. Archivo de construcción y administración (maven, make, rake, npm.) 2. Configuración de repositorio de código 3. Configuración de tareas de integración 4. Código fuente 5. Código para pruebas (unitarias, integración, carga) 6. Provisionamiento 7. Pruebas de aceptación

DevOps: tiempos de entrega 2555X 200X Deployments más frecuentes Tiempos de espera más cortos

DevOps: impacto de los cambios 24X 3X Mayor rapidez en la recuperación de fallas Tasa de errores

DevOps: tiempos de entrega 50% Dado que este es un proceso de mejora continua, la estabilidad y calidad del producto se pone a prueba y se verifica en cada paso. Menos de tiempo utilizado arreglando de errores

Amazon.com Pases a producción cada 11,6 segundos etsy.com 25 versiones nuevas diarias

Necesito DevOps? 1. Frecuencia en los pases a producción 2. Cantidad de cambios 3. Tiempo de espera 4. Porcentaje de pases a producción fallidos 5. Tiempo de recuperación 6. Cantidad de defectos reportados 7. Cambios en el uso de la aplicación 8. Disponibilidad 9. Tiempo de respuesta

Cómo lograrlo? Primeros pasos

La fábrica de DevOps 1. El código como infraestructura 2. Integración continua 3. Pruebas automatizadas 4. Administración del desempeño de la aplicación 5. Entrega continua 6. Administración de la configuración

El código como infraestructura Infrastructure as Code (IaC)

El código como infraestructura (IaC) Técnicas, procesos, herramientas para administrar y configurar la entrega de aplicaciones. Mayor control sobre el hardware, mantenimiento repetitivo, resultados predecibles. Se refina el ambiente de ejecución general de una aplicación. Anti-patrón: scripts aislados, parches manuales, ambientes no sincronizados, pases a producción para ver qué pasa.

IaC - Herramientas Puppet (http:www.puppet.com) Chef (www.chef.io) Ansible (http:www.ansible.com) CFEngine (http://cfengine.com) Vagrant (http://vagrantup.com) Docker (http://www.docker.com) Herramientas provistas en servicios como Amazon AWS y Azure.

Integración Continua Continuous Integration (CI)

Integracion continua Fuente: Continuous Integration: Improving Software Quality and Reducing Risk

CI - Beneficios Promover código constantemente Automatizar las pruebas (todo lo posible) Construcciones (builds) frecuentes. No promover código inestable Automatizar el despliegue Estrategia de versionamiento de artefactos de software Retroalimentación

CI - Implementacion Sistema de control de versiones (Git, Subversion, Perforce, Mercurial) Herramienta de Integración Continua (Jenkins, TeamCity, CruiseControl) Construcciones que se disparan automáticamente Análisis estático de código (Sonarqube) Automatizar todo lo que se pueda Administración de artefactos de software (artifactory, nexus, npm) Pruebas en ambientes iguales a los de producción Anti-patrón?

Pruebas automatizadas

Pruebas automatizadas Realizar pruebas al software es crítico pero es una tarea que puede consumir mucho tiempo. Respuesta: un conjunto de pruebas automatizadas. Proveen visibilidad del rendimiento de la aplicación y del impacto de sus cambios. Equipos pueden entregar nuevas versiones de software más rápido sin comprometer la calidad.

Pruebas automatizadas QA promueve el uso de herramientas y frameworks que permiten probar de forma prematura el software durante el ciclo de desarrollo. Anti-patrón: exceso de pruebas manuales, pruebas tardías, despliegues a producción para ver qué pasa.

Gestión del desempeño

Gestión del desempeño - Monitoreo Lo que no se mide no mejora Es necesario tener la mayor visibilidad del estado actual de la aplicación Al analizar el desempeño se pueden identificar errores en: El código La infraestructura Alguna política del negocio Anti-patrón: no medir, política del silencio positivo, esperar por las quejas de los clientes.

Entrega continua Continuous Delivery (CD)

Entrega continua Típicamente después de la Integración continua La entrega continua envía un nuevo artefacto estable a un ambiente de producción Una tubería de entrega (delivery pipeline) automatizada Implementado adecuadamente ayuda a reducir el costo, tiempo y riesgo en la entrega de nuevos cambios en las aplicaciones

Administración de la configuración

Conclusiones DevOps: intersección entre desarrollo, calidad y operaciones Aplicaciones más estables, ciclos de retroalimentación cortos, entrega continua Es el estilo de desarrollo que han adoptado las grandes compañías La Fábrica de DevOps es un buen punto de partida para lograr una implementación de este estilo Nada de lo anterior es posible sin un cambio cultural en la organización

Muchas gracias!