Introducción al curso

1

Introducción al curso de Profesional de Arquitectura de Software

Atributos de calidad

2

Definición

3

Atributos: Idoneidad funcional

4

Atributos: Eficiencia de ejecución

5

Atributos: Compatibilidad

6

Atributos: Usabilidad

7

Atributos: Confiabilidad

8

Atributos: Seguridad

9

Atributos: Mantenibilidad

10

Atributos: Portabilidad

11

Tensiones entre atributos

12

Analizando PlatziServicios

Patrones de arquitectura

13

Patrones monolíticos vs distribuidos

14

Patrones: Modelo Vista Controlador

15

Patrones: Capas

16

Patrones: Orientado a eventos / Provisión de eventos.

17

Patrones: Microkernel - Plug-ins

18

Patrones: Comparte-nada

19

Patrones: Microservicios

20

Patrones: CQRS

21

Patrones: Hexagonal - Puertos y adaptadores

22

Patrones: Diseño orientado al dominio

23

Combinando patrones de arquitectura

24

Analizando nuevamente PlatziServicios

Diseño de una arquitectura

25

Pararse en hombros de gigantes

26

Herramientas y partes de un diseño: Tipos de conectores

27

Conectores: Llamado asincrónico / sincrónico. Modelo Cliente servidor.

28

Conectores: Enrutador, difusión

29

Conectores: Pizarra, repositorio, colas, modelo PUBSUB

30

Escenarios y tácticas

31

Escenarios: Disponibilidad, detección, reparación

32

Escenarios: Reintroducción y prevención

33

Escenarios: Mantenibilidad

34

Escenarios: Prevenir efectos dominó y diferir enlace

35

Escenarios: Eficiencia de ejecución

36

Escenarios: Seguridad

37

Escenarios: Capacidad de prueba

38

Escenarios: Usabilidad

39

Validar las decisiones de diseño: Arquitectura en evolución

40

Último análisis a PlatziServicios

Modelado y documentación de arquitectura

41

Cómo comunicar la arquitectura: Vistas y Puntos de vista

42

Documentación vs implementación

43

Conclusiones del curso

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Escenarios: Reintroducción y prevención

32/43
Recursos

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

Aportes 7

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

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

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.