La solución descrita en este artículo puede ayudarle a crear un modelo de sostenibilidad para las aplicaciones hospedadas en Azure. El modelo usa servidores proxy que, con el tiempo, permiten puntuar el impacto del carbono y la eficiencia de una aplicación. La puntuación se conoce como puntuación de Intensidad del carbono de software (SCI). Proporciona una base de referencia para medir los cambios en la producción de carbono de una aplicación.
Arquitectura
Descargue un archivo Visio de esta arquitectura.
Flujo de datos
- Configure los orígenes de datos de la aplicación que usará para calcular su puntuación SCI. Los datos pueden ser las mediciones de emisiones proporcionadas por la hoja de Optimización de carbono de Azure Portal, o pueden ser mediciones de proxy de orígenes o sistemas ajenos a Microsoft.
- Exporte los datos de emisión de carbono a su lago de datos.
- Use controladores de eventos como Azure Functions o Azure Logic Apps para calcular la puntuación de SCI. El resultado es la cantidad de carbono emitida en gramos por unidad, donde unidad hace referencia al factor de escalado de la aplicación, o una aproximación del mismo basado en los valores proxy.
- Use tecnologías como Azure Functions, Logic Apps o Azure Automation y runbooks para desencadenar el modelado de la demanda en la aplicación o para iniciar el modo ecológico predefinido de la aplicación.
- Use Power BI para elaborar informes y visualizar su puntuación y su variación a lo largo del tiempo.
Componentes
- La hoja Optimización de carbono de Azure Portal proporciona mediciones de las emisiones de carbono de las cargas de trabajo de Azure en el nivel de grupo de recursos.
- La API de Cloud for Sustainability proporciona los datos subyacentes para la optimización de carbono. Puede usarla para recuperar información sobre las emisiones de su suscripción.
- Application Insights es una característica de Azure Monitor que proporciona administración del rendimiento de las aplicaciones (APM). Puede ayudarle a obtener información muy valiosa sobre el uso que hacen los usuarios de su aplicación. Puede usar este conocimiento para tomar decisiones basadas en datos sobre la mejora de la eficiencia de su aplicación.
- Azure Blob Storage almacena la información sobre emisiones procedente de la optimización del carbono de Azure, de cálculos personalizados o de otros servidores proxy de emisiones.
- Azure Data Lake es un repositorio centralizado que ingiere y almacena grandes volúmenes de datos en su forma original. A continuación, los datos se pueden procesar y usar como base para diversas necesidades analíticas.
- Azure Logic Apps le permite crear y ejecutar flujos de trabajo automatizados con poco o ningún código. Mediante el diseñador visual y la selección de operaciones creadas previamente, puede crear rápidamente un flujo de trabajo que integre y administre los orígenes de valores proxy, el almacenamiento de datos y los sistemas de cálculo de la eficiencia.
- Azure Functions le permite ejecutar pequeñas unidades de código. Escala automáticamente los recursos en función de la demanda y solo paga por el tiempo de ejecución real. Puede usarlo para realizar cálculos de sostenibilidad y almacenarlos en Blob Storage o en un lago de datos.
- Azure Automation proporciona automatización de procesos mediante runbooks. Puede usar los runbooks para implementar lógica compleja, mediante código PowerShell, que puede influir en su aplicación para mejorar la eficiencia. Este servicio también puede agregar valor empresarial al reducir errores y costes operativos.
- Power BI le permite convertir sus datos en análisis e informes que proporcionan información en tiempo real.
Alternativas
Los servicios de Azure descritos en este artículo se pueden reemplazar por servicios similares. Para aumentar la densidad y la utilización de los recursos existentes, realice los cálculos con el mínimo impacto en su infraestructura. Para ello, use los servicios o herramientas de Azure que ya están desplegados en su entorno:
- Puede sustituir los paneles Power BI por libros de Azure Monitor o servicios de Azure Managed Grafana.
- Puede sustituir Application Insights por cualquier otra herramienta de administración de rendimiento de aplicaciones (APM), como Elasticsearch Application Performance Management (APM) o OpenAPM.
- Los datos en forma de tablas o datos no estructurados se pueden conservar en cualquier sistema de registros, como MySQL o MariaDB, o Azure Cosmos DB y MongoDB.
- Si tiene un espacio de Azure Functions o Logic Apps en ejecución, puede ejecutar el cálculo de forma periódica desde las implementaciones existentes.
- Si los recursos de la aplicación están distribuidos entre varios grupos de recursos, puede usar etiquetas para correlacionar los datos de costes y calcular la cantidad de carbono emitido por la aplicación.
Detalles del escenario
Esta arquitectura está diseñada para recopilar datos de optimización del carbono de Azure y otras fuentes con el fin de ofrecer una visión completa del impacto medioambiental de una aplicación. Los datos se recopilan a partir de la optimización del carbono de Azure. En los entornos que no son de Azure, se usa un proxy para recuperar las métricas de carbono pertinentes. Una vez consolidados los datos, se realizan cálculos SCI para evaluar la huella de carbono global. Los resultados se almacenan en una cuenta de Azure Storage o un lago de datos para la retención a largo plazo, lo que permite el análisis de BI y los informes históricos. Este enfoque garantiza un seguimiento centralizado del impacto del carbono en las diversas infraestructuras y respalda los esfuerzos estratégicos de sostenibilidad.
La información sobre las emisiones de carbono se recopila parcialmente de la hoja Optimización de carbono de Azure Portal y se calcula parcialmente, siempre que sea posible, a través de proxy.
Es esencial usar una arquitectura independiente para recopilar los datos de optimización de carbono de Azure por dos razones fundamentales:
- Los datos de optimización de carbono de Azure solo se almacenan y muestran durante los últimos doce meses (en una ventana móvil). Cuando se requiere un seguimiento a largo plazo de la huella de carbono, un sistema dedicado garantiza la conservación de la información histórica detallada.
- Una aplicación puede abarcar varias infraestructuras, con Azure como único componente. Una arquitectura independiente permite la supervisión centralizada del impacto del carbono en todos los entornos para ofrecer una visión holística y garantizar una perspectiva más completa de la sostenibilidad.
Nota:
Los gases de efecto invernadero no se componen solo de dióxido de carbono y no todos tienen el mismo impacto en el medio ambiente. Por ejemplo, una tonelada de metano tiene el mismo efecto de calentamiento que 80 toneladas de dióxido de carbono. En este artículo, todo se normaliza a la medida equivalente de CO2. Todas las referencias al carbono se refieren al equivalente de CO2.
Orígenes de datos
En general, debe crear una ecuación de proxy con pocas variables. Las métricas proxy que elija deben representar el comportamiento y el rendimiento de la aplicación.
Estas métricas se usan en este ejemplo:
- Emisión de carbono de la infraestructura, que se recupera de la API de emisiones de carbono. Esta API es el origen del Panel de impacto de emisiones y la hoja Optimización de carbono en Azure Portal. Los datos están disponibles en el nivel de grupo de recursos, lo que facilita el seguimiento de las emisiones de su aplicación.
- Métricas de rendimiento y escala de la aplicación recopiladas de Application Insights:
- Factor de escalado (llamadas a la API, solicitudes de servidor o alguna otra métrica) para la aplicación
- Uso de CPU
- Uso de memoria
- Tiempo de respuesta (envío y recepción)
Para ver un tutorial sobre cómo configurar Application Insights para obtener las métricas necesarias, consulte Application Insights para aplicaciones de ASP.NET Core.
Puede agregar otras variables a la ecuación, por ejemplo:
- Emisiones de carbono de la infraestructura y los servicios Edge.
- Hora en la que se conectan los usuarios, ya que la producción y la demanda de electricidad varían con el tiempo.
- Cualquier otra métrica de la aplicación que pueda indicarle cómo cambia su rendimiento con el tiempo
Al construir esta ecuación en una puntuación que también puede reflejar el número de usuarios, cree la aproximación más cercana a una puntuación de emisiones de carbono. Esta puntuación es el punto de referencia para cualquier cambio y mejora adicionales hacia la sostenibilidad de la aplicación.
El coste es otra consideración asociada al rendimiento de las aplicaciones. En la mayoría de los casos se puede establecer una correlación directa entre la eficiencia del rendimiento y el ahorro de costes y carbono. Esta correlación conduce a las siguientes suposiciones:
- Cuando el rendimiento es mayor, pero los costes son los mismos, ha optimizado la aplicación y ha reducido las emisiones de carbono.
- Cuando los costes se reducen pero el rendimiento es el mismo, ha optimizado la aplicación y ha reducido las emisiones de carbono.
- Cuando aumentan tanto el rendimiento como los costes, no ha optimizado la aplicación y ha aumentado las emisiones de carbono.
- Cuando los costes aumentan pero el rendimiento se reduce o es el mismo, no ha optimizado la aplicación y han aumentado las emisiones de carbono (o el coste energético es mayor, lo que también es una causa de mayores emisiones de carbono).
Esta correlación entre la puntuación SCI, el coste y el rendimiento de una aplicación es única para cada aplicación y depende de muchos factores. Al recopilar datos de estas tres variables, puede crear un algoritmo de correlación que le permita prever cualquier variación de las tres y tomar decisiones informadas sobre la arquitectura y los patrones de la aplicación.
Cálculos
En el escenario descrito aquí, no es posible formar un cálculo discreto para los proxies que se utilizan. En su lugar, los datos recopilados del Panel de impacto de las emisiones se procesan como punto de partida. Este es el cálculo de referencia de SCI:
SCI = C*R
En esta ecuación:
C
son las emisiones de carbono de la aplicación. Este valor se ve afectado por cómo se implementa la aplicación en Azure. Por ejemplo, si todos los recursos de la aplicación están en un único grupo de recursos,C
son las emisiones de carbono de ese grupo de recursos.Nota:
Por ahora, se omiten otras fuentes de emisiones para la aplicación porque dependen de la arquitectura y del comportamiento perimetral/usuario. Si usa servidores proxy para los datos, puede tener en cuenta estos orígenes en el paso siguiente.
R
es el factor de escalado de la aplicación. Puede ser el número promedio de usuarios simultáneos para la ventana de tiempo, las solicitudes de API, las solicitudes web o alguna otra métrica. Este valor es importante porque conduce a una puntuación que tiene en cuenta el impacto global del uso de la aplicación, no solo su huella de despliegue.
La ventana temporal es, por supuesto, otro aspecto importante de este cálculo: las emisiones de carbono de cualquier dispositivo o sistema consumidor de energía varían con el tiempo, porque la red energética puede disponer de fuentes de energía renovables o alternativas (por ejemplo, energía solar) en algunos momentos, pero no en otros. Por eso es importante empezar con el plazo más corto posible para aumentar la precisión. Por ejemplo, puede empezar con un cálculo diario o por horas.
La API de emisiones de carbono proporciona actualmente información mensual sobre el carbono basada en los servicios de una suscripción, a nivel de grupo de recursos. Mediante el uso de la API REST proporcionada, puede exportar datos de emisiones a un lago de datos que contenga todos los datos de sostenibilidad de la aplicación.
Almacenamiento de datos
Debe almacenar la información sobre el carbono y el proxy de carbono que recopile en una solución que pueda conectar a paneles o informes. De este modo, podrá visualizar su balance de carbono a lo largo del tiempo y tomar decisiones con conocimiento de causa. Para mejorar la sostenibilidad y alinearse con las mejores prácticas de Azure Well-Architected Framework, le recomendamos que use el sistema mínimo viable. (Para obtener más información, consulte Consideraciones de diseño de datos y almacenamiento para cargas de trabajo sostenibles en Azure y en la plataforma de aplicaciones para cargas de trabajo sostenibles en Azure). Azure Data Lake Storage se usa en esta arquitectura.
Correlaciones de datos
Cuando empiece a recopilar datos sobre el carbono, el rendimiento y el coste de su aplicación, dispondrá de información valiosa que le permitirá crear un algoritmo de correlación específico para su aplicación y que le servirá de orientación a la hora de planificar la optimización del coste, el rendimiento y el carbono.
Para obtener más información, consulte Selección de algoritmos para Azure Machine Learning.
Presentación de datos
Puede mostrar los datos y los cálculos de varias maneras, incluidos los paneles de Azure Monitor personalizados y los paneles de Power BI simples.
¿Qué puede desencadenar su puntuación de SCI?
Después de conocer su puntuación de sostenibilidad, quizá se pregunte cómo puede mejorarla.
Si puede puntuar el impacto del carbono de su aplicación mediante proxies, el siguiente paso es centrarse en definir acciones que puedan activarse por condiciones desfavorables en la puntuación. Algunos ejemplos de estas condiciones son:
- La producción y la demanda de energía están en máximos históricos y, por lo tanto, su producción es cara.
- La electricidad no está disponible. Esta condición puede deberse a una catástrofe natural o a un conflicto geopolítico.
- Indisponibilidad repentina de la infraestructura perimetral causada por un consumo excesivo de recursos o problemas en la cadena de suministro.
Cuando pueda identificar los puntos de error que pueden afectar a su aplicación, podrá decidir qué medidas tomar para que su aplicación sea resistente a los picos de emisiones de carbono.
Puede realizar una de las siguientes acciones:
Aplique una degradación gradual de los servicios y características de la aplicación, como se describe en la documentación de Well-Architected Framework.
Cree una versión en modo ecológico de su aplicación. El modo Eco es una versión más sencilla, pequeña, barata y sostenible de la aplicación que ofrece características mínimas. Puede volver a esta versión durante los picos de emisión de carbono. También puede simplemente formar a sus usuarios finales para que usen una versión Eco por elección propia. Puede ofrecer un "botón verde" que permita usar una interfaz más sencilla, con menos gráficos y características limitadas, a cambio de reducir las emisiones de carbono.
Si decide implicar a los usuarios, cree una oportunidad para impulsar un cambio cultural junto con el técnico: - Puede especificar el impacto de la elección: "Mediante el uso de la versión eco, ahorra x cantidad de carbono" o "traer nuestra puntuación de carbono a y cantidad". - Puede comprender el comportamiento del usuario y modificar la versión eco para reflejar sus opciones. (Quizás usen el 10 % de las características y sean un usuario ideal de la versión eco). - A medida que la versión completa está optimizada para la emisión, lo ideal es combinar las dos versiones.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para obtener más información, consulte Introducción al pilar de seguridad.
Para mayor seguridad, puede usar los puntos de conexión de servicio de la red de Azure para eliminar el acceso público de Internet a los recursos del servicio Azure, y solo se permite el tráfico desde la red virtual.
Con este enfoque, se crea una red virtual en Azure y, después, se crean puntos de conexión de servicio privados para los servicios de Azure. Luego se aplica una restricción a dichos servicios, por lo que solo le llega el tráfico de la red virtual. También puede acceder ellos desde la red local a través de una puerta de enlace.
Tenga en cuenta que, para mover datos de un entorno local a Azure Storage, debe permitir direcciones IP públicas desde el entorno local o Azure ExpressRoute. Para más información, consulte Implementación de servicios de Azure dedicados en las redes virtuales.
Para una guía general sobre el diseño de soluciones seguras, consulte Documentación de seguridad de Azure.
Optimización de costos
La optimización de costes trata de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Descripción general del pilar Optimización de costes.
Puede implementar esta arquitectura mediante varios servicios alternativos de Azure. Se ha reducido intencionadamente al mínimo para ahorrar costes y emisiones de carbono.
Aunque le animamos a que use servicios equivalentes de los que ya disponga en la implantación de su aplicación, dispone de información sobre precios para cada componente de la arquitectura:
Los informes Panel de impacto de las emisiones, de optimización del carbono de Azure y de administración de costes de Microsoft son gratuitos.
Eficiencia del rendimiento
La eficiencia del rendimiento es la capacidad de la carga de trabajo para escalar con el fin de satisfacer de manera eficiente las demandas que los usuarios hayan ejercido sobre ella. Para obtener más información, consulte Descripción general del pilar Eficiencia del rendimiento.
El propósito principal de esta arquitectura es proporcionar una puntuación de sostenibilidad de las aplicaciones mediante un proceso con un impacto mínimo en el coste y en las emisiones de carbono. La mayoría de los componentes son de plataforma como servicio (PaaS) y servicios de Azure sin servidor que se pueden escalar de forma independiente en función del uso y el tráfico.
En este escenario, el panel y la interfaz de almacenamiento no están pensados para un uso o consultas intensivas. Si tiene previsto ofrecerlo a un gran número de usuarios, puede que le interese una de estas opciones:
- Desacoplar los datos extraídos transformándolos y almacenándolos en un sistema diferente.
- Reemplazar Data Lake Storage o Azure Table Storage por una alternativa de estructura de datos más escalable, como Azure Cosmos DB.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Creadores de entidad de seguridad:
- Paola Annis | Responsable principal de ingeniería de la experiencia del cliente
- Davide Bedin | Arquitecto sénior de soluciones en la nube, innovación de aplicaciones
Otro colaborador:
- Chad Kittel | Ingeniero principal de software
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Pasos siguientes
Este artículo está alineado con los principios y la metodología de Green Software Foundation. El siguiente paso para crear una aplicación más verde es insertar el SDK de Carbon Aware en la aplicación para que los desencadenadores se puedan automatizar en tiempo real cuando se cumplan condiciones de carbono específicas.
Para obtener recomendaciones para optimizar las cargas de trabajo de Azure, consulte la Guía sobre la carga de trabajo de la nube de sostenibilidad.