SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
DevOps+
[Chef/Docker]
por Lic. Christian Rodriguez
car@info.unlp.edu.ar
@car_unlp
Junio de 2014
Jornadas de actualización Tecnológica - SD
Temas
● Objetivo
● Los problemas en la organización
● Algunas soluciones
● DevOps
● Productos
● Conclusiones
Objetivo
Plantear la realidad contemporánea de nuestra
organización, a partir de problemas y soluciones
que han surgido espontáneamente y derivaron en
la aplicación de la metodología DevOps
Los problemas en la Organización
● Los problemas pueden analizarse desde:
– La perspectiva del desarrollo
– La perspectiva de TI
– La perspectiva de la puesta en producción
La perspectiva de Desarrollo
Problemas en desarrollo
● Cerca de 100 aplicativos: 70 de los cuales tienen actividad
constante
● Versiones diferente de productos todas las semanas
● Por día se realizan 5 deploys aproximados
– Por errores en producción
– Por nuevas funcionalidades
● Ambientes de trabajo:
– Desarrollo
– Pruebas
– Producción
Problemas en desarrollo
● Ambientes complejos
– SSO
– APIs
– Balanceo y Caching
Problemas en desarrollo
● Conseguir datos de producción
– Dumps de bases de datos
– Código en producción
La perspectiva de TI
Los problemas de TI
● Desarrollo no es el único cliente
● Se cumplen varias tareas complejas de administración
● Nuevos productos que requieren conocimientos de
arquitecturas emergentes: NodeJS, Erlang, Redis, APIs,
MongoDB, etc
– No todo es xAMP, Exim/Postfix, iptables
● Compromiso de seguridad por el hosting de aplicativos de
terceros
● Vencimientos SSL
La perspectiva de producción
Los problemas en producción
● Procedimientos para el deploy de nuevas aplicaciones
● Procedimientos para la actualización de aplicaciones
● Aplicar parches a bases de datos productivas de gran
volumen
● Notificación a usuarios de aplicaciones sobre los cambios
a aplicar
● Monitoreo y backup de servicios
● Vencimiento de contratos y SLA
Soluciones parciales
Soluciones
● Virtualización
● Matriz de aplicaciones por seguridad y criticidad
● Controles de seguridad por aplicación
– Cada aplicación WEB corre con usuario diferente
– Firewall por cada aplicación o servicio
● Análisis de nuevos productos como nginx, openvz,
varnish, haproxy, etc.
Virtualización
● Simplificaciones
– Backups
– Gestión de TI
– Migraciones en caliente
– Aprovechamiento de recursos
– Instalaciones basadas en templates
● Complicaciones
– Mantenimiento de virtuales
– Estado contractual de todas las VMs en mi dominio
– Sin una solución de storage no se aprovechan muchas ventajas
Matriz de aplicaciones
● Relevamiento de aplicaciones por vulnerabilidades y
criticidad de los datos servidos
● A partir del análisis surgen nuevas inquietudes
– Apache + ITK
– PHP FPM
– No todas nuestras soluciones son xAMP
– Contenedores linux: OpenVZ / LXC
Algunos problemas
● Nuevos productos emergentes requieren investigación
sobre configuraciones y puesta a punto en producción
● Escasez de recursos en nuevas tendencias:
– Servidores Ruby: unicorn, puma, Apache mod rails /
passenger
– Caching: varnish
– Balanceo: nginx / ha-proxy
– Nuevos servicios: Bases NO-SQL, AMQP, etc
DevOps
Una nueva tendencia
orientada a obtener una
relación colaborativa de
trabajo entre las áreas de
desarrollo y TI
Objetivos
● Mejorar los tiempos de respuesta
● Cumplir con las fases del proyecto según lo planificado
● Mejorar el ciclo de vida
● Versionado de ambientes
● Exigir confiabilidad, estabilidad, resilencia y seguridad en
el ambiente de operaciones
● Desarrolladores que piensen como administradores, y
administradores que piensen como desarrolladores
Ciclo de vida
Se define ciclo de vida al tiempo promedio que
toma desde que un nuevo requerimiento es
aprobado, el área de desarrollo lo implementa y el
pase definitivo a producción
Versionado de ambientes
● El personal de TI debe lidiar con múltiples
configuraciones e instalación de actualizaciones. Estos
cambios implican una nueva versión de ese ambiente. La
única forma de realizarlo a tiempo, en forma
documentada y minimizando errores a través de scripts
● Surge Infrastructure as Code
● Los scripts generan nuevos entornos virtuales que deben
versionarse como código tradicional
Orígenes de DevOps
● Velocity Conference
● Infraestructure as code
● Agile infrastructure
● Agile system administration
Docker
Qué es?
● Basado en LXC
● Simplifica el deployment de aplicaciones en contenedores
● Se compone de:
– Docker engine: soporte de herramientas provistas por
docker para el desktop, con las cuales podemos correr,
crear y administrar contenedores
– Docker Hub: repositorio de imágenes
Filosofía Docker
● Gestión de imagenes: se pueden descargar del hub
docker, y una vez locales usarlas para iniciar
contenedores
● Gestión de contenedores a partir de imágenes
● En cualquier momento, se puede versionar un
contenedor creando una nueva imagen
Ejemplos de docker
docker search xxx
docker pull <­t TAG> image 
docker run ­i ­t image <CMD>
docker ps [­a]
docker diff <CONTAINER­ID>
docker commit
Un ejemplo de uso real
● Desarrollo de aplicaciones PHP < 5.4
● Simulación de instalación de ambientes
● A futuro:
– Deploy completo del ambiente de testing
– Tests al vuelo: from scratch
Chef
Qué es?
● Permite gestionar la infraestructura como código
alcanzando
– Versionado
– Testearla
– Replicarla
Cómo trabaja?
● Con libros de cocina y recetas
● Se programa en Ruby
● Requiere de una arquitectura de servicios:
– Servidor Chef
– Máquinas a aprovisionar
– Máquinas del administrador
● Para probar se combina fácilemente con vagrant
– Vagrant es un gestor de VMs (por defecto Vbox)
– Se integra muy bien con AWS
Veamos unas recetas simples
● Recetas para:
– Choique: CMS desarrollado por UNLP
● URL: https://github.com/Desarrollo-CeSPI/choique_cookbook
– Kimkelen: sistema de gestión de alumnos de UNLP
● URL: https://github.com/Desarrollo-CeSPI/kimkelen_cookbook
● Usaremos vagrant para probar
– Debemos instalar el plugin vagrant-berkshelf
● Al descargar, en el directorio correr:
vagrant up
Lo mismo con AWS/Docker
● Analizamos las otras configuraciones en los repositorios
anteriores
– Iniciamos una instancia de la aplicación en AWS
● Requiere los plugins:
– vagrant-aws
– vagrant-omnibus
Un ejemplo real con chef
● Instalar un choique en la infraestructura de testing de
UNLP
– Crear un usuario con el que corre PHP con Apache
mod ITK
– Configurar proxy reverso frente al equipo anterior
– Editar la configuración de DNS
● Dos dominios: uno para el frontend, y otro para el
backend
– Deployar la aplicación por un usuario de desarrollo
Conclusiones
● Adoptando este modelo se reducen tiempos de liberación
de aplicaciones desarrolladas utilizando metodologías
ágiles
● Integración y sincronización de tareas entre TI y desarrollo
● Revisión acerca de la segregación de funciones tradicional
definida en marcos de referencia, buenas prácticas y
estándares
Referencias
● DevOps:
– http://itrevolution.com/
– DevOps por New Relic
– http://devopsweekly.com/
● Docker: http://www.docker.com/
● Chef: http://www.getchef.com/
– http://chrodriguez.github.io/capacitacion_chef/
 DevOps+[Chef/Docker]

Más contenido relacionado

La actualidad más candente

Presentación Docker
Presentación DockerPresentación Docker
Presentación DockerITPAMI
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmAlejandro Escanero Blanco
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core osDavid Luque Quintana
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoRestorando
 
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Luis Enrique Tejeda Rodriguez
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaJoselu Marina
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoMario IC
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Gustavo Andres Brey
 

La actualidad más candente (20)

Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Usando docker
Usando dockerUsando docker
Usando docker
 
Presentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarmPresentación nubes de contenedores con docker swarm
Presentación nubes de contenedores con docker swarm
 
Divide y vencerás con docker y core os
Divide y vencerás con docker y core osDivide y vencerás con docker y core os
Divide y vencerás con docker y core os
 
Docker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en RestorandoDocker meetup :: Kubernetes en Restorando
Docker meetup :: Kubernetes en Restorando
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
introducción a Docker
introducción a Dockerintroducción a Docker
introducción a Docker
 
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
Orquestando Contenedores En La Nube - Enrique Tejeda - Sloth 2019
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Docker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 HuancayoDocker introducción - Flisol 2015 Huancayo
Docker introducción - Flisol 2015 Huancayo
 
Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015Docker como la máxima expresión de Devops - WISIT 2015
Docker como la máxima expresión de Devops - WISIT 2015
 
