La fecha límite de entrega del proyecto es el 19 de marzo de 2022 a las 11:59 PM Hora Colombia (GMT-5).
Siga las instrucciones a continuación para crear los entregables que serán calificados en el proceso de evaluación.
El marketplace ha decidido expandirse a múltiples regiones dado el éxito que han tenido sus servicios en la región de latinoamérica. Para lograrlo, ha establecido un plan de expansión que incluye la importación de productos fabricados en Europa hacia Latino América.
Luego de analizar el potencial de mercado, se ha decidido ofrecer el servicio de importación de muebles fabricados bajo demanda en Europa. Para lograrlo, se abrirá una sección especial en la tienda que se dedicará exclusivamente a productos importados y donde los usuarios podrán hacer encargos de sus productos a estos comercios.
Los planes de expansión de la compañía incluyen abrir este nuevo mercado en dos pasos.
En esta entrega, su objetivo será diseñar la arquitectura de la aplicación que permita sostener el crecimiento de la compañía, lograr los objetivos de negocio y mantener la calidad a un término proyectado de 3 años.
Para ello usted se enfocará en unos requerimientos y escenarios de calidad en específico, en donde determinará cuál es la estrategia de datos correcta para cumplir con los objetivos de la compañía.
El equipo de arquitectos y gerentes de producto recabaron los siguientes datos que deben ser supuestos como datos duros en el diseño de la solución.
La siguiente tabla muestra el resultado de experimentos que se han hecho para medir la calidad de los canales de comunicación entre los centros de datos del proveedor de nube que utiliza la aplicación:
Origen | Destino | Throughput min | Throughput max | Throughput avg |
Latam | Europe | 1.4 TB/s | 1.9 TB/s | 1.7 TB/s |
Europe | Latam | 1.3 TB/s | 2.1 TB/s | 1.6 TB/s |
Origen | Destino | Latencia min | Latencia max | Latencia avg |
Latam | Europe | 132 ms | 2867 ms | 1183 ms |
Europe | Latam | 111 ms | 3012 ms | 1452 ms |
El equipo de ingeniería ha recolectado métricas de los tiempos de respuesta del sistema. Para evitar errores debidos a red, los tiempos se miden directamente en el gateway y corresponde a los tiempos de respuesta desde que entra la solicitud al gateway hasta que esta es completamente respondida.
Centro de datos | Response time min | Response time max | Response time avg |
Latam | 32 ms | 779 ms | 128 ms |
Europe | 25 ms | 638 ms | 112 ms |
Los requerimientos que deben tenerse en cuenta para el diseño de la aplicación son los siguientes:
El usuario vendedor debe poder crear productos en la región en la que se encuentre registrado. Los productos deben crearse y en un tiempo no mayor a 10 minutos estar disponibles en los distintos portales para ser consultados por los usuarios compradores.
Historia | Como vendedor quiero crear productos para que otros usuarios puedan comprarlos. |
Criterios de aceptación |
|
Fuente | Vendedor |
Origen | En cualquier región |
Estímulo | Crear un producto con todos sus atributos |
Artefacto | El sistema |
Respuesta | Se almacena el producto con toda su información, incluido las imágenes. |
Medida de la respuesta | En no más de 800 ms más el tiempo de carga de las imágenes (el cual dependerá del tamaño de las mismas). |
Ambiente | En operación normal del sistema |
---
Fuente | Vendedor |
Origen | En cualquier región |
Estímulo | Crear un producto con todos sus atributos |
Artefacto | El sistema |
Respuesta | El producto con toda su información está disponible para consulta de otras regiones. |
Medida de la respuesta | En no más de 10 minutos posterior a su creación |
Ambiente | En operación normal del sistema |
Los usuarios compradores deben estar en capacidad de buscar productos locales e importados (en el caso de los usuarios de latam). La búsqueda de productos importados se hace a través de una sección especial dentro del portal. Actualmente se cuenta con 50 millones de productos publicados en Latam y se espera crecer a 150 millones de productos en los próximos 3 años.
Historia | Como usuario visitante de la aplicación quiero realizar búsquedas complejas por palabras en el catálogo de productos (importados y no importados), para seleccionar el producto de mi interés. |
Criterios de aceptación |
|
Fuente | Usuario visitante |
Origen | Latam |
Estímulo | Filtrar productos importados por una palabra o conjunto de palabras. |
Artefacto | El sistema |
Respuesta | Se responden los productos importados que en su título, descripción o categorías, contienen las palabras de búsqueda. |
Medida de la respuesta | En no más de 300 ms |
Ambiente | En operación normal del sistema |
Fuente | Usuario visitante |
Origen | En cualquier región |
Estímulo | Filtrar productos locales por una palabra o conjunto de palabras. |
Artefacto | El sistema |
Respuesta | Se responden los productos locales que en su título, descripción o categorías, contienen las palabras de búsqueda. |
Medida de la respuesta | En no más de 300 ms (actualmente el servicio ya cumple con estos tiempos solo en latam) |
Ambiente | En operación normal del sistema |
Los usuarios de la plataforma en todas las regiones deben poder navegar haciendo uso de sus sesiones de usuario. El tráfico inter regiones no debe estar habilitado. En este sentido, un usuario de una región solo podrá navegar haciendo uso de su sesión en el portal de su región, el cual se accede a través del dominio correspondiente.
Historia | Como sistema quiero validar la sesión de un usuario en cada solicitud externa para asegurarme que solo usuarios válidos pueden acceder. |
Criterios de aceptación |
|
Fuente | Clientes externos |
Origen | En cualquier región |
Estímulo | Solicitud http externa a un servicio del sistema. |
Artefacto | El sistema |
Respuesta | Se consulta si la sesión existe |
Medida de la respuesta | En no más de 50 ms en incrementos de 100 mil solicitudes por minuto durante 1 hora. |
Ambiente | En operación normal del sistema |
La compañía cuenta con un sistema de advertising en el cual se incluyen la difusión de campañas publicitarias con productos en promoción para fechas especiales y eventos importantes. Las campañas cuentan con una lista de productos en promoción, los cuales pueden ser accedidos directamente en la plataforma, o a través de vínculos que son enviados con el material publicitario.
Las campañas publicitarias tienen resultados que dependen del evento, la fecha y el tipo de campaña. Sin embargo, el éxito suele estar entre las decenas de miles, hasta las centenas de miles de solicitudes de la lista de productos en campaña durante las horas siguientes al lanzamiento de las mismas.
Historia | Como usuario quiero consultar productos asociados a una campaña publicitaria para conocer los detalles de los productos en oferta. |
Criterios de aceptación |
|
Fuente | Usuarios visitantes |
Origen | En cualquier región |
Estímulo | Consulta de los productos de una campaña |
Artefacto | El sistema |
Respuesta | Se responden los productos asociados a una campaña |
Medida de la respuesta | En no más de 50ms |
Ambiente | En operación normal del sistema |
La compañía ofrecerá un sistema de reportes para el vendedor, por el cual podrá conocer el detalle de su histórico de ventas. El usuario puede consultar en una sola vista la información de pedidos que ha tenido en la plataforma, cruzado con la información de los productos, los pagos, los usuarios que realizan los pagos y los orígenes de las compras (europa o latam).
Nota: para este punto considere que cada entidad (producto, pedido, pago, usuario, origen de compra o ubicación), se debe almacenar en un medio de almacenamiento diferente, siguiendo los principios vistos en el curso, y es posible relacionarlos. El detalle de los campos de cada entidad no es relevante para este punto.
Historia | Como vendedor quiero consultar el reporte de ventas de mis productos del último mes para llevar un control del estado de mis pedidos y los pagos relacionados. |
Criterios de aceptación |
|
Fuente | Vendedor |
Origen | En cualquier región |
Estímulo | Consulta el reporte de ventas más reciente que incluye el mes en curso. |
Artefacto | El sistema |
Respuesta | Se responden 50 registros del histórico de ventas con toda su información relacionada. |
Medida de la respuesta | En no más de 300 ms |
Ambiente | En operación normal del sistema |
Para el cumplimiento de estos requerimientos, tenga en cuenta las siguientes consideraciones.
Dado que ahora la aplicación va a tener clientes consultando y escribiendo información en un área geográfica más extensa, se requiere plantear un diseño en el que se tengan en cuenta esta distribución para ofrecerle el mejor servicio a los usuarios. En particular, su trabajo para esta entrega consistirá en plantear los cambios necesarios en los servicios y componentes utilizados en las etapas anteriores del proyecto persiguiendo los objetivos del entregable.
Como parte de la solución, debe realizar un documento de arquitectura y diseño en el que haga un levantamiento de la información del problema, proponga una solución y explique los racionales detrás de las decisiones de diseño tomadas.
Por medio de la vista funcional describa los componentes de ejecución y de almacenamiento necesarios para lograr cada uno de los requerimientos descritos anteriormente. En esta vista usted debe entregar:
Requerimiento | |
Nombre del componente | |
Código/Id del componente | Debe aparecer en el diagrama |
Tipo | Tipo de componente: base de datos, servicio, almacenamiento, función, etc |
Tecnología | El servicio del proveedor que se utiliza para desplegar este componente |
Responsabilidad | Responsabilidad del componente dentro del sistema/aplicación |
Requerimiento | |
Componentes | Nombre de los componentes involucrados en el patrón |
Patrón utilizado | Nombre del patrón utilizado |
Justificación | Justificación de por qué este patrón puede ser utilizado y para qué se debe usar |
AC favorecidos | Lista de atributos de calidad que se favorecen al utilizar este patrón en este contexto |
AC desfavorecidos | Lista de atributos de calidad que se desfavorecen al utilizar este patrón en este contexto |
Por medio de la vista de información describa los mecanismos de almacenamiento y su comportamiento para cumplir con cada requerimiento. En esta vista usted debe entregar:
Requerimiento | |
Nombre del componente | |
Código/Id del componente | Debe aparecer en el diagrama |
Razón de su uso | Beneficios y descripción de su uso para cumplir con el requerimiento deseado. |
Consideraciones de diseño a tener en cuenta | Consideraciones de posibles tradeoffs que se tendrían al hacer uso de este mecanismo de almacenamiento. |
Por medio de la vista de despliegue describa cómo los componentes de la solución se desplegarán en ambiente productivo. En esta vista usted debe entregar:
Código/Id del componente | Debe aparecer en el diagrama |
Servicio del proveedor de nube | Nombre del servicio |
Documentación del servicio | Enlace del servicio del proveedor de nube |
Razón de uso del servicio | Beneficios y descripción de su uso para cumplir con el requerimiento deseado. |
Los siguientes criterios se tendrán en cuenta en el proceso de evaluación y validación de este entregable:
Esta sección contiene la información de los cambios que se han realizado a este enunciado desde su publicación.
Fecha | Cambio |
24/01/2022 | Publicación definitiva |