Más allá del DevOps

Más allá del DevOps

NOC Datacenter Antel [Pando] - Fuente: teledoce.com

Prof. Rodolfo Pilas
rodolfo.pilas@ucu.edu.uy

Despliegue directo al Hardware

Pre 1990

IBM PC = 1981

Despliegue directo al Hardware

horas para instalaciones

acceso directo al hardware

Despliegue directo al Hardware

un hardware => una aplicacion

estabilidad y seguridad progresiva

"si funciona, no lo toques"

Despliegue directo al Hardware

aplicaciones limitadas por hardware disponible

desarrollo en ambientes diferentes de prod

despliegue por ZIP

Crisis del Software

Virtualización

Post 1990

Linux = 1991

Java = 1995

C# = 2000

.com bubble = 2001

GMail = 2004

iPhone = 2007

Virtualización

Virtualización

CONSOLIDACION

Virtualización

Sistemas de Paquetes:

  • Instalación por aplicación
  • Gestión de dependencias
  • Base de paquetes instalados
  • Desinstalación y actualización
  • Configuración post-instalación

Sistemas Administración Configuración:

  • Aprovisionamiento
  • Gestión completa del SO
  • Mantiene toda la infraestructura
  • Configuracion declarativa
  • Idempotente

¿Recuerdan?

¿Recuerdan?

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

Aguile Development

Fuente: Manifiesto for agile software development

2001
"métodos ágiles"

Agile Alliance

Cloud Computing

2006

2008

2008

Android = 2008

TypeScript = 2012

Docker = 2013

Swift = 2014

Cloud Computing

Cloud Computing

Proveedor

 

Multi-proveedor

+

Proveedor
provider

Aprovisionamiento

provissioning

Infraestructura

Sistema operativo

Actualización

Aplicación

Servicio

Seguridad

Infraestructura
como código

versionable

incremental

metodologia

testing

entornos

consistencia

repetible

documentación

Aguile Development

Fuente: Manifiesto for agile software development

2001
"métodos ágiles"

Agile Alliance

¿Recuerdan?

Client - Business - Development Team

Datacenter

Operations Team

Production
view

Hardware

Agile

Aguile Development

Fuente: Manifiesto for agile software development

2001
"métodos ágiles"

Agile Alliance

¿Recuerdan?

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.

 

DevOps

2008 - Infraestructura ágil

2009 - DevOps

k8s = 2015

AWS EKS = 2018

Hybrid Cloud

+

On-Premises cloud

Public cloud

+

Contenedores y Orquestadores

paquetes que en runtime son procesos aislados

  • livianos
  • densos
  • escalables
  • portables
  • inmutables

gestión de contenedores en clusters

  • lanza contenedores en cluster
  • simplifica escalado
  • simplifica actualización y remplazo
  • monitoreo
  • resiliencia

Arquitectura de Micro-Servicios

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

OS version

Escalabilidad

Fallos hardware

Ancho de banda

Contratos mantenimiento

Obsoletización hardware

Downtimes

Backups

Disaster recovery

Dimensionamientos

Costos cloud

Service Level
Agreements

Site

Reliability Engineering

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.

Site

Reliability Engineering

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.

SRE

Operaciones de confiabilidad

HERRAMIENTAS MONITOREO: Prometheus, Graphana.

DESPLIEGUES GRADUALES: Minimizar impactos negativos (automatizar, medir...).

POSTMORTEM: Aprender de errores, mejorar continuamente.

SRE

Herramientas y practicas

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.

SRE

Desafíos y futuro

Atribución 4.0 Internacional (CC BY 4.0)