Introducción al curso

1

Diseño y Documentación de Arquitectura de Software

Atributos de calidad

2

Atributos de Calidad en Sistemas: Definición y Medición

3

Idoneidad Funcional: Completitud, Exactitud y Pertinencia

4

Eficiencia de Ejecución en Sistemas Informáticos

5

Compatibilidad en Sistemas: Interoperabilidad y Coexistencia

6

Subcaracterísticas de Usabilidad en Desarrollo de Software

7

Confiabilidad de Sistemas: Madurez, Disponibilidad, Resiliencia y Recuperación

8

Seguridad de Usuarios en Desarrollo de Software

9

Subcaracterísticas de Mantenibilidad en Sistemas de Software

10

Medición de Adaptabilidad en Sistemas de Software

11

Relación y Tensión entre Atributos de Calidad en Sistemas de Software

12

Atributos de Calidad en Arquitectura de Software

Patrones de arquitectura

13

Patrones de Arquitectura Monolítica y Distribuida

14

Modelo Vista Controlador: Separación de Responsabilidades en Aplicaciones

15

Arquitectura de Capas: Diseño y Comunicación entre Niveles

16

Patrones de Arquitectura Orientada a Eventos y Event Sourcing

17

Patrón de Arquitectura MicroKernel y su Implementación en IDEs

18

Arquitectura "Comparte Nada": Optimización y Procesamiento de Datos

19

Patrón de Microservicios en Arquitectura de Software

20

Patrón CQRS para Separación de Consultas y Comandos

21

Arquitectura Hexagonal: Diseño y Aplicación Práctica

22

Diseño Orientado al Dominio: Conceptos y Aplicaciones Prácticas

23

Patrones de Arquitectura para Aplicaciones Escalables y Modulares

24

Patrones de Arquitectura en Proyectos de Crecimiento Empresarial

Diseño de una arquitectura

25

Diseño de Arquitecturas a Medida: Herramientas y Estrategias

26

Tipos de Conectores en Arquitectura de Software

27

Conectores Asíncronos y Sincrónicos: Implementación y Uso Práctico

28

Diferencias entre Enrutadores y Difusores en Comunicación de Mensajes

29

Conexión de Productores y Consumidores con Colas de Mensajes

30

Framework de Diseño Orientado a Atributos: Escenarios y Tácticas

31

Tácticas para Mejorar la Disponibilidad de Sistemas

32

Tácticas para Mejorar la Disponibilidad del Sistema

33

Tácticas para Mejorar la Mantenibilidad del Software

34

Prevención de Efectos Dominó en Mantenibilidad de Software

35

Estrategias para Mejorar la Eficiencia de Ejecución en Sistemas

36

Tácticas de Seguridad Informática para Detectar, Resistir y Recuperarse de Ataques

37

Estrategias para Mejorar la Capacidad de Prueba de Software

38

Tácticas de Usabilidad en Diseño de Interfaces de Usuario

39

Validación de Arquitectura con ATAM y Métricas de Calidad

40

Diseño de Arquitectura para Startups y Empresas Escalables

Modelado y documentación de arquitectura

41

Documentación Efectiva de Arquitectura de Software

42

Sincronización de Modelos de Arquitectura y Código Fuente

43

Evaluación de Atributos de Calidad en Arquitectura de Software

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Tácticas para Mejorar la Disponibilidad del Sistema

32/43
Recursos

Reintroducción, vemos como varios componentes replicados pueden ser reintroducidos a producción a medida que se comprueba su funcionamiento.

Aportes 8

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Apuntes:

Reintroducción y prevención.

Reintroducción. Cómo podemos hacer dado una falla de disponibilidad para reintroducir el sistema y que vuelva a estar disponible.
• Modo Sombra. Un componente comienza a fallar entonces lo quitamos de nuestro cluster productivo, pero seguimos evaluando por detrás si se comporta correctamente o no. Ya sea con un operador o el mismo sistema.
• Sincronización de estado. El estado del componente pasa a ser inválido, entonces lo quitamos del cluster productivo y sincronizamos el estado de los que sí se comportan correctamente con el componente que no se estaba comportando correctamente.
• Punto de control / Retroceso. Nos permite marcar estados de nuestra aplicación que sabemos que son consistentes. Entonces cuándo detectamos una falla, podemos quitar de servicio ese componente y volverlo atrás al estado consistente y luego reproducir con un log o registro las acciones que fueron sucediendo después de ese estado, de esa forma podemos recuperar el estado consistente de la aplicación y poder introducirlo al sistema.
Prevención. Qué podemos hacer para prevenir el estado de falta de disponibilidad.
• Quitar de servicio. Quitamos el componente y no vamos a estar continuamente reparándolo.
• Transacciones. Controlar el bloque de cambios que vamos a hacer como para poder deshacerlos todos juntos o impactarlos todos juntos de esa forma prevenimos que cambios pequeños dejen nuestra aplicación en estado inconsistente.
• Monitoreo de procesos. Se refiere a revisar los procesos de ejecución de una máquina virtual o de un servidor y poder eliminar o terminar uno de esos procesos y volver a iniciarlos cuándo detectamos que hay una falla, pueden ser automáticos y nos ayudan a que nuestro sistema siga estando disponible por más que un proceso se esté comportando de forma anormal.

3.- Recuperación: Reintroducción. Cómo hacer para que varios componentes replicados puede ser reintroducidos a producción cuando se detecta que ya están funcionando correctamente.
a. Modo Sombra. Un componente comienza a fallar entonces lo quitamos de nuestro cluster productivo, pero seguimos evaluando por detrás si se comporta correctamente o no. Ya sea con un operador o el mismo sistema.
b. Sincronización de estado. El estado del componente pasa a ser inválido, entonces lo quitamos del cluster productivo y sincronizamos el estado de los que sí se comportan correctamente con el componente que no se estaba comportando correctamente.
c. Punto de control / Retroceso. Nos permite marcar estados de nuestra aplicación que sabemos que son consistentes. Entonces cuándo detectamos una falla, podemos quitar de servicio ese componente y volverlo atrás al estado consistente y luego reproducir con un log o registro las acciones que fueron sucediendo después de ese estado, de esa forma podemos recuperar el estado consistente de la aplicación y poder introducirlo al sistema.

4.- Prevención. Qué podemos hacer para prevenir el estado de falta de disponibilidad.
a) Quitar de servicio. Quitamos el componente y no vamos a estar continuamente reparándolo.
b) Transacciones. Controlar el bloque de cambios que vamos a hacer como para poder deshacerlos todos juntos o impactarlos todos juntos de esa forma prevenimos que cambios pequeños dejen nuestra aplicación en estado inconsistente.
c) Monitoreo de procesos. Se refiere a revisar los procesos de ejecución de una máquina virtual o de un servidor y poder eliminar o terminar uno de esos procesos y volver a iniciarlos cuándo detectamos que hay una falla, pueden ser automáticos y nos ayudan a que nuestro sistema siga estando disponible por más que un proceso se esté comportando de forma anormal.

Tipos de tácticas en disponibilidad

  • Recuperacion: Reintroducción
    • Modo sombra
    • Sincronización de estado
    • Punto de control / Retroceso
  • Prevención
    • Quitar de servicio
    • Transacciones
    • Monitoreo de procesos
  • Re-introducción: Dado una falla el sistema se concentra en como volver a restablecer el sistema.Tácticas:
  1. Modo Sombras
  2. Sincronización de Estado
  3. Punto de control / retroceso
  • Prevención: Que se puede hacer para previnir la falta de disponibilidad. Tácticas:
  1. Quitar de Servicio
  2. Transacciones
  3. Monitoreo de Procesos

los títulos de estos últimos 3 vídeos podrían mejorar

  • Disponibilidad Tácticas parte 1 y parte 2

COMPLETO:
Escenario de disponibilidad. En este caso el estímulo es la falla, algo pasó que compromete la disponibilidad. vamos a ver las diferentes tácticas que podemos usar para trabajar con este posible escenario.
• Detección, en este caso contamos con varias tácticas: la primera es la de
o ping / eco. que se trata de como un componente envía un mensaje genérico a otro componente para saber si el otro componente esta disponible o no.
o Latido, esta táctica es similar pero en vez de que haya interacción entre dos componentes, cada uno de estos envían una señal propia que indica que continua activo.
o Excepciones, Un método para reconocer fallas es encontrar una excepción, que se produce cuando se reconoce una de las clases de fallas. El manejador de excepciones generalmente se ejecuta en el mismo proceso que introdujo la excepción.
• Recuperación, como podemos estar listos para que si algo falla podamos recuperar rápidamente el sistema.
o Votación, El algoritmo de votación puede ser “reglas de mayoría” o “componente preferido” o algún otro algoritmo. Este método se usa para corregir el funcionamiento defectuoso de algoritmos o fallas de un procesador y se usa a menudo en sistemas de control.
o Redundancia activa, Cuando se produce una falla, el tiempo de inactividad de los sistemas que utilizan esta táctica suele ser de milisegundos, ya que la copia de seguridad es actual y el único momento de recuperación es el tiempo de conmutación. La redundancia activa a menudo se utiliza en una configuración cliente / servidor, como los sistemas de administración de bases de datos, donde las respuestas rápidas son necesarias incluso cuando ocurre una falla.
o Redundancia pasiva, Un componente (el primario) responde a los eventos e informa a los otros componentes (los recursos) de las actualizaciones de estado que deben realizar. Cuando ocurre una falla, el sistema primero debe asegurarse de que el estado de la copia de seguridad sea lo suficientemente reciente antes de reanudar los servicios.
o Repuesto, Una plataforma de computación de reserva en espera está configurada para reemplazar muchos componentes diferentes que fallaron. Debe reiniciarse a la configuración de software apropiada y debe tener su estado inicializado cuando ocurre una falla.
• Reintroducción, Hay tácticas de reparación que se basan en la reintroducción de componentes. Cuando un componente redundante falla, puede reintroducirse después de haber sido corregido. Tales tácticas son el funcionamiento en la sombra, la resincronización del estado y la reversión.
o Modo sombra. Un componente previamente fallido puede ejecutarse en “modo sombra” durante un corto período de tiempo para asegurarse de que imita el comportamiento de los componentes en funcionamiento antes de restaurarlo al servicio.
o Resincronización del estado. Las tácticas de redundancia pasiva y activa requieren que el componente que se está restaurando tenga su estado actualizado antes de su regreso al servicio.
o Punto de control / retroceso. Un punto de control es una grabación de un estado consistente creado periódicamente o en respuesta a eventos específicos.
• Prevención, Las siguientes son algunas tácticas de prevención de fallas.
o Remoción del servicio. Esta táctica elimina un componente del sistema de la operación para someterse a algunas actividades para evitar fallas anticipadas. Un ejemplo es reiniciar un componente para evitar que las pérdidas de memoria causen una falla.
o Transacciones. Una transacción es la agrupación de varios pasos secuenciales, de modo que todo el paquete se puede deshacer a la vez. Las transacciones se utilizan para evitar que cualquier dato se vea afectado si falla un paso de un proceso y también para evitar colisiones entre varios subprocesos simultáneos que acceden a los mismos datos.
o Monitor de proceso. Una vez que se ha detectado un error en un proceso, un proceso de supervisión puede eliminar el proceso no productivo y crear una nueva instancia del mismo, inicializado en un estado apropiado como en la táctica de repuesto.

Disponibilidad

En este caso el estimulo es la falla, algo pasó que compromete la disponibilidad. vamos a ver las diferentes tácticas que podemos usar para trabajar con este posible escenario.

  • Deteccion

    Detectar si perdimos disponibilidad o si hay alguna actividad que está sucediendo en nuestro sistema que está comprometiendo la disponibilidad.

    1. Ping / eco: que se trata de como un componente envía un mensaje genérico a otro componente para saber si el otro componente esta disponible o no; Esta tactica nos permite entender cuando un componente es cliente de otro.
    2. Latido: esta táctica es similar pero en vez de que haya interacción entre dos componentes, cada uno de estos envían una señal propia que indica que continua activo; cuando un componente no notifica en un limite de tiempo sabemos que perdio disponibilidad.
    3. Excepciones: el manejo y registo de excepciones nos ayuda a resolver preguntas relacionadas con cuando y por que se vio afectada la disponibilidad.
  • Recuperacion: Preparar / Reparar

    Como podemos estar listos para que si algo falla podamos recuperar rápidamente el sistema.

    1. Votación: sucede cuando tenemos multiples componentes con la misma funcionalidad sin embargo no podemos confiar en que todos responda lo mismo; evaluamos por medio de un componente central si todos tienen la misma respuesta de esta manera si uno falla podemos sacarlo del cluster de componentes y reemplazarlo por uno nuevo.
    2. Redundancia activa: No evalua el estado del componente sino que trata de garantizar que todos los mensajes de entrada lleguen a cada componente del cluster. Cuando un componente falla lo podemos cambiar y nuevamente estar disponible en milisegundos.
    3. Redundacia pasiva: La comunicacion solo se hace con un componente del cluster y es el responsable de sincronizar a los otros componentes que escuchan pasivamente. Ej: en las bases de datos donde tenemos una base de datos lider y una seguidora. escribe y lee mientras que la base de datos seguidora recibe los cambios de estado.
    4. Repuesto: cuando algo falle podemos reemplazar una parte o todo el sistema por un backup que tenemos preparado, no esta activo debe estar puesto en linea, mientras va estar como receptor de las actualizaciones y necesita una inicializacion. Es la mas radical de todas.
  • Recuperacion: Reintroduccion

    Cómo podemos hacer dado una falla de disponibilidad para reintroducir el sistema y que vuelva a estar disponible, vemos como varios componentes replicados pueden ser reintroducidos a producción a medida que se comprueba su funcionamiento.

    1. Modo sombra: un componente falla en el cluster de produccion pero continuamos monitoriando el comportamiento si es correcto o no; ya sea que el programador lo corriga o cambie. podemos volver a introducirlo y vuelva a ser productivo.
    2. Sincronizacion de estado: el funcionamiento es normal pero el estado pasa a ser invalido, lo retiramos del cluster y sincronizamos el estado de los que si se comportan correctamente.
    3. Punto de control / retroceso: nos permite marcar momentos de nuestra aplicacion donde sabemos que es consistente, cuando detectamos una falla podemos regresar aun estado anterior y revisar (debug, log) las acciones que sucedieron despues de ese estado. de esta manera podemos recuperar el estado estable y reintroducirlo al sistema.
  • Prevención

    Qué podemos hacer para prevenir el estado de falta de disponibilidad.

  1. Quitar de servicio: tenemos la capacidad de quitar del servicio a un componente, ese componente va a estar fuera y prevenimos que genero otro problema. Ej: Sabemos que la aplicacion cada vez esta consumiendo memoria de maner
  2. Transacciones: el ejemplo mas claro es el de las bases de datos. Cualquier tipo de traccion internamente controla un bloque que impacten o dehaga cambios
  3. Monitorie de procesos: revisar los precesos en ejecucion de una maquina virtual o un servidor y terminar un proceso dado una falla y volver a iniciarlo cuando detectamos que hay una falla, los monitoreos pueden ser automaticos.