Vous êtes sur la page 1sur 39

Gerencia Digital de Prensa & News

Fundamentos
DevOps

14 Septiembre 2018
Día 1
Agenda
 Introducción

 Que es DevOps?

 Realmente es necesario DevOps?

 Beneficios de DevOps.
Introducción
“There's a new trend called "devops" that is sweeping the
enterprise IT world and its become a life-or-death career situation
for many IT departments…Like the manufacturers were in the
1970s and 1980s were fighting for their lives, today's IT
departments are going to fight for their survival.”
Jim Whitehurst
CEO, Red Hat
Introducción
Que es DevOps?
Patrick Debois, quien a menudo es llamado "el padre de DevOps", acuñó la palabra
"DevOps" en 2009. La palabra, se formó al combinar dos palabras: "desarrollo" y
"operaciones". DevOps es una forma colaborativa de desarrollar e implementar
software. DevOps (una combinación de desarrollo y operaciones) es un método de
desarrollo de software que hace hincapié en la comunicación, la colaboración y la
integración entre los desarrolladores de software y los profesionales de operaciones
de tecnología de la información (TI).
¿Realmente necesitamos DevOps?
Tradicional : Desarrollo & Operaciones
Desarrollar capacidades de Construye organizaciones
diseño, desarrollo y que sean capaces de
lanzamiento rápido de nuevos adaptarse rápidamente a
productos rentables y entornos de gran
adecuados a las necesidades incertidumbre
de sus clientes

Tiempos de entrega más rápidos

Los equipos IT de alto


rendimiento pasan un 50% de
tiempo menos resolviendo
incidencias de seguridad
Tiempos de recuperación 24
Y un 22% menos de tiempo veces mejores y 3 veces menos
resolviendo errores y problemas errores provocados por cambios
Felicidades DevOps

DEV OPS Production


Deployment success

Gerencia Digital de Prensa & News


Gerencia Digital de Prensa & News

Flujo de Trabajo
DevOps

15 Septiembre 2018
Día 2
Agenda
 Etapas

 Tecnologías

 Conceptos CI & CD

 Flujo GitLab

 Demo
Etapas - DevOps
1 Plan 4 Monitor + Learn

Development Production

2 Develop + Test 3 Release


Plan
Comienza con una idea y un plan
sobre cómo convertir esta idea en
Project starts
realidad ...
Manage work

Develop + Test 1

Track progress Plan


Develop + Test
Una vez que comienza la iteración, los
desarrolladores convierten grandes 2
ideas en características ...
Write Code

Unit Testing

Version Control

Build

Build Verification

Release
Release
Cuando se superan todas las pruebas, la construcción se
implementa en entornos de prueba para cada etapa del proceso de
lanzamiento
Cloud
Load Testing

Integration testing Production


environment environment

3 Monitor + Learn

Automated functional Pre-production


testing environment environment
Monitor + Learn
Monitoree y entienda cómo su aplicación reacciona ante sus
usuarios, reaccione y solucione rápidamente problemas y
errores Plan the next iteration

Feedback

Monitor

4
Conceptos - CI & CD

Mantener un único repositorio de código, con un sistema de gestión de versiones.


Automatizar los builds de código (compilación, carga de esquemas en base de datos, etc.).
Tecnologías
Orquestadora & CM

Contenedores

Versionar Código

CI & CD
Flujo GitLab
Team Develop & QA Application Insights
Back End

equipo
Front End

Calidad de Código Logs app web & Slow Query


Equipo (squad) & OWASP Infraestructura

Quality Assurance

Respondiendo a las
necesidades continuas OPS Siempre manteniendo
de eficiencia y crecimiento todos los sistemas seguros y protegidos

Integration continuous & delivery continuous TI Operations


Como implementar?
DEMO
• Calidad del Código
• Contenedores
• Pipeline CI & CD
Deployment success

Gerencia Digital de Prensa & News


Contenedores
DOCKER
Que es Docker?
“Es un proyecto open source para empaquetar, transportar y
ejecutar cualquier aplicación como un contenedor ligero”

Se trata de un nuevo modelo de virtualización que crea una capa


de abstracción con el S.O.

Un contenedor conforma el contexto de ejecución de una


aplicación. Está compuesto de: − Sistema de ficheros − Procesos −
Memoria − … y todo aislado del S.O huesped
Containers vs VM?
Ventajas de Docker
Instalación
• En linux se hace uso de los comandos de
gestión de paquetes habituales

• Para Windows y Mac se hace uso de un programa llamado


“docker-machine”.
• Docker es un demonio que expone una interfaz REST
Comandos iniciales
• docker (lista los posibles comandos)

• docker version (versión del demonio y del cliente)

• docker info (información del sistema)


Nuestro primer contenedor
• docker run -i ubuntu echo Hello World
− run → Ejecutar un contenedor
− -i → Modo interactivo
− ubuntu → Imagen a usar en el contenedor
− echo Hello World→ Comando a ejecutar

• Flujo: − Busca la imagen localmente, luego en


repositorios centrales.
Imagenes
Una imagen está formada por
capas (layers) que se montan
unas encima de otras. Todas en
modo sólo lectura.

La última capa se monta como


lectura/escritura y da lugar al
contenedor.

Las capas usan el patrón “copy


on write”
Comandos Imagenes

• docker images
• docker run -t -i --name test01 ubuntu /bin/bash
(ubuntu:latest)
• docker run -t -i --name test02 centos:centos6 /bin/bash
• docker pull ubuntu:14.04
• docker pull linux982079/centosopen:centos5
• docker search centos
Crear Imagenes
• docker commit (no recomendado)
− docker run -it centos /bin/bash
− yum upgrade && yum install httpd
− vim /var/www/html/index.html
− exit
- docker commit linux982079/apache: web
• docker build
− Consiste en un fichero (Dockerfile) de instrucciones para construir
las imágenes
DOCKERFILE
Comandos más habituales
− FROM → De que imagen partimos para crear la nueva
− MAINTEINER → Quien mantiene el contenedor
− RUN → Ejecuta una instrucción en el contenedor
− ADD → Añade un fichero o carpeta al contenedor
− ENV → Establece una variable de entorno en el contenedor
− EXPOSE → Indica que se va a exponer un puerto del contenedor
− ENTRYPOINT / CMD→ Qué se ejecuta
Contenedores
Hacen uso de una imagen como base y pueden contener uno o más
procesos.
● Un contenedor Docker es:
− Una instancia de una imagen Docker
− Un conjunto de operaciones asociadas a su ciclo de vida:
● Crear, Destruir, Arrancar, Reiniciar o Parar
− Un entorno de ejecución
Comandos contenedores

Vous aimerez peut-être aussi