Patrones de diseño en la nube que admiten la optimización de costos

Al diseñar arquitecturas de cargas de trabajo, debe usar patrones del sector que aborden desafíos comunes. Los patrones pueden ayudarle a compensar intencionadamente las cargas de trabajo y optimizar el resultado deseado. También pueden ayudar a mitigar los riesgos que se originan en problemas específicos, lo que puede afectar a la confiabilidad, la seguridad, el rendimiento y las operaciones. Si no se mitiga, los riesgos aumentarán eventualmente los costos. Estos patrones están respaldados por la experiencia real, están diseñados para modelos operativos y de escala en la nube, y son inherentemente independientes del proveedor. El uso de patrones conocidos como una manera de estandarizar el diseño de la carga de trabajo es un componente de excelencia operativa.

Muchos patrones de diseño admiten directamente uno o varios pilares de arquitectura. Patrones de diseño que admiten el pilar optimización de costos se alinean con la implementación de modelos de facturación favorables, lo que reduce el sobreaprovisionamiento, cambia las dimensiones de escalado y maximiza el valor durante las migraciones.

Patrones de diseño para la optimización de costos

En la tabla siguiente se resumen los patrones de diseño en la nube que admiten los objetivos de optimización de costos.

Patrón Resumen
Comprobación de notificaciones Separa los datos del flujo de mensajería, lo que proporciona una manera de recuperar por separado los datos relacionados con un mensaje. Los sistemas de mensajería suelen imponer límites en el tamaño del mensaje y un aumento de los límites de tamaño suele ser una característica premium. Reducir el tamaño de los cuerpos de mensajes puede permitirle usar una solución de mensajería más barata.
Competing Consumers Aplica el procesamiento distribuido y simultáneo para controlar eficazmente los elementos de una cola. Este patrón puede ayudarle a optimizar los costos habilitando el escalado basado en la profundidad de la cola, hasta cero cuando la cola está vacía. También puede optimizar los costos al permitirle limitar el número máximo de instancias de consumidor simultáneas.
Compute Resource Consolidation Optimiza y consolida los recursos de proceso aumentando la densidad. Este patrón combina varias aplicaciones o componentes de una carga de trabajo en una infraestructura compartida. Al hacerlo, se maximiza el uso de recursos informáticos evitando la capacidad aprovisionada sin usar mediante la agregación de componentes o incluso cargas de trabajo completas en una infraestructura agrupada. Los orquestadores de contenedores son un ejemplo común.
Gateway Offloading Descarga el procesamiento de solicitudes en un dispositivo de puerta de enlace antes y después de reenviar la solicitud a un nodo back-end. Agregar una puerta de enlace de descarga en el proceso de solicitud le permite redirigir los costos de los recursos que se gastarían por nodo en la implementación de la puerta de enlace. Los costos del modelo de procesamiento centralizado suelen ser inferiores a los del modelo distribuido.
Puente de mensajería Proporciona un intermediario para habilitar la comunicación entre sistemas de mensajería que, de lo contrario, no son compatibles debido al protocolo o formato. Este intermediario puede aumentar la durabilidad de su sistema existente, a la vez que permite la interoperabilidad con sistemas que usan una tecnología de mensajería o eventos diferente.
Publicador y suscriptor Desacopla los componentes de una arquitectura reemplazando la comunicación directa de cliente a servicio o cliente a servicios por comunicación mediante un agente de mensajes intermedio o un bus de eventos. Este diseño puede habilitar un enfoque controlado por eventos en la arquitectura, que se acopla bien con la facturación basada en el consumo para evitar el sobreaprovisionamiento.
Queue-Based Load Leveling Controla el nivel de las solicitudes o tareas entrantes almacenando en búfer en una cola y permitiendo que el procesador de cola los controle a un ritmo controlado. Dado que el procesamiento de carga se desacopla de la solicitud o la ingesta de tareas, puede usar este enfoque para reducir la necesidad de sobreaprovisionar recursos para controlar la carga máxima.
Sharding Dirige la carga a un destino lógico específico para controlar la solicitud específica, lo que permite la colocación para la optimización. Un sistema que implementa particiones a menudo se beneficia del uso de varias instancias de recursos de proceso o almacenamiento menos costosos en lugar de un único recurso más caro. En muchos casos, esta configuración puede ahorrarle dinero.
Static Content Hosting Optimiza la entrega de contenido estático a los clientes de carga de trabajo mediante una plataforma de hospedaje diseñada para ese fin. Los hosts de aplicaciones dinámicas suelen ser más caros que los hosts estáticos, ya que los hosts dinámicos pueden ejecutar la lógica de negocios codificada. El uso de una plataforma de aplicaciones para entregar contenido estático no es rentable.
Fig Strangler Proporciona un enfoque para reemplazar sistemáticamente los componentes de un sistema en ejecución por nuevos componentes, a menudo durante una migración o modernización del sistema. El objetivo de este enfoque es maximizar el uso de las inversiones existentes en el sistema que se está ejecutando actualmente mientras se moderniza incrementalmente. Le permite realizar reemplazos de alto ROI antes de los reemplazos de bajo ROI.
Limitaciones Impone límites en la velocidad o el rendimiento de las solicitudes entrantes a un recurso o componente. Los límites pueden informar al modelado de costos e incluso pueden asociarse directamente al modelo de negocio de la aplicación. También colocan límites superiores claros en el uso, que se pueden factorizar en el ajuste de tamaño de los recursos.
Valet Key Concede acceso restringido a la seguridad a un recurso sin usar un recurso intermediario para proxy el acceso. Este diseño descarga el procesamiento como una relación exclusiva entre el cliente y el recurso sin agregar un componente para controlar directamente todas las solicitudes de cliente. La ventaja es más dramática cuando las solicitudes de cliente son frecuentes o lo suficientemente grandes como para requerir recursos de proxy significativos.

Pasos siguientes

Revise los patrones de diseño en la nube que admiten los otros pilares de Azure Well-Architected Framework: