Ejercicio: Creación de una estructura de estado por capas

Completado

En este ejercicio, la tarea consiste en diseñar un modelo de estado por capas para una aplicación de ejemplo. Empiece por revisar la arquitectura de la aplicación, los servicios clave de Azure que usa la aplicación y cómo contribuyen los servicios de Azure a la experiencia general del usuario.

Aplicación de ejemplo

El ejemplo de este ejercicio es una aplicación web usada por Contoso Shoes. La aplicación permite a los empleados examinar un catálogo de productos, actualizar elementos individuales en el catálogo e interactuar con otros usuarios mediante la creación de comentarios en la aplicación.

El equipo de operaciones de Contoso Shoes ha identificado dos requisitos empresariales críticos para esta aplicación. Los empleados deben ser capaces de:

  • Interactuar con el catálogo mostrando listas de elementos y explorando elementos.
  • Crear comentarios para elementos individuales para que otros usuarios puedan verlos.

El modelo de estado debe incluir al menos esas dos operaciones críticas.

Architecture

Diagrama que muestra la arquitectura de la aplicación Contoso Shoes.

Componentes

  • Aplicación web de front-end: la interfaz de usuario de esta carga de trabajo, que se ejecuta en Azure Web Apps.

    • Lee de: API de catálogo, Azure Blob Storage
    • Escribe en: API de catálogo
  • API de catálogo: la capa de API que usa la aplicación web de front-end para las operaciones de datos en elementos de catálogo y comentarios. No escribe en la base de datos. En su lugar, se envía un mensaje a un centro de eventos para que se procese de forma asincrónica. Este componente se hospeda en Azure Functions.

    • Lee de: Azure Cosmos DB
    • Escribe en: Azure Event Hubs
  • Procesador en segundo plano: componente que procesa asincrónicamente las actualizaciones de la base de datos. El procesador no tiene un punto de conexión público. Este componente se hospeda en Azure Functions.

    • Lee de: Azure Event Hubs
    • Escribe en: Azure Cosmos DB
  • Agente de mensajes: el procesador de mensajería usa Azure Event Hubs para pasar mensajes entre la API de catálogo y el procesador en segundo plano.

  • Base de datos: los datos se conservan en Azure Cosmos DB. La API de catálogo lee directamente de la base de datos. El procesador en segundo plano controla las escrituras. Las imágenes se almacenan en Azure Blob Storage.

  • Secretos: los componentes de la aplicación de esta carga de trabajo usan secretos para autorizar el acceso. Los secretos se almacenan en Azure Key Vault. La API de catálogo y el procesador en segundo plano usan cadenas de conexión para acceder a la base de datos y Azure Event Hubs. La aplicación web de front-end usa una clave de API para llamar a la API de catálogo.

  • Supervisión: los componentes de la aplicación envían todas las medidas de datos a Application Insights, respaldadas por un área de trabajo de Log Analytics. La misma área de trabajo se usa para recopilar otros registros y métricas para esta carga de trabajo.

División de la arquitectura en capas

Como se describe en la unidad anterior, un modelo de estado debe ser una estructura por capas. El proceso de modelado de estado es un ejercicio arquitectónico para definir todos los flujos de usuario, asignar dependencias entre componentes funcionales y lógicos, y también dependencias entre recursos de Azure.

La identificación de flujos de usuario y la creación del modelo de mantenimiento es un ejercicio conceptual en esta fase. Use lápiz y papel o un documento en blanco para anotar las capas individuales y para dibujar la estructura.

En este ejercicio, nuestro modelo de estado tiene tres capas: flujos de usuario, componentes de aplicación y recursos de Azure.

Flujos de usuario

A partir de la parte superior de la arquitectura, piense en los posibles flujos de usuario en función de la funcionalidad esperada de la aplicación. Intente abstraer los detalles técnicos y los servicios de Azure y evalúe los flujos desde la perspectiva de un usuario.

  • ¿Qué procesos son críticos?
  • ¿Cómo usan los empleados la aplicación para lograr objetivos empresariales?

En función de los requisitos identificados por el equipo de operaciones, debe tener al menos dos flujos de usuario en la capa superior: Enumerar elementos de catálogo y Agregar comentario.

Si puede pensar más, inclúyalos en el modelo de estado.

Componentes de aplicación

Vaya a la capa que está debajo y evalúe los componentes de la aplicación. Empiece por formular preguntas, como:

  • "¿Qué parte de mi aplicación hace que este flujo funcione?".
  • "¿Qué microservicios o componentes participan en este flujo?".
  • "¿Seguirá funcionando este flujo si se produce un error en esta parte?".

El objetivo es identificar los componentes de la aplicación a nivel técnico que contribuyen a cada flujo de usuario. Estos componentes pueden ser API, trabajos en segundo plano, microservicios, etc.

Esta carga de trabajo tiene al menos tres componentes de aplicación que participan en los dos flujos de usuario identificados: Front-end, API de catálogo y un procesador en segundo plano.

Recursos de Azure

La capa inferior contiene los recursos de Azure usados por los componentes de aplicación individuales. En este ejercicio, los componentes y recursos se describen en la sección Componentes.

Nota

Un escenario real probablemente tendrá más servicios y tendrá relaciones más complicadas entre ellos. Una clave para crear un modelo de estado correcto es identificar qué partes son críticas y cómo cada componente contribuye al estado general del sistema.

Dibujo de la estructura del modelo de estado final

Disponga la información que ha recopilado en una representación gráfica de la estructura del modelo de estado. Debe tener un aspecto similar a este diagrama:

Diagrama que muestra la arquitectura de este modelo de estado en capas.

De arriba abajo, el modelo de estado de la aplicación web tiene estas capas:

Flujos de usuario
  • Enumerar elementos del catálogo. Depende de la aplicación web de front-end y la API de catálogo.
  • Agregar comentario. Depende de la aplicación web de front-end, la API de catálogo y el procesador en segundo plano.
Componentes de aplicación
  • Aplicación web de front-end. Depende de Blob Storage y de la API de catálogo.
  • API de catálogo. Depende de Azure Cosmos DB, Key Vault y Event Hubs.
  • Procesador en segundo plano. Depende de Azure Cosmos DB, Key Vault y Event Hubs.
Recursos de Azure
  • Blob Storage
  • Azure Cosmos DB
  • Key Vault
  • Event Hubs