Docker desde cero
Docker desde ceroDocker desde cero
Docker desde cero
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 

Destacado (7)

Sandbox para ejercicios de programación
Sandbox para ejercicios de programaciónSandbox para ejercicios de programación
Sandbox para ejercicios de programación
 
Docker at Flux7
Docker at Flux7Docker at Flux7
Docker at Flux7
 
CORETIC - SCRUM
CORETIC - SCRUMCORETIC - SCRUM
CORETIC - SCRUM
 
Desarrollo empresarial con java
Desarrollo empresarial con javaDesarrollo empresarial con java
Desarrollo empresarial con java
 
Herramientas DevOps
Herramientas DevOpsHerramientas DevOps
Herramientas DevOps
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOps
 
DevOps en AWS
DevOps en AWS DevOps en AWS
DevOps en AWS
 

Similar a DevOps+[Chef/Docker]

Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesBitnami
 
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Educagratis
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesJose Luis Soria
 
Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Jose Luis Soria
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7Luis Ruiz Pavón
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsErnesto Anaya
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAmazon Web Services LATAM
 
Técnicas para la Implementación de Desarrollo Continuo en AWS
Técnicas para la Implementación de Desarrollo Continuo en AWSTécnicas para la Implementación de Desarrollo Continuo en AWS
Técnicas para la Implementación de Desarrollo Continuo en AWSAmazon Web Services LATAM
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
Integración continua en AWS con Docker, ECS y PHP7
Integración continua en AWS con Docker, ECS y PHP7Integración continua en AWS con Docker, ECS y PHP7
Integración continua en AWS con Docker, ECS y PHP7Manuel Boira Cuevas
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJCMicael Gallego
 
201 - Semana 5.pptx
201 - Semana 5.pptx201 - Semana 5.pptx
201 - Semana 5.pptxACRobotics
 

Similar a DevOps+[Chef/Docker] (20)

Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de Aplicaciones
 
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
 
Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8Visual Studio Tour Plain Concepts - ALM para Windows 8
Visual Studio Tour Plain Concepts - ALM para Windows 8
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOps
 
IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWS
 
Técnicas para la Implementación de Desarrollo Continuo en AWS
Técnicas para la Implementación de Desarrollo Continuo en AWSTécnicas para la Implementación de Desarrollo Continuo en AWS
Técnicas para la Implementación de Desarrollo Continuo en AWS
 
S14-DAW-2022S1.pptx
S14-DAW-2022S1.pptxS14-DAW-2022S1.pptx
S14-DAW-2022S1.pptx
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Integración continua en AWS con Docker, ECS y PHP7
Integración continua en AWS con Docker, ECS y PHP7Integración continua en AWS con Docker, ECS y PHP7
Integración continua en AWS con Docker, ECS y PHP7
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Pipelines as code with Drone
Pipelines as code with DronePipelines as code with Drone
Pipelines as code with Drone
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Curso Kubernetes CodeURJC
Curso Kubernetes CodeURJCCurso Kubernetes CodeURJC
Curso Kubernetes CodeURJC
 
201 - Semana 5.pptx
201 - Semana 5.pptx201 - Semana 5.pptx
201 - Semana 5.pptx
 

Más de Christian Rodriguez

Aplicaciones pensadas para la nube
Aplicaciones pensadas para la nubeAplicaciones pensadas para la nube
Aplicaciones pensadas para la nubeChristian Rodriguez
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
 
Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Christian Rodriguez
 
Centralizando la autenticación y autorización en la UNLP. Nuestra experiencia...
Centralizando la autenticación y autorización en la UNLP. Nuestra experiencia...Centralizando la autenticación y autorización en la UNLP. Nuestra experiencia...
Centralizando la autenticación y autorización en la UNLP. Nuestra experiencia...Christian Rodriguez
 
CISL: ChoiqueCMS, KimKelem, Meran, Software liberado por la UNLP
CISL: ChoiqueCMS, KimKelem, Meran, Software liberado por la UNLPCISL: ChoiqueCMS, KimKelem, Meran, Software liberado por la UNLP
CISL: ChoiqueCMS, KimKelem, Meran, Software liberado por la UNLPChristian Rodriguez
 
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...Christian Rodriguez
 

Más de Christian Rodriguez (8)

Aplicaciones pensadas para la nube
Aplicaciones pensadas para la nubeAplicaciones pensadas para la nube
Aplicaciones pensadas para la nube
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...Un recorrido por las herramientas de software libre que uso cada día, en los ...
Un recorrido por las herramientas de software libre que uso cada día, en los ...
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Soluciones a escenarios Reales
Soluciones a escenarios RealesSoluciones a escenarios Reales
Soluciones a escenarios Reales
 
Centralizando la autenticación y autorización en la UNLP. Nuestra experiencia...
Centralizando la autenticación y autorización en la UNLP. Nuestra experiencia...Centralizando la autenticación y autorización en la UNLP. Nuestra experiencia...
Centralizando la autenticación y autorización en la UNLP. Nuestra experiencia...
 
CISL: ChoiqueCMS, KimKelem, Meran, Software liberado por la UNLP
CISL: ChoiqueCMS, KimKelem, Meran, Software liberado por la UNLPCISL: ChoiqueCMS, KimKelem, Meran, Software liberado por la UNLP
CISL: ChoiqueCMS, KimKelem, Meran, Software liberado por la UNLP
 
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
Contribuciones de software de código abierto realizados por CeSPI, UNLP - TIC...
 

Último

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 

Último (20)

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 

DevOps+[Chef/Docker]

  • 1. DevOps+ [Chef/Docker] por Lic. Christian Rodriguez car@info.unlp.edu.ar @car_unlp Junio de 2014 Jornadas de actualización Tecnológica - SD
  • 2. Temas ● Objetivo ● Los problemas en la organización ● Algunas soluciones ● DevOps ● Productos ● Conclusiones
  • 3. Objetivo Plantear la realidad contemporánea de nuestra organización, a partir de problemas y soluciones que han surgido espontáneamente y derivaron en la aplicación de la metodología DevOps
  • 4. Los problemas en la Organización ● Los problemas pueden analizarse desde: – La perspectiva del desarrollo – La perspectiva de TI – La perspectiva de la puesta en producción
  • 5. La perspectiva de Desarrollo
  • 6. Problemas en desarrollo ● Cerca de 100 aplicativos: 70 de los cuales tienen actividad constante ● Versiones diferente de productos todas las semanas ● Por día se realizan 5 deploys aproximados – Por errores en producción – Por nuevas funcionalidades ● Ambientes de trabajo: – Desarrollo – Pruebas – Producción
  • 7. Problemas en desarrollo ● Ambientes complejos – SSO – APIs – Balanceo y Caching
  • 8. Problemas en desarrollo ● Conseguir datos de producción – Dumps de bases de datos – Código en producción
  • 10. Los problemas de TI ● Desarrollo no es el único cliente ● Se cumplen varias tareas complejas de administración ● Nuevos productos que requieren conocimientos de arquitecturas emergentes: NodeJS, Erlang, Redis, APIs, MongoDB, etc – No todo es xAMP, Exim/Postfix, iptables ● Compromiso de seguridad por el hosting de aplicativos de terceros ● Vencimientos SSL
  • 11. La perspectiva de producción
  • 12. Los problemas en producción ● Procedimientos para el deploy de nuevas aplicaciones ● Procedimientos para la actualización de aplicaciones ● Aplicar parches a bases de datos productivas de gran volumen ● Notificación a usuarios de aplicaciones sobre los cambios a aplicar ● Monitoreo y backup de servicios ● Vencimiento de contratos y SLA
  • 14. Soluciones ● Virtualización ● Matriz de aplicaciones por seguridad y criticidad ● Controles de seguridad por aplicación – Cada aplicación WEB corre con usuario diferente – Firewall por cada aplicación o servicio ● Análisis de nuevos productos como nginx, openvz, varnish, haproxy, etc.
  • 15. Virtualización ● Simplificaciones – Backups – Gestión de TI – Migraciones en caliente – Aprovechamiento de recursos – Instalaciones basadas en templates ● Complicaciones – Mantenimiento de virtuales – Estado contractual de todas las VMs en mi dominio – Sin una solución de storage no se aprovechan muchas ventajas
  • 16. Matriz de aplicaciones ● Relevamiento de aplicaciones por vulnerabilidades y criticidad de los datos servidos ● A partir del análisis surgen nuevas inquietudes – Apache + ITK – PHP FPM – No todas nuestras soluciones son xAMP – Contenedores linux: OpenVZ / LXC
  • 17. Algunos problemas ● Nuevos productos emergentes requieren investigación sobre configuraciones y puesta a punto en producción ● Escasez de recursos en nuevas tendencias: – Servidores Ruby: unicorn, puma, Apache mod rails / passenger – Caching: varnish – Balanceo: nginx / ha-proxy – Nuevos servicios: Bases NO-SQL, AMQP, etc
  • 18. DevOps Una nueva tendencia orientada a obtener una relación colaborativa de trabajo entre las áreas de desarrollo y TI
  • 19. Objetivos ● Mejorar los tiempos de respuesta ● Cumplir con las fases del proyecto según lo planificado ● Mejorar el ciclo de vida ● Versionado de ambientes ● Exigir confiabilidad, estabilidad, resilencia y seguridad en el ambiente de operaciones ● Desarrolladores que piensen como administradores, y administradores que piensen como desarrolladores
  • 20. Ciclo de vida Se define ciclo de vida al tiempo promedio que toma desde que un nuevo requerimiento es aprobado, el área de desarrollo lo implementa y el pase definitivo a producción
  • 21. Versionado de ambientes ● El personal de TI debe lidiar con múltiples configuraciones e instalación de actualizaciones. Estos cambios implican una nueva versión de ese ambiente. La única forma de realizarlo a tiempo, en forma documentada y minimizando errores a través de scripts ● Surge Infrastructure as Code ● Los scripts generan nuevos entornos virtuales que deben versionarse como código tradicional
  • 22. Orígenes de DevOps ● Velocity Conference ● Infraestructure as code ● Agile infrastructure ● Agile system administration
  • 24. Qué es? ● Basado en LXC ● Simplifica el deployment de aplicaciones en contenedores ● Se compone de: – Docker engine: soporte de herramientas provistas por docker para el desktop, con las cuales podemos correr, crear y administrar contenedores – Docker Hub: repositorio de imágenes
  • 25. Filosofía Docker ● Gestión de imagenes: se pueden descargar del hub docker, y una vez locales usarlas para iniciar contenedores ● Gestión de contenedores a partir de imágenes ● En cualquier momento, se puede versionar un contenedor creando una nueva imagen
  • 27. Un ejemplo de uso real ● Desarrollo de aplicaciones PHP < 5.4 ● Simulación de instalación de ambientes ● A futuro: – Deploy completo del ambiente de testing – Tests al vuelo: from scratch
  • 28. Chef
  • 29. Qué es? ● Permite gestionar la infraestructura como código alcanzando – Versionado – Testearla – Replicarla
  • 30. Cómo trabaja? ● Con libros de cocina y recetas ● Se programa en Ruby ● Requiere de una arquitectura de servicios: – Servidor Chef – Máquinas a aprovisionar – Máquinas del administrador ● Para probar se combina fácilemente con vagrant – Vagrant es un gestor de VMs (por defecto Vbox) – Se integra muy bien con AWS
  • 31. Veamos unas recetas simples ● Recetas para: – Choique: CMS desarrollado por UNLP ● URL: https://github.com/Desarrollo-CeSPI/choique_cookbook – Kimkelen: sistema de gestión de alumnos de UNLP ● URL: https://github.com/Desarrollo-CeSPI/kimkelen_cookbook ● Usaremos vagrant para probar – Debemos instalar el plugin vagrant-berkshelf ● Al descargar, en el directorio correr: vagrant up
  • 32. Lo mismo con AWS/Docker ● Analizamos las otras configuraciones en los repositorios anteriores – Iniciamos una instancia de la aplicación en AWS ● Requiere los plugins: – vagrant-aws – vagrant-omnibus
  • 33. Un ejemplo real con chef ● Instalar un choique en la infraestructura de testing de UNLP – Crear un usuario con el que corre PHP con Apache mod ITK – Configurar proxy reverso frente al equipo anterior – Editar la configuración de DNS ● Dos dominios: uno para el frontend, y otro para el backend – Deployar la aplicación por un usuario de desarrollo
  • 34. Conclusiones ● Adoptando este modelo se reducen tiempos de liberación de aplicaciones desarrolladas utilizando metodologías ágiles ● Integración y sincronización de tareas entre TI y desarrollo ● Revisión acerca de la segregación de funciones tradicional definida en marcos de referencia, buenas prácticas y estándares
  • 35. Referencias ● DevOps: – http://itrevolution.com/ – DevOps por New Relic – http://devopsweekly.com/ ● Docker: http://www.docker.com/ ● Chef: http://www.getchef.com/ – http://chrodriguez.github.io/capacitacion_chef/