Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Building
Success
Together®2017
Automatización:
Hacia el Software
de Calidad
UNITED STATES CHILE INDIA NISUM.COM P. 2
▪ Conceptos Básicos
▪ Automatización
▪ Desarrollo Guiado por Pruebas (TDD)
▪ Integracion Continua
▪ Entrega Continua
▪ Virtualización y la Nube
▪ DevOps
Contenido
Building
Success
Together®
Conceptos Básicos
UNITED STATES CHILE INDIA NISUM.COM P. 4
▪ Algunos Tipos Básicos de pruebas
○ Unitarias
○ Integración
○ Funcionales
○ Rendimiento
Conceptos Básicos
UNITED STATES CHILE INDIA NISUM.COM P. 5
▪ Repositorios / Control de Versiones
○ Organización
○ Confiabilidad
○ Reducción de riesgo y costo
○ Acceso distribuído
○ Ejemplos SVN, CVS, GIT
Conceptos Básicos
Building
Success
Together®
Automatización
UNITED STATES CHILE INDIA NISUM.COM P. 7
Primeros pasos: Scripts de pruebas
▪ Mas confiabilidad
▪ Menos costo
▪ Mayor productividad
▪ Un proceso más robusto y predecible
Automatización
UNITED STATES CHILE INDIA NISUM.COM P. 8
Análisis estático de código
▪ Forzar adherencia a estilos
▪ Descubrir errores de diseño de código
▪ Código más ordenado y legible
▪ Ejemplos: Rubocop, Sonar
Automatización
UNITED STATES CHILE INDIA NISUM.COM P. 9
Pruebas de API
▪ Facil de desarrollar
▪ SOAP, RESTful
▪ Ejemplos: SoapUI, Postman
Automatización
UNITED STATES CHILE INDIA NISUM.COM P. 10
Tests de sitios Web
▪ Grabadores
▪ Desarrollo manual
▪ Ejemplos: Selenium, QTP
Automatización
Building
Success
Together®
Diseño Guiado por Pruebas (TDD)
UNITED STATES CHILE INDIA NISUM.COM P. 12
Test Driven Development
▪ Escribir tests antes del código
▪ Asegurar que el test falle
▪ Escribir el código para que el test pase
Desarrollo Guiado por Pruebas (TDD)
UNITED STATES CHILE INDIA NISUM.COM P. 13
Test Driven Development
▪ Documentación como parte del código
▪ Facilidad de refactoring
▪ Reutilización
▪ Mejor cobertura
Desarrollo Guiado por Pruebas (TDD)
Building
Success
Together®
Integración Continua
UNITED STATES CHILE INDIA NISUM.COM P. 15
Práctica de desarrollo
▪ Integrar temprano y a menudo
▪ Ramas de pequeñas
▪ Realizar pruebas varias veces al dia
▪ Compilar y crear los entregables varias veces al dia
▪ Mantener el repositorio siempre en un estado entregable
Integración Continua
UNITED STATES CHILE INDIA NISUM.COM P. 16
Servidores de CI
▪ Extraen el código desde un repositorio
▪ Ejecutan pasos configurables
○ Analisis estatico
○ Compilación
○ Tests
▪ Ejemplos: Jenkins, EC, Travis
Integración Continua
UNITED STATES CHILE INDIA NISUM.COM P. 17
Ventajas
▪ Mejoras en productividad
▪ Mayor confiabilidad
▪ Repositorio siempre listo para Producción
▪ Un buen complemento para Agile
Integración Continua
UNITED STATES CHILE INDIA NISUM.COM P. 18
Por qué GIT es el repositorio más usado con CI?
▪ Conveniente para Merge
▪ Organizaciones de trabajo específicas
▪ Facilidad de mantener múltiples repositorios
▪ Rápido y eficiente
Integracion Continua
Building
Success
Together®
Entrega Continua
UNITED STATES CHILE INDIA NISUM.COM P. 20
Si el repositorio siempre está listo para producción…
… por qué no pasamos a producción mas a menudo?
Entrega Continua
UNITED STATES CHILE INDIA NISUM.COM P. 21
Riesgos del deployment manual
▪ Lentitud
▪ Errores de provisionamiento se detectan tarde
▪ Problemas de versiones
▪ Problemas de permisos
Entrega Continua
UNITED STATES CHILE INDIA NISUM.COM P. 22
Y si automatizamos el paso a producción?
▪ Reducción de riesgo y costos
▪ Fácil vuelta atrás
▪ Entrega mas rapida de features
Entrega Continua
UNITED STATES CHILE INDIA NISUM.COM P. 23
Herramientas de Configuración Automática
▪ Rapidez
▪ Confiabilidad
▪ Repetibilidad
▪ Ejemplos: Puppet, Chef
▪ Configuración es Codigo
Entrega Continua
UNITED STATES CHILE INDIA NISUM.COM P. 24
Pipeline
▪ Concepción clásica
▪ Línea de ensamblaje
Entrega Continua
Developers ArtifactCode Build
UNITED STATES CHILE INDIA NISUM.COM P. 25
Pipeline Tradicional
Entrega Continua
Developers
Artifact
Code
Build
Validation
SCMS
Operator
(Operations
Team)Deployment
UNITED STATES CHILE INDIA NISUM.COM P. 26
Pipeline Automatizado
Entrega Continua
DevelopersArtifact
Code
Build
DeploymentValidation
commit
C.I. Software
(Continuous
Integration)
SCMS
UNITED STATES CHILE INDIA NISUM.COM P. 27
Build Automatizado:
▪ Resolución de Dependencias
▪ Compila/Empaqueta
▪ Organiza el código fuente
▪ Publica artefactos
▪ Proceso de Build es Código
Entrega Continua
UNITED STATES CHILE INDIA NISUM.COM P. 28
Software de Automatización de Build
Entrega Continua
Building
Success
Together®
Virtualización y la Nube
UNITED STATES CHILE INDIA NISUM.COM P. 30
Máquinas Virtuales + Cloud = Infraestructura como Servicio
Virtualización y la Nube
UNITED STATES CHILE INDIA NISUM.COM P. 31
Infraestructura como servicio:
▪ Escalamiento Horizontal
▪ Infraestructura física innecesaria
▪ Optimización de Recursos
▪ Infraestructura como Código
Virtualización y la Nube
UNITED STATES CHILE INDIA NISUM.COM P. 32
Si la infraestructura es código,
y los procesos de deployment son Código,
el rol de Operaciones cambia profundamente.
Virtualización y la Nube
Building
Success
Together®
DevOps
UNITED STATES CHILE INDIA NISUM.COM P. 34
Roles de desarrollo?
DevOps
Developers (Codigo de Aplicación)
CI Engineers (Código de Pipeline/ Infraestructura)
QA Engineers(Código de Pruebas)
UNITED STATES CHILE INDIA NISUM.COM P. 35
Tareas Automatizadas
▪ Provisión de Infraestructura
▪ Configuración Plataformas
▪ Procesos de Compilación y Ensamblaje
▪ Deployment
▪ Monitoreo y Tests
Devops
UNITED STATES CHILE INDIA NISUM.COM P. 36
DevOps
UNITED STATES CHILE INDIA NISUM.COM P. 37
Development + Operations
▪ Entrega rapida de productos
▪ Menores tasa de errores
▪ Correcciones rápidas
▪ Monitoreo
DevOps