You are on page 1of 37

Arquitectura de Software

Clase 9
Tácticas para los atributos de Calidad
y alta disponibilidad

Hugo R. Cordero

1
Objetivos
• Conocer y entender diferentes tácticas aplicables a los atributos de calidad
de disponibilidad, interoperabilidad, performance, modificabilidad y
seguridad
• Aprender a diseñar sistemas seguros con tolerancia a fallas y balanceo de
carga.

2
Temas
1. Tácticas para atributos de calidad
▪ Performance
▪ Interoperabilidad
▪ Modificabilidad
▪ Seguridad
▪ Disponibilidad
2. Alta disponibilidad

3
Tácticas de Performance
• El objetivo de las tácticas de rendimiento es generar una respuesta a un
evento que llega al sistema dentro de algún tipo de restricción basada en el
tiempo.
• Las tácticas de rendimiento controlan el tiempo dentro del cual se genera una
respuesta
• Las tácticas para el rendimiento la podemos dividir en:
– Control de la demanda de recursos
– Gestión de recursos

4
Tácticas de Performance
Dos colaboradores básicos del tiempo de respuesta
• El tiempo de procesamiento (cuando el sistema está trabajando para
responder). El procesamiento consume recursos, lo que lleva tiempo. Los
eventos son manejados por la ejecución de uno o más componentes, cuyo
tiempo gastado es un recurso.
• El tiempo de bloqueo (cuando el sistema es incapaz de responder). Un cálculo
puede ser bloqueado debido a la pelea por algún recurso necesario:
– Contención de recursos
– La disponibilidad de recursos
– La dependencia de otro tipo de cálculo

5
Tácticas de Performance
Control de la demanda de recursos (1)
• Una forma de aumentar el rendimiento es administrar cuidadosamente la
demanda de recursos.
• Existen una serie de técnicas:
– Manejar tasa de muestreo (si se puede reduce la frecuencia de entradas para
el sistema, entonces se limita el consumo de recursos a lo aceptable pero
existirá cierta pérdida de entradas)
– Límite de respuesta a eventos
– Priorizar eventos

6
Tácticas de Performance
Control de la demanda de recursos (2)
– Tiempos de ejecución obligados (tiempos de expiración, timeout)

– Aumentar la eficiencia de los recursos (mejorar los algoritmos)


– Reducir sobrecarga (eliminar intermediarios en el flujo. Es decir eliminar
componentes ya no necesarios o unificarlos)

7
Tácticas de Performance
Gestión de los recursos
• Aunque la demanda de recursos puede no ser controlable, la gestión de los
mismos sí lo es. Por ejemplo, a veces, un recurso puede ser cambiado por otro.
• Algunas de las tácticas son:
– Aumentar recursos
– Tamaño de colas
– Introducir concurrencia
– Habilitar varias copias de cálculo (multiprocesamiento, balanceo)
– Mantener varias copias de los datos (Cache)
– Programar ejecución de recursos (según se compatible para el recursos y
proceso, agendar la ejecución)

8
Tácticas de Performance
Políticas de planificación
• Una política de planificación tiene dos partes: una asignación por prioridad y
su despacho.
• Todas las políticas de planificación asignan prioridades:
– First In/First Out
– Planificación con prioridad fija (asigna a cada fuente de recursos solicitada una
prioridad particular según análisis)
– Programación de prioridad dinámica:
• Round-robin
• Más cercano al plazo primero
• Menos tiempo pendiente para terminar primero
– Programación estática (ya está predefinida la prioridad, no hay planificador).

9
Tácticas de Interoperabilidad
Escenario de calidad de Interoperabilidad

10
Tácticas de Interoperabilidad
Dos tácticas:
• Facilitar la localización, busca el “descubrimiento de servicios”:
– Es usada por el sistema que necesita interoperar para descubrir los servicios en
tiempo de ejecución
• Gestión de Interfaces, está compuesta por dos categorías:
– Orquestación, es una táctica usada como mecanismo de control para coordinar y
administrar la secuencia de invocaciones entre los servicios
– Acondicionamiento de Interfaces, es una táctica que permite agregar o retirar
capacidades a las interfaces

11
Tácticas de Modificabilidad
Escenario de calidad de Modificabilidad

12
Tácticas de Modificabilidad
Parámetros de la modificabilidad
• Tamaño del módulo
– Afecta el costo de realizar una modificación
• Acoplamiento
– Determina el costo que tendrá llevar a cabo una modificación sobre un componente
con respecto a otro
• Cohesión
– Contribuye a identificar posibles cambios relacionados y anticipar necesidades
adicionales
• Tiempo del despliegue de la modificación
– Determina cuanto se puede esperar por implementar las modificación

13
Tácticas de Modificabilidad
Tácticas
• Reducir el tamaño de los módulos
– Dividir los módulos
• Reducir el Acoplamiento
– Encapsular
– Usar un intermediario
– Restringir dependencias
– Refactorizar
– Abstraer servicios comunes
• Incrementar la Cohesión
– Incrementar la coherencia semántica
• Aplazamiento de despliegues

14
Tácticas de Seguridad
• El lograr la seguridad en un sistema es muy similar al que se otorga a una
empresa, ante posibles ataques se debe de contar con mecanismos de
contingencia como bloqueado automático de puertas o una copia de seguridad
del sistema que se encuentre fuera del mismo.
• Existen 4 tipos de tácticas para obtener una mayor seguridad en un sistema:
– Detectar ataques
– Resistir ataques
– Reaccionar ante ataques
– Recuperarse de ataques

15
Tácticas de Seguridad
Detectar Ataques
• Detección del intruso
– Se compara los comportamientos normales del sistema como: tráfico de red,
tamaño de datos, firmas, etc. Y ante alguna variación se enviará una alerta sobre
actividad “anormal”.
• Detectar la negación del servicio
– Es comparar el patrón o la firma de tráfico de red con una base del histórico de
ataques detectados.
• Verificar la integridad del mensaje
– Emplea técnicas como la comprobación de valores hash para comprobar la
integridad del mensaje.
• Detectar retraso de mensaje
– Al calcular el tiempo que debe de tardar un mensaje se puede detectar si el mismo
fue interceptado o alterado en el camino

16
Tácticas de Seguridad
Resistir Ataques
• Identificar los Usuarios del sistema
– Cada usuario tiene un perfil definido.
– Generalmente tienen una cuenta de usuario
y contraseña.
• Limitar el acceso a los recursos informáticos
• Cambiar la configuración predeterminada.
– Al cambiar los ajustes de fábrica se logra obtener una configuración personalizada
difícil de descifrar por usuarios externos.
• Cifrar datos
– La confiabilidad se logra mediante la aplicación de algún tipo de cifrado de datos. Al
no contar con controles de autorización, los enlaces de comunicación cuentan con
encriptación para aquellos de acceso público.

17
Tácticas de Seguridad
Reacciones ante los Ataques
• Bloquear Equipo
– Ante varios intentos fallidos por acceder a un usuario, muchos sistemas optan
por bloquear los usuarios y/o equipos
• Revocar acceso
– Si el sistema detecta que está siendo atacado en alguna parte, puede aislar
dichos componentes atacados hasta que se logre desinfectar o verificar la
seguridad del sistema, esta acción evitaría que el hacker o virus se deslice a
través de todo el sistema.
• Informe de los usuarios
– Existen ataques que son detectados en el momento, los mismos que pueden
ser contraatacados por usuarios del mantenimiento del sistema, es por tal
motivo que ante una situación anormal se debe de enviar una notificación al
área encargada

18
Tácticas de Seguridad
Recuperarse de los Ataques
• Ante la detección de un ataque y después de tratar de resistir el mismo, se
puede aplicar las diferentes tácticas de Disponibilidad
– El sistema necesita restaurar sus servicios y para ello debe de tener recursos de
contingencia como son servidores adicionales, copias de seguridad, entre
otros.
• El sistema debe de mantener un registro de Auditoria, es decir mantener un
registro de acciones que realizan los usuarios del sistema
– Ayuda a rastrear las acciones ante un ataque. Así podemos analizar los rastros
dejados en la auditoria para crear mejor defensas ante futuros ataques o para
tomar las acciones legales correspondientes

19
Tácticas de Disponibilidad
• Un error o combinación de ellos pueden ocasionar un fallo del sistema
• Las tácticas de disponibilidad se han diseñado para que el sistema tolere los
fallos y pueda seguir siendo compatible con su especificación
• Busca evitar que los errores se conviertan en fallos o repararlos
completamente
• Las tácticas de disponibilidad están dividas en:
– Detección de errores
– Recuperación de errores
– Prevención de errores

