Patrones de diseño en la nube que admiten la optimización de costos
Al diseñar arquitecturas de carga 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 finalmente 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. Los patrones de diseño que admiten el pilar optimización de costos se alinean con la implementación de modelos de facturación favorables, reduciendo el sobreaprovisionamiento, cambiando las dimensiones de escalado y maximizando 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 al tamaño de los mensajes y el aumento de los límites de tamaño suele ser una característica adicional. Reducir el tamaño de los cuerpos de los mensajes puede permitirle utilizar 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 al permitir un 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 consumo 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 al 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 colas los controle a un ritmo controlado. Dado que el procesamiento de la carga está desacoplado de la recepción de solicitudes o tareas, puede utilizar este enfoque para reducir la necesidad de sobreaprovisionar recursos para hacer frente a los picos de carga. |
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 suele beneficiarse 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 ahorrar 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 propósito. 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. 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 estar directamente vinculados al modelo de negocio de la aplicación. También establecen límites máximos claros de utilización, que pueden tenerse en cuenta en el dimensionamiento 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 proxy significativos o el proxy no agrega valor como parte de la solicitud. |
Pasos siguientes
Revise los patrones de diseño de la nube que admiten los otros pilares de Azure Well-Architected Framework: