Dev Ops
Dev Ops
Dev Ops
html Page 1 of 12
DevOps
Qué es DevOps
DevOps
Developers + Operations
• Developers
◦ Programadores / Desarrolladores.
• Operations (Se engloban los departamento que mantienen el funcionamiento de la infraestructura)
◦ System Administrators.
◦ Network Administrators.
◦ Help Desk.
◦ Administradore de Sistemas.
◦ Administradores de REd.
◦ Mesa de ayuda / Atención al usuario.
Lo que no es DevOps
• No es un Producto.
• No es un Puesto de Trabajo.
• No es una Herramienta.
• No es un Marco de Trabajo.
• No es un Estandar de TI.
generated by haroopad
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 2 of 12
• No es un Proceso.
Colaboración
• DevOps se trata de personas, procesos y tecnologías.- Pretende mejorar la colaboración de los
interesados.
• DevOps extiende la mentalidad Agile para incorporar operaciones.
• DevOps facilita la entrega continua.- Ciclos más cortos para entrega de productos de calidad.
Objetivos
• Mejora la frecuencia de despliegue.
• Utilizar herramientas como:
◦ Continuous Delivery:
◾ Unit Test - Platform Test - Deliver to Staging - App Acceptance Test - (el paso es
manual) Deploy to Production - Post Deploy Test
◦ Continuous Deployment
◾ Unit Test - Platform Test - Deliver to Staging - App Acceptance Test - (el paso es
automático) Deploy to Production - Post Deploy Test
• Mejorar el tiempo de entrega al mercado.
• Reducción de las tasas de error.
• Reducción de los tiempos de corrección.
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 3 of 12
generated by haroopad
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 4 of 12
Aprendizaje Técnico.
• Cultura del caos.
• Cultura de aprendizaje.
• Post-morten.
• Reducción de límites de las alertas.
Herramientas DevOps.
Integración y Despliegue.
• Jenkins (Open Source)
• Gitlab CI (Open Source)
• Atlassian Bamboo (Version Paga)
• Circle CI (Version Paga)
• Travis CI (Version Paga)
Monitorización.
• Nagios/lcinga.
• Telegraf/statsd.
• Graphite/Grafana
• AWS CloudWatch/Google StackDriver.
• Pingdom/StatusCake.
• NewRelic/Rollbar.
Alerta.
• Kapacitor.
• OpsGenie/VictorOps/PagerDuty
• Pushover
generated by haroopad
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 5 of 12
Comunicación y ChatOps.
• Hubot.
• Atlassian Stride.
• Slack.
• Mattermost.
Areas DevOps
1. Evaluación Contínua.
2. Integración Contínua y Testeo.
3. Entrega Contínua y la Implementación.
4. Operaciones Contínuas.
Marco DevOps.
• Vista General de Nivel 100.
generated by haroopad
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 6 of 12
◦ Personas.
◦ Procesos.
◦ Valor de Negocio, etc.
• Prácticas Nivel 200.
◦ Infraestructura como código.
◦ Integración Contínua.
• Producción/Prácticas de Nivel 300.
◦ Azure Deployment template con Azure website + SQL DB.
◦ Aplicación en Linux, VM en Azure.
◦ GitHub + Visual Studio Team Services + Gadle.
◦ Visual Studio Team Services (GIF) + Jenkins (construcción)
De dónde viene?
• Movimiento de las Conferencias Volocity. (John Allspaw y Paul Hammond)
• Movimiento “Infraestructura como código”. (Mark Burgess y Luke HaniKanies)
• Movimiento “Infraestructura Agil”. (Andrew Shafer)
• Movimiento “Administración de sistema Ágil”. (Patrick DeBois)
• Movimiento “Lean Startup”. (Eric Ries)
• Movimiento “Integración Contínua y Liberación”. (Jez Humble)
• La amplia disponibilidad de tecnologías de la nube y PaaS. (Plataforma como Servicios)
DevOps CALMS
• C - Culture (Cultura)
• A - Automation (Automatización)
• L - Lean ()
• M - Measurement (Medición)
• S - Sharing (Compartir)
Roles
generated by haroopad
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 7 of 12
Equipo SCRUM
1. Desarrollador
2. Tester
3. Scrum Master
4. Dueño del Producto
Equipo IT
5. Administrador
6. Release
7. Seguridad
Otros
8. Cliente
9. Negocios
10. Hacker
Jenkins.
Integracion Continua.
Es una práctica de implementación y requiere que se integren código en un repositorio compartido.
Github <-> Jenkins <-> Developer <-> Github
Existe un control de versiones para monitorear cambios, de tal manera que automáticamente construye y
ejecuta la aplicación.
generated by haroopad
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 8 of 12
1. Etapa 2.
1. Etapa 3.
• El Servidor de Compilación está configurado para comenzar a compilar cada vez que se crea un
código nuevo en el repositorio central.
• Las compilaciones defectuosas son tratadas como un problema de alta prioridad para darle
solución inmediata.
1. Etapa 4.
• Existe calida de código automatizada y metricas de covertura de código, las cuales se ejecutan con
pruebas unitarias para evaluar continuamente la calidad del código.
1. Etapa 5.
Qué es Jenkins.
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 9 of 12
Características de Jenkins.
• Fácil de usar.
• Flexible. Se apoya en aplicaciones para:
◦ Sistema de control de versiones.
◦ Métricas de calidad de código.
◦ Notificaciones de compilación.
◦ Personalización de UI.
Arquitectura Jenkins.
• Arquitectura Master and Slave de Jenkins.
◦ Master
◾ Gestionar los build jobs.
◾ Destina build a los slaves para la ejecución del job real.
◾ Monitorea los slaves y registra los resultados del build.
◾ Puede ejecutar build jobs directamente.
◦ Slave
◾ Ejecuta build jobs enviados por el master.
◦ Job/Project
◾ Estos dos terminos son usados indistintamente. Se refieren a tareas ejecutables que
son controladas o monitoreadas por Jenkins.
◦ Slave/Node
◾ Slaves son computadores establecidas para construir projectos para un master.
◾ Jenkins ejecuta un programa por separado llamado “slave agent” en los slaves.
◾ Node se utilizará para referirse a todas las máquinas que son parte de una malla
Jenkins, slaves y master.
◦ Executor
◾ Executor es una rama de builds a ser ejecutados en un node en paralelo.
◾ Un Node puede tener uno o mas executors.
◦ Build
◾ Un build es un resultado de uno de los proyectos.
◦ Plugin
◾ Es una pieza de software que amplia la funcionalidad fundamental del servidor central
de Jenkins.
generated by haroopad
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 10 of 12
Consola UI de Jenkins.
• Instalar el plugin github.
• Instalar Maven.
◦ Maven describe como el software es construido.
◦ Maven describe las dependencias del proyecto.
Entrega Contínua.
Implementación Contínua.
generated by haroopad
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 11 of 12
Pruebas Unitarias
Integración Continua
Testing: Jest
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019
DevOps.html Page 12 of 12
Instalar Jenkins
• Tener instalado Git
• Tener instalado MSBuild
• Configurar Git y MSBuil -> Administrar Jenkins/Global Tools Configuration
• Generar una nueva Tarea.
◦ Configurar el origen del código fuente y especificar la rama.
◦ Configurar MSBuild.
◦ Excluir el archivo Web.config.
Inspección Contínua.
generated by haroopad
file:///C:/SIASW/Documentos/2019/Documentos/DevOps.html 10/05/2019