ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Patrones de diseño web


Enviado por   •  8 de Agosto de 2020  •  Tareas  •  4.286 Palabras (18 Páginas)  •  178 Visitas

Página 1 de 18

Programación Web[pic 1][pic 2]

Urzua Osorio Dagoberto

Ingeniería en Sistemas [pic 3]

Computacionales

5.3 Patrones de diseño[pic 4]

Aula 7L2

Horario: 08:00AM – 09:00AM

ENE/JUN

5.3 Patrones de diseño (AUTOR 1)

Estos patrones de diseño son útiles para crear aplicaciones confiables, escalables y seguras en la nube.

Cada patrón describe el problema al que hace frente, las consideraciones sobre su aplicación y un ejemplo basado en Microsoft Azure. La mayoría incluye ejemplos de código o fragmentos de código que muestran cómo implementar el patrón en Azure. Sin embargo, la mayoría de los patrones es importante para todos los sistemas distribuidos, tanto si están hospedados en Azure como en otras plataformas en la nube.

Disponibilidad

La disponibilidad es la proporción de tiempo que el sistema está operativo y en funcionamiento, normalmente se mide como un porcentaje del tiempo de actividad. Los errores del sistema, los problemas de infraestructura, los ataques malintencionados y la carga del sistema pueden afectar a la disponibilidad. Las aplicaciones en la nube suelen proporcionar a los usuarios un Acuerdo de Nivel de Servicio, por lo que las aplicaciones se deben diseñar para maximizar la disponibilidad.

Administración de datos

La administración de datos es el elemento clave de las aplicaciones en la nube e influye en la mayoría de los atributos de calidad. Los datos se hospedan normalmente en distintas ubicaciones y entre varios servidores por motivos tales como el rendimiento, la escalabilidad o la disponibilidad, lo cual puede conllevar varios desafíos. Por ejemplo, se debe mantener la coherencia de los datos y estos deben estar sincronizados entre las diferentes ubicaciones.

Diseño e implementación

Un buen diseño incluye factores como la coherencia en el diseño e implementación de los componentes, el mantenimiento para simplificar la administración y el desarrollo, y la reutilización para permitir que los componentes y subsistemas se puedan utilizar en otras aplicaciones y escenarios. Las decisiones tomadas durante la fase de diseño e implementación tienen un gran impacto en la calidad y el costo total de propiedad de las aplicaciones y servicios hospedados en la nube.

Mensajería

La naturaleza distribuida de las aplicaciones en la nube requiere una infraestructura de mensajería que permite conectar los componentes y servicios, idealmente mediante un acoplamiento flexible, para maximizar la escalabilidad. La mensajería asincrónica se usa ampliamente y ofrece numerosas ventajas, pero también supone desafíos como la ordenación de los mensajes, la administración de mensajes dudosos, la idempotencia, etc.

Administración y supervisión

Las aplicaciones en la nube se ejecutan en un centro de datos remoto en el que no tiene un control completo de la infraestructura ni, en algunos casos, del sistema operativo. Esto puede hacer que la administración y la supervisión sean más complejas que en una implementación local. Las aplicaciones deben exponer la información del entorno de ejecución que los administradores y operadores pueden usar para administrar y supervisar el sistema, así como dar soporte a los cambios en los requisitos empresariales y de personalización sin necesidad de detener o volver a implementar la aplicación.

Rendimiento y escalabilidad

El rendimiento es un indicativo de la capacidad de respuesta de un sistema a la hora de ejecutar cualquier acción dentro de un intervalo de tiempo determinado, mientras que la escalabilidad es la capacidad que tiene un sistema para controlar los aumentos de carga sin que afecte al rendimiento o para aumentar los recursos disponibles en el momento adecuado. Las aplicaciones en la nube normalmente se encuentran con cargas de trabajo variables y picos en la actividad. Predecirlos, especialmente en un escenario multiinquilino, es casi imposible. En lugar de eso, las aplicaciones se deben poder escalar horizontalmente dentro de ciertos límites para satisfacer los picos de demanda, y reducir horizontalmente cuando la demanda disminuya. La escalabilidad no se refiere solo a instancias de proceso, sino también a otros elementos como el almacenamiento de datos, la infraestructura de mensajería, etc.

Resistencia

La resistencia es la capacidad de un sistema para manejar los errores y recuperarse de ellos satisfactoriamente. La naturaleza del hospedaje en la nube, donde las aplicaciones a menudo son multiinquilino, usan servicios de plataforma compartidos, compiten por los recursos y el ancho de banda, y se ejecutan en hardware estándar, implica que hay una mayor probabilidad de que se produzcan errores transitorios o permanentes. La detección de errores y una recuperación de ellos que sea rápida y eficaz, son necesarias para mantener la resistencia.        

Seguridad

La seguridad es la capacidad de un sistema para impedir acciones malintencionadas o involuntarias que se salgan del uso para el que fue diseñado, y para impedir la revelación o pérdida de información. Las aplicaciones en la nube están expuestas en Internet, más allá de los límites locales de confianza y, a menudo, están abiertas al público y pueden dar servicio a usuarios que no son de confianza. Se deben diseñar e implementar las aplicaciones de forma que se las proteja frente a ataques malintencionados, se restrinja el acceso solo a los usuarios autorizados y se proteja la información confidencial.

Referencia:

Microsoft https://docs.microsoft.com/es-es/azure/architecture/patterns/

5.3 Patrones de diseño (AUTOR 2)

Disponibilidad

Disponibilidad está relacionado al tiempo de actividad, con lo cual las aplicaciones en la nube deben diseñarse para poder brindar la mayor disponibilidad posible. Normalmente hay acuerdos de SLA con los proveedores de nube.

Para poder verificar la disponibilidad es necesario diseñar:

Patrones de Monitoreo de Estado/Salud de los puntos de acceso/entrad:

Para este caso es necesario implementar herramientas externas a las aplicaciones que controles la disponibilidad y emitan alertas o permitan responder a la disponibilidad. Normalmente dichas herramientas consultan los puntos de entrada de la aplicación y emiten un resultado de estado o realizan un análisis según el resultado para verificar el estado real.

...

Descargar como (para miembros actualizados)  txt (28.2 Kb)   pdf (355.1 Kb)   docx (859 Kb)  
Leer 17 páginas más »
Disponible sólo en Clubensayos.com