20
Tácticas de Disponibilidad
Detección de Errores
• Ping/echo, valida la disponibilidad de conexión
• Un monitor es un componente que se utiliza para supervisar el estado de salud
del sistema: procesadores, procesos, E/S, la memoria, etc.
• Heartbeat es un mecanismo que utiliza un intercambio de mensajes periódicos
para validar el estado del sistema
• Marca de tiempo se utiliza para detectar secuencias incorrectas de eventos y
tiempos no apropiados
• Detección de excepciones se refiere a la detección de una condición de sistema
que altera el flujo normal de ejecución

21
Tácticas de Disponibilidad
Recuperación de Errores (1)
• Redundancia Activa (nodos procesando sincronizados, alta disponibilidad)
• Redundancia Pasiva (nodos procesando balanceados, media disponibilidad)
• Recambio (nodos no activos que se ponen activos, menor disponibilidad)

22
Tácticas de Disponibilidad
Recuperación de Errores (2)
• Manejo de Excepciones
• Implementación de Rollback (regresar al último punto correcto - checkpoint)
• Reintentar (hasta cierto punto)
• Ignorar el comportamiento defectuoso (si el error no es importante)
• Degradación
• Reconfiguración

23
Tácticas de Disponibilidad
Prevención de Errores
• Desactivando preventivamente un componente
• Implementando operaciones transaccionales (todo o nada)
• Realizar modelos preventivos para anticipar una falla según su estado actual y
pasado
• Implementar elementos que eviten la aparición de excepciones
• Hacer que un componente maneje más casos sin lanzar excepciones,
proveyendo flujos alternativos.

24
Alta Disponibilidad
Características
• No hay alta disponibilidad, sino sistemas altamente disponibles
• Un sistema puede configurarse con alta disponibilidad frente a un servicio y no
frente a otro:
– Un conjunto de servidores puede proporcionar un servicio de discos redundante y
sin embargo, no tenerla en los servidores de impresión.
– Un servidor web puede tener redundancia en una granja de servidores web, pero no
disponer de un UPS que elimine el riesgo de apagón de suministro eléctrico
• Conceptos relacionados:
– Latencia de un fallo, latencia de un error
– Tiempo medio de fallo (MTTF)
– Tiempo medio de reparación (MTTR)
– Tiempo medio entre fallos (MTBF)
– Tiempo de inactividad (downtime), Uptime

25
Alta Disponibilidad
Características
• Alta disponibilidad (HA por sus siglas en inglés), es la característica que tiene un
sistema para protegerse o recuperarse de interrupciones o caídas, de forma
automática y en un corto plazo de tiempo
• Los sistemas con alta disponibilidad se diseñan para eliminar o tolerar los
posibles puntos de fallo
• Busca reducir los tiempos de inactividad (downtime)
– Downtime no planificado
– Downtime planificado
• Un punto único de fallo (SPoF) es una
parte de un sistema que en caso de fallo
parará todo el sistema. En los sistemas
de HA es importante detectar todos los
SPoF para implementarles una redundancia
que los elimine.

26
Cálculo de la Disponibilidad
• No es necesario que un sistema esté fuera de servicio para decir que está
indisponible. Basta que el sistema rebase los umbrales de consumo de recursos
con respecto a los parámetros para los cuales se diseño:
– Uso del disco, debe estar por debajo de 85%
– Uso del CPU, debe estar por debajo de 95%
– Uso de RAM, debe estar por debajo de 90%
• La disponibilidad se expresa como el porcentaje de minutos de funcionamiento
(Tiempo Disponible TD) sobre el total de minutos de un año (Tiempo
Disponible + Tiempo Inactivo TI ):

Disponibilidad (%) = TD / (TD + TI ) * 100

– 99.9% = 43,8 minutos/mes u 8.76 horas/año (“tres nuevos”)


• Ejemplo: supongamos que un servicio tiene 175 minutos de
parada en un mes (tomando 30 días por mes), cuál es su
disponibilidad?

27
Elementos de un sistema con alta
disponibilidad
• Elementos de entorno
– Alimentación
– Humedad y temperatura
– Seguridad y acceso
• Elementos de proceso de datos
– Redundancia
– Configuración de software
• Elementos de almacenamiento
– Tecnologías de discos
– Equipos de backup
• Red
– Cableado estructurado
– redundancia y balanceadores
– Firewalls
• Sistemas de monitorización, alertas y SLA
• Equipo humanos de soporte internos y externos
• Políticas internas y directivas empresariales

