Rodolfo Pilas
bloger podcaster devops sysadmin profesor father
NOC Datacenter Antel [Pando] - Fuente: teledoce.com
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:
Metodología de desarrollo de software caracterizada por el descubrimiento de requisitos y la mejora de soluciones a través del esfuerzo colaborativo de los equipos con sus clientes o usuarios finales, la planificación adaptativa, el desarrollo evolutivo, la entrega temprana, la mejora continua y las respuestas flexibles a los cambios en los requisitos, la capacidad y la comprensión de los problemas que hay que resolver
Fuente: Manifiesto for agile software development
2001
"métodos ágiles"
Agile Alliance
Android = 2008
TypeScript = 2012
Docker = 2013
Swift = 2014
Proveedor
Multi-proveedor
+
Proveedor
provider
Aprovisionamiento
provissioning
Infraestructura
Sistema operativo
Actualización
Aplicación
Servicio
Seguridad
versionable
incremental
metodologia
testing
entornos
consistencia
repetible
documentación
Fuente: Manifiesto for agile software development
2001
"métodos ágiles"
Agile Alliance
Client - Business - Development Team
Datacenter
Operations Team
Production
view
Hardware
Agile
Fuente: Manifiesto for agile software development
2001
"métodos ágiles"
Agile Alliance
DevOps es un conjunto de prácticas del desarrollo de software ( Dev ) y las operaciones de TI ( Ops ).
Objetivo: hacer más rápido el ciclo de desarrollo de software y facilitar la entrega continua de calidad, siguiendo las estrategias del negocio.
Práctica complementaria al desarrollo de software ágil.
2008 - Infraestructura ágil
2009 - DevOps
k8s = 2015
AWS EKS = 2018
+
On-Premises cloud
Public cloud
+
paquetes que en runtime son procesos aislados
gestión de contenedores en clusters
La arquitectura de microservicios es un enfoque para el desarrollo de softwareque consiste en construir una aplicación como un conjunto de pequeños servicios, los cuales se ejecutan en su propio proceso y se comunican con mecanismos ligeros (normalmente una API REST). Cada servicio se encarga de implementar una funcionalidad completa del negocio
Fuente:
https://es.wikipedia.org/wiki/Arquitectura_de_microservicios
Objetivo principal: garantizar que los sistemas y los servicios estén disponibles, sean escalables y confiables.
Un enfoque de ingeniería para las operaciones.
Ingeniería de software por un lado (DevOps) y, operaciones de confiabilidad (SRE) por el otro para crear una poderosa dinámica.
Aceptar los errores.
METRICS AND MONITORING: Disponibilidad, latencia, eficiencia, performance, cambios, respuestas, etc.
ERROR BUDGET: Nivel aceptable de errores que definen el SLO (objetivo nivel servicio) que son las metas para que cumplir con las condiciones del SLA.
Métodos (SRE) para devolver sistemas fluctuantes o perturbados al rango decidido de errores aceptables.
AUTOMATION: Mejorar eficiencia, reducir errores humanos.
HERRAMIENTAS MONITOREO: Prometheus, Graphana.
DESPLIEGUES GRADUALES: Minimizar impactos negativos (automatizar, medir...).
POSTMORTEM: Aprender de errores, mejorar continuamente.
FUTURO: AI, ServerLess, data science, IoT, Robotics
DESAFIOS: Personal técnico, sistemas complejos, multiple disciplinas, sistemas heredados, entornos híbridos.
SRE: Respuesta continua para el mantenimiento y creación de sistemas confiables en entorno evolutivo.
By Rodolfo Pilas
Historia del despliegue de aplicaciones hasta DevOps y mas allá SRE