IBM PC = 1981
horas para instalaciones
acceso directo al hardware
un hardware => una aplicacion
estabilidad y seguridad progresiva
"si funciona, no lo toques"
aplicaciones limitadas por hardware disponible
desarrollo en ambientes diferentes de prod
despliegue por ZIP
Linux = 1991
Java = 1995
C# = 2000
.com bubble = 2001
GMail = 2004
iPhone = 2007
Sistemas de Paquetes:
Sistemas Administración Configuración:
Android = 2008
TypeScript = 2012
Docker = 2013
Swift = 2014
+
Proveedor
provider
Aprovisionamiento
provissioning
Infraestructura
Sistema operativo
Actualización
Aplicación
Servicio
Seguridad
versionable
incremental
metodologia
testing
entornos
consistencia
repetible
documentación
| Aspecto | Agile | DevOps |
|---|---|---|
| Propósito principal | Entregar software funcional en iteraciones cortas, enfocándose en valor para el cliente y flexibilidad ante cambios | Integrar desarrollo y operaciones para entregar software de manera rápida, confiable y continua, incluyendo despliegue y operación |
| Alcance | Ciclo de desarrollo de software: planificación, diseño, desarrollo, pruebas | Todo el ciclo de vida del software: desarrollo, pruebas, despliegue, operación y retroalimentación |
| Enfoque | Procesos, iteraciones, colaboración del equipo de desarrollo | Automatización, integración continua, entrega continua, monitoreo y colaboración entre Dev y Ops |
| Cadencia | Sprints o iteraciones (generalmente 1–4 semanas) | Pipeline continuo: cada cambio en el código puede disparar construcción, prueba y despliegue automático |
| Roles principales | Product Owner, Scrum Master, Equipo de Desarrollo | Desarrollo, Operaciones, QA, Seguridad (colaboración cross-functional) |
| Medición del éxito | Valor entregado al cliente, velocidad del equipo, cumplimiento de historias de usuario | Frecuencia de despliegue, tiempo de entrega, estabilidad, tiempo de recuperación ante fallas |
DevOps es un conjunto de prácticas que combina desarrollo (Dev) y operaciones (Ops) con el objetivo de:
Objetivos principales:
Nota: AWS ofrece herramientas para cada fase, integradas con pipelines automatizadas
| Herramienta | Función |
|---|---|
| AWS CodeCommit | Repositorio Git privado y seguro |
| AWS CodeBuild | Servicio de construcción e integración continua |
| AWS CodeDeploy | Despliegue automatizado en EC2, Lambda o ECS |
| AWS CodePipeline | Orquestación de pipelines CI/CD |
| AWS CloudWatch | Monitoreo y alertas |
| AWS CloudFormation | Infraestructura como código |
Pipeline: flujo de trabajo automatizado para construir, probar y desplegar código
Etapas:
Ventajas:
Caso: Aplicación web en EC2
Flujo:
CodeCommit --> CodeBuild --> CodeDeploy --> CloudWatch
Cada cambio en CodeCommit dispara automáticamente el pipeline
version: 0.2
phases:
install:
commands:
- echo "Instalando dependencias..."
- npm install
build:
commands:
- echo "Construyendo la aplicación..."
- npm run build
post_build:
commands:
- echo "Pruebas unitarias..."
- npm test
artifacts:
files:
- '**/*'
Este archivo indica a CodeBuild cómo construir, testear y empaquetar la aplicación
https://creativecommons.org/licenses/by/4.0/deed.es