Creación de la infraestructura de Azure Storage

Completado

La comunicación directa entre los componentes de una aplicación distribuida puede ser problemática, ya que se podría interrumpir cuando el ancho de banda de red sea bajo o cuando la demanda sea alta.

Este tipo de interrupción está ocurriendo en nuestro sistema: el portal web llama a un servicio web, que funciona muy bien si el servicio responde de forma oportuna, pero el tráfico elevado provoca problemas. Por eso, tenemos previsto usar una cola para eliminar el vínculo directo entre las aplicaciones de front-end y el servicio web de nivel intermedio.

¿Qué es Azure Queue Storage?

Azure Queue Storage es un servicio de Azure que implementa colas basadas en la nube. Cada cola mantiene una lista de mensajes. Los componentes de la aplicación tienen acceso a una cola mediante una API REST o una biblioteca de cliente proporcionada por Azure. Normalmente, tiene uno o varios componentes de remitente y uno o varios componentes de receptor. Los componentes de remitente agregan mensajes a la cola. Los componentes de receptor recuperan mensajes en la parte delantera de la cola para procesarlos. La ilustración siguiente muestra varias aplicaciones de remitente agregando mensajes a Azure Queue y una aplicación de receptor recuperando los mensajes.

An illustration showing a high-level architecture of Azure Queue storage.

Los precios se basan en el tamaño de la cola y el número de operaciones. Las colas de mensajes más grandes cuestan más que las colas más pequeñas. También se incurre en gastos para cada operación, como la adición de un mensaje y la eliminación de un mensaje. Para obtener información detallada acerca de los precios, consulte la página Precios de Azure Queue Storage.

¿Por qué conviene usar colas?

Una cola aumenta la resistencia mediante el almacenamiento temporal de mensajes de espera. En ocasiones de demanda baja o normal, el tamaño de la cola permanece reducido, ya que el componente de destino quita los mensajes de la cola con mayor rapidez que con la que se agregan. En los momentos de gran demanda, la cola puede aumentar de tamaño, pero los mensajes no se pierden. El componente de destino puede retomar el ritmo y vaciar la cola cuando la demanda vuelva a los niveles normales.

Una sola cola puede tener un tamaño de hasta 500 TiB, por lo que puede almacenar millones de mensajes. El rendimiento de destino de una sola cola es de 2000 mensajes por segundo, lo que permite controlar escenarios de gran volumen.

Las colas permiten que la aplicación se escale de forma automática e inmediata cuando cambie la demanda. Gracias a esta característica, resultan útiles para los datos empresariales de gran importancia cuya pérdida supondría un problema. Azure ofrece muchos otros servicios que se escalan automáticamente. Por ejemplo, la característica de escalabilidad automática está disponible en Azure Virtual Machine Scale Sets, servicios en la nube, planes de Azure App Service y entornos de App Service. La escalabilidad automática permite definir reglas que Azure usa para identificar los períodos de gran demanda y agregar capacidad automáticamente sin necesidad de un administrador. El escalado automático responde a la demanda con rapidez, pero no al instante. Por el contrario, Azure Queue Storage controla instantáneamente la alta demanda almacenando los mensajes hasta que estén disponibles los recursos de procesamiento.

¿Qué es un mensaje?

Un mensaje en una cola es una matriz de bytes de hasta 64 KiB. Ningún componente de Azure interpreta en ningún caso el contenido de un mensaje.

Si desea crear un mensaje estructurado, puede dar formato al contenido del mensaje con XML o JSON. El código es responsable de generar e interpretar el formato personalizado. Puede crear un mensaje JSON personalizado similar al ejemplo siguiente:

{
    "Message": {
        "To": "news@contoso.com",
        "From": "writer@contoso.com",
        "Subject": "Support request",
        "Body": "Send me a photographer!"
    }
}

Creación de una cuenta de almacenamiento

Una cola debe formar parte de una cuenta de almacenamiento. Puede crear una cuenta de almacenamiento mediante la CLI de Azure (o PowerShell) o Azure Portal. Azure Portal es más fácil porque es una experiencia guiada y le pide confirmación de toda la información.

La captura de pantalla siguiente muestra la ubicación de la categoría Cuentas de almacenamiento.

Screenshot of the All services pane with the Storage accounts category highlighted.

Hay varias opciones que puede proporcionar al crear la cuenta, la mayoría de las cuales puede usar la selección predeterminada. Estas opciones ya se han descrito en un módulo anterior, pero puede mantener el puntero sobre la sugerencia (i) asociada con cada opción para obtener un recordatorio de lo que hace. Este es un ejemplo de cómo rellenar el panel de Azure Portal.

En la captura de pantalla siguiente se muestra el panel Crear cuenta de almacenamiento y la información necesaria para crear una cuenta de almacenamiento.

Screenshot of the Create storage account pane showing the options to specify when creating a storage account.

Configuración de colas

Cuando se crea una cuenta de almacenamiento que contiene las colas, debe considerar las siguientes opciones:

  • Las colas solo están disponibles como parte de las cuentas de almacenamiento de Azure de uso general (v1 o v2). No puede agregarlas a las cuentas de almacenamiento de blobs.
  • El valor de Nivel de acceso que se muestra para las cuentas de almacenamiento v2 de uso general se aplica solo al almacenamiento de blobs y no afecta a las colas.
  • Debe elegir una ubicación cercana a los componentes de origen o de destino, o (preferiblemente) ambos.
  • Los datos siempre se replican en varios servidores para protegerse contra errores de disco y otros problemas de hardware. Tiene varias estrategias de replicación donde elegir: el almacenamiento con redundancia local (LRS) tiene un bajo coste, pero es vulnerable ante los desastres que afecten a un centro de datos completo, y el almacenamiento con redundancia geográfica (GRS) replica los datos en otros centros de datos de Azure. Elija la estrategia de replicación que satisfaga sus necesidades de redundancia.
  • El nivel de rendimiento determina cómo se almacenan los mensajes: en Estándar se utilizan unidades de disco duro y en Premium se utilizan unidades de estado sólido. Elija Estándar si espera que los picos de demanda sean cortos. Considere la posibilidad de Premium si la longitud de la cola a veces es larga y necesita minimizar el tiempo de acceso a los mensajes.
  • Requiera una transferencia segura si es posible que se pase información confidencial a través de la cola. Esta configuración garantiza que todas las conexiones a la cola se cifran mediante la Capa de sockets seguros (SSL).