28
Tolerancia a Fallas
• Esquema de tolerancia por replicación, donde se tienen varias instancias
idénticas del servicio y las peticiones se hacen a todas ellas en paralelo.
• Esquema de tolerancia por redundancia
– Configuración Activo Pasivo, las peticiones son dirigidas a uno de los equipos, uno de
los nodos está apagado a la espera de una falla en el primero para recién activarse.
– Configuración Activo – Activo, ambos nodos
permanecen activos y las peticiones pueden
ser dirigidas a cualquiera de los dos, y cuando
uno de los dos falla, el otro absorbe toda la
carga.

29
Balanceo de Carga
• Un balanceador es un dispositivo de hardware o software que se pone al
frente de un conjunto de servidores que soportan una aplicación y que
asigna o balancea las solicitudes de los clientes que llegan a los servidores
usando algún algoritmo de balanceo
• Un balanceador siempre es un sistema redundante con reparto de actividad
entre los nodos que componen la redundancia
• Algoritmos de balanceo:
– Reparto Round Robin
– Basados en reporte de carga de servidores
– Basados en los tiempos de respuesta de peticiones
– Basados en el estado de los servicios (Up/Down)
– Basados en el número de conexiones activas

30
Sistemas en Cluster
• Un Cluster es un sistema compuesto por un conjunto de servidores autónomos,
interconectados y fuertemente acoplados entre sí, que es un utilizado como un
recurso computacional unificado.
• Se compone de:
– Nodos
– Interconexión entre los nodos
– Conexión a redes externas del cluster
– Un sistema de almacenamiento
– Cluster manager

31
Tipos de Cluster
• Topologías
– Pares Clusterizados
– Cluster N+1
– Cluster Par+N
• Tipos de Cluster:
– Cluster Failover
– Cluster Load balancing
– Cluster High Performance
Computing

32
Lectura 5: Atributos de Calidad
• Chapter 4: Understanging Quality Attributes
Desarrollar las 8 preguntas de la parte final del cuestionario.

Libro: Software Architecture in Practice (3er Edition)


Autor: Len Bass, Paul Clements, Rick Kazman

• Appendix B: Tactics-based Questionnaires


Responder las preguntas para 7 grupos de tácticas para un sistema real

Libro: Designing Software Architectures


Autor: Humberto Cervantes, Rick Kazman

33
Demo 5: Validación de atributo de calidad
• Mediante una demo demuestre como se soporta un atributo de calidad elegido.
Para esto:
– Seleccione un atributo de calidad diferente al resto de grupos
– Elabore del escenario de calidad para ese atributo de calidad
– Mediante el demo demuestra la validación de la métrica definida para el
atributo de calidad. Si es necesario utilice otro software que permita realizar la
prueba y validación del demo.

Notas: Puede ser algún demo anterior que se reutilice/mejore.

• Por demo se entiende un caso de negocio real. La métrica también tiene que
estar en función del demo.

• Fecha de presentación: próxima clase.

34
Resumen
• Tres grupos de tácticas para la disponibilidad: detección de errores,
recuperación de errores y prevención de errores
• Un sistema interoperable hace fácil intercambiar y usar información interna y
externamente
• Los dos componentes básicos del tiempo de respuesta son el tiempo de
procesamiento y el tiempo de bloqueo
• Las tácticas para la performance está agrupadas en control de la demanda de
recursos y la gestión de los recursos
• Los parámetros a considerar en la modificabilidad son: tamaño de los módulos,
acoplamiento, cohesión y tiempo de despliegue de modificaciones.
• Las tácticas de seguridad están organizadas entre detectar, resistir, reaccionar y
recuperarse ante los ataques.
• No es necesario que un sistema esté fuera de servicio para decir que está
indisponible. Basta que el sistema rebase los umbrales de consumo de recursos
con respecto a los parámetros para los cuales se diseño

35
¿Preguntas?

 ¿Qué tácticas seleccionaría por cada atributo de calidad del sistema de su


proyecto?

36
Bibliografía
• Len Bass, Paul Clements, Rick Kazman , Software Architecture in Practice (3rd
Edition)
– Chapter 4, Understanding Quality Attibutes
– Chapter 5, Availability
– Chapter 6, Interoperability
– Chapter 7, Modifiability
– Chapter 8, Performance
– Chapter 9, Security
• Ian Gorton , Essential Software Architecture (2nd Edition)
– Chapter 3, Software Quality Attributes

37

You might also like