Compartir a través de


Recomendaciones para optimizar las tareas operativas

Se aplica a esta recomendación de la lista de comprobación de eficiencia del rendimiento de Azure Well-Architected Framework:

PE:10 Optimizar las tareas operativas. Supervise y minimice los efectos del ciclo de vida del desarrollo de software y otras operaciones rutinarias en el rendimiento de la carga de trabajo. Estas operaciones incluyen análisis de virus, rotaciones de secretos, copias de seguridad, reindexación de bases de datos e implementaciones.

En esta guía se describen las recomendaciones para optimizar las tareas operativas. La optimización de las tareas operativas es el proceso de minimizar los efectos de las tareas que se realizan como parte de las operaciones de carga de trabajo de enrutamiento. Las actividades de operaciones utilizan los mismos recursos informáticos que la propia carga de trabajo. Si no se tienen en cuenta los efectos de las tareas de operaciones, la carga de trabajo puede no alcanzar sus objetivos de rendimiento. También puede afectar negativamente al rendimiento de la carga de trabajo para sus clientes.

Definiciones

Término Definición
Implementación azul-verde Una estrategia de implementación que utiliza dos entornos idénticos y controla la dirección del tráfico a las nuevas implementaciones (implementaciones verdes).
Reconstrucción de índices de base de datos Actividad de mantenimiento que quita y vuelve a crear un índice.
Reorganización del índice de la base de datos Actividad de mantenimiento que optimiza el índice de la base de datos actual.
Esquema de base de datos La estructura general de una base de datos y sus relaciones con otros datos.
Ranura de implementación Característica de Azure App Service que permite implementar aplicaciones activas con sus propios nombres de host.
Actualizaciones in situ El proceso de actualizar un componente o una aplicación sin reemplazarlo o migrarlo a un nuevo entorno.
Infraestructura como código (IaC) Un modelo descriptivo para definir e implementar infraestructura, incluidas redes, máquinas virtuales, equilibradores de carga y topologías de conexión.

Estrategias clave de diseño

Debe tomar medidas para reducir los efectos del ciclo de vida del desarrollo de software y otras operaciones rutinarias en el rendimiento de la carga de trabajo. El objetivo es garantizar que las operaciones rutinarias, como los análisis de virus, las rotaciones secretas, las copias de seguridad, la optimización de índices (reorganización o reconstrucción) y las implementaciones, no degraden significativamente el rendimiento de la carga de trabajo.

Contabilizar las tareas operativas

Es importante tener en cuenta las tareas operativas al establecer objetivos de rendimiento. Al incorporar tareas rutinarias, regulares y ad hoc en los objetivos de rendimiento, puede asegurarse de que la carga de trabajo funcione de manera eficiente. Para tener en cuenta las tareas operativas en los objetivos de rendimiento, estos son algunos puntos clave a tener en cuenta:

  • Identificar las tareas operativas. Identifique e incluya las tareas operativas relevantes en los objetivos de rendimiento. Algunos ejemplos de tareas rutinarias pueden ser el análisis de virus, la reorganización de índices de bases de datos, la reconstrucción de índices de bases de datos, las copias de seguridad de discos o bases de datos, las rotaciones de certificados, la aplicación de parches a un sistema operativo, la rotación de contraseñas, la rotación de claves API, las pruebas de penetración y las revisiones de auditoría en producción.

  • Evalúe los objetivos de rendimiento. Evalúe los objetivos de rendimiento actuales y ajústelos para tener en cuenta las tareas operativas específicas de la carga de trabajo. De este modo, se garantiza que los objetivos de rendimiento se alineen con los requisitos operativos de la carga de trabajo.

Optimización de las implementaciones

La optimización de las implementaciones se refiere a refinar el proceso de liberación de recursos y código para garantizar un rendimiento sin interrupciones y mínimas. Implica la planificación, la distribución eficaz de los recursos y las pruebas exhaustivas tanto de la infraestructura como código (IaC) como del código de la aplicación antes de que se introduzcan en un entorno en vivo. Las insuficiencias de la implementación pueden provocar una reducción de la velocidad y la eficiencia de una carga de trabajo, posibles limitaciones de recursos y una experiencia de usuario comprometida en el entorno operativo. Para optimizar las implementaciones, tenga en cuenta estas estrategias:

Evalúe el tiempo de inactividad aceptable. Si el tiempo de inactividad es aceptable, puede implementar estrategias de implementación que prioricen la velocidad y la eficiencia. Sin embargo, es importante evaluar cuidadosamente el efecto del tiempo de inactividad en los requisitos empresariales antes de tomar esa decisión. Por otro lado, si el tiempo de inactividad no es aceptable, debe implementar estrategias de implementación que garanticen la disponibilidad continua de la carga de trabajo. Considere la posibilidad de usar técnicas como las implementaciones azul-verde o las implementaciones canary, en las que se implementan gradualmente nuevas versiones de la carga de trabajo mientras se supervisan los problemas. Estas estrategias ayudan a minimizar el efecto del tiempo de inactividad y garantizan una experiencia de usuario fluida.

Implemente en el recuento de instancias actual. También debe evitar implementaciones que provoquen operaciones de escalado inmediato. No debe implementar recursos en un sistema en vivo con un recuento de instancias tan bajo que obligue al sistema a realizar inmediatamente una operación de escalado. Por ejemplo, es posible que la plantilla de infraestructura como código (IaC) no coincida con el número de instancias que necesita en el momento de la implementación. Puede tener un número de instancias de dos, aunque el entorno implementado actual esté ejecutando ocho instancias. La implementación eliminaría seis instancias y afectaría negativamente al rendimiento.

Use una estrategia de implementación azul-verde. Las implementaciones pueden causar interrupciones del servicio y tiempo de inactividad. Para mitigar estos problemas, seleccione una estrategia de implementación que minimice el impacto en el rendimiento, como una implementación azul-verde. Estos enfoques permiten transiciones fluidas entre entornos y reducen el riesgo de interrupciones del servicio. Cuando se utiliza el enfoque de implementación azul-verde, se tienen dos entornos independientes: los entornos azul y verde. Si se detecta algún problema o degradación del rendimiento en el entorno verde, puede revertir fácilmente al entorno azul estable. Esta estrategia le ayuda a garantizar un tiempo de inactividad mínimo y le permite mantener un alto nivel de rendimiento para su carga de trabajo. Para implementar mediante el enfoque azul-verde, siga estos pasos generales:

  • Implemente el nuevo entorno. Configure el nuevo entorno (verde) junto con el entorno existente (azul) con la versión actualizada de la aplicación.

  • Valide el nuevo entorno. Las implementaciones pueden introducir latencia y aumentar los tiempos de respuesta. Considere la posibilidad de precalentar las instancias antes de la transición. El precalentamiento implica preparar el nuevo entorno simulando el tráfico y la carga de trabajo similares a los de producción para garantizar que el entorno esté listo para manejar la carga esperada. Ayuda a minimizar los efectos sobre la latencia y los tiempos de respuesta. Pruebe y valide exhaustivamente el nuevo entorno para asegurarse de que funciona correctamente y cumple con las expectativas de rendimiento. Las pruebas ayudan a preparar las cachés, establecer conexiones a la base de datos y garantizar que el entorno esté listo para manejar la carga esperada.

  • Cambia gradualmente el tráfico. Una vez que el nuevo entorno se haya precalentado y validado, cambie gradualmente el tráfico de producción del entorno anterior (azul) al nuevo entorno (verde). Inicialmente, dirija un pequeño porcentaje del tráfico al entorno verde y auméntelo gradualmente después de verificar su estabilidad y el estado esperado de la aplicación. Puede utilizar un equilibrador de carga global o un mecanismo de administración del tráfico. El desplazamiento controlado del tráfico le permite identificar cualquier problema de rendimiento con antelación y tomar medidas correctivas antes de realizar la transición completa de la carga de trabajo al nuevo entorno.

  • Supervise y optimice. Las implementaciones pueden usar recursos informáticos compartidos. Supervise continuamente el rendimiento y el estado del nuevo entorno después de cambiar el tráfico. Realice las optimizaciones o ajustes necesarios para garantizar el rendimiento y la experiencia de usuario deseados.

  • Elimine el entorno anterior. Después de realizar correctamente la transición de todo el tráfico al entorno verde, elimine el entorno azul de las conexiones existentes. Este paso ayuda a optimizar el costo de mantenimiento del entorno antiguo y garantiza que los nuevos entornos estén libres de desviaciones de configuración.

  • Repite el proceso. Para implementaciones futuras, invierta los roles de los entornos azul y verde. Implemente cambios en el nuevo entorno azul, valídelos, organice la transición del tráfico y retire el antiguo entorno verde.

Utilice varias compilaciones. Los diferentes tipos de compilaciones pueden ayudarle a optimizar los tiempos de compilación y garantizar la calidad de las implementaciones. Por ejemplo, puede tener compilaciones de integración continua (CI) que se desencadenen con cada confirmación de código. Podría tener compilaciones nocturnas que ejecuten pruebas automatizadas con regularidad y compilaciones de lanzamiento que se usen para implementarlas en producción. Cada tipo de compilación debe tener un propósito específico, como la integración continua, las pruebas automatizadas o la implementación de producción. Las pruebas y la validación de la carga de trabajo antes de la implementación ayudan a identificar y abordar problemas o errores en las primeras etapas del proceso de desarrollo.

Tenga en cuenta las marcas de características. Las marcas de características se utilizan en el desarrollo de software para controlar la visibilidad y el comportamiento de ciertas características en una aplicación. Mediante el uso de marcas de características, los desarrolladores pueden habilitar o deshabilitar características específicas sin necesidad de volver a implementar la aplicación. Las marcas de características funcionan mediante la introducción de lógica condicional en el código que determina si una característica debe habilitarse o deshabilitarse. Esta lógica puede basarse en varios factores, como los roles de usuario, las preferencias del usuario o las condiciones específicas definidas por el equipo de desarrollo. Mediante el uso de marcas de características, los desarrolladores pueden implementar gradualmente nuevas características para un subconjunto de usuarios o habilitar características para grupos específicos para realizar pruebas (pruebas canary).

Optimice las actualizaciones

Una actualización local es una actualización de un recurso o aplicación existente. Las actualizaciones locales pueden ralentizar o interrumpir temporalmente una carga de trabajo. Es importante asegurarse de que las actualizaciones sean compatibles con la carga de trabajo. Antes de aplicar una actualización, le recomendamos que la pruebe en un entorno independiente para identificar cualquier problema potencial. Proporcione un plan de reversión en caso de que surja algún problema durante el proceso de actualización. Es crucial realizar una copia de seguridad completa de los datos y configuraciones críticos antes de aplicar la actualización. Supervise de cerca el sistema actualizado después de la actualización para asegurarse de que todo funcione como se espera. La copia de seguridad le permite restaurar a un buen estado si lo necesita. Debe priorizar la programación de la actualización durante las horas de menor actividad para minimizar el efecto en los usuarios y el rendimiento de la carga de trabajo. Notifique a los usuarios con anticipación sobre la actualización planificada, incluido el tiempo de inactividad esperado y las acciones necesarias que deben realizar.

Compensación: Esperar para realizar actividades de operaciones durante las horas de menor actividad puede afectar a la eficiencia operativa. Puede ser menos conveniente que el personal con las habilidades adecuadas trabaje durante las horas de menor actividad.

Optimice las herramientas

Las herramientas esenciales para la supervisión de la integridad de los archivos, el análisis de virus, la detección de intrusiones y otras tareas operativas pueden afectar al rendimiento de la carga de trabajo. Consumen recursos informáticos y pueden agregar latencia y sobrecarga de rendimiento. Debe probar y comprender los efectos que tienen sus herramientas en el rendimiento de la carga de trabajo. En función de los resultados de las pruebas, debe ajustar las configuraciones de las herramientas, ajustar la frecuencia de análisis y reasignar los recursos informáticos. Para el análisis de virus, puede crear una lista de exclusión relevante para minimizar la duración de los análisis.

Optimice las operaciones de la base de datos

La optimización de las operaciones de la base de datos se refiere al proceso de refinar y ajustar las tareas de la base de datos para garantizar la máxima eficiencia y la mínima utilización de recursos. Estas operaciones incluyen tareas como copias de seguridad, cambios de esquema, ajuste del rendimiento y supervisión. Las operaciones eficientes de la base de datos conducen a respuestas de consulta más rápidas, una menor sobrecarga del sistema y una experiencia de usuario más fluida en general.

Los cambios de esquema implican la modificación de la estructura de una base de datos, como la adición o modificación de tablas, columnas o índices. Estos cambios pueden requerir procesamiento adicional y uso de recursos durante el proceso de implementación, lo que podría afectar al rendimiento general de la carga de trabajo. Los cambios de esquema pueden interrumpir el rendimiento de las consultas, índices o transacciones activas, o hacer que los datos no estén disponibles.

Para minimizar estos efectos, debe planear y probar los cambios de esquema en un entorno que no sea de producción. Puede utilizar varias técnicas de implementación para implementar actualizaciones de esquema. También debe utilizar las herramientas de cambio de esquema disponibles para optimizar el proceso. El archivado de datos y la creación de particiones pueden ayudar a reducir los efectos de los cambios de esquema.

Optimice las copias de seguridad

Las copias de seguridad consumen recursos de la carga de trabajo, como la potencia de procesamiento, el ancho de banda de la red y la E/S de disco. Debe probar y seleccionar una estrategia de copia de seguridad que minimice estos efectos. Debe realizar copias de seguridad durante las horas de menor actividad cuando pueda. Su estrategia debe incluir copias de seguridad incrementales en lugar de copias de seguridad completas cada vez. Las instantáneas pueden requerir menos recursos que las copias de seguridad. Debe considerar las funciones integradas de copia de seguridad y restauración de la plataforma en lugar de crear una solución personalizada. Debe probar estas opciones y usar una combinación que proporcione el mejor rendimiento para su carga de trabajo.

Optimice la supervisión y la depuración

El registro, la telemetría, la instrumentación y la captura y recopilación de seguimiento distribuido excesivas o mal implementadas pueden afectar al rendimiento. Del mismo modo, las características de conveniencia como la depuración remota también pueden afectar el rendimiento. Es necesario medir y conocer sus efectos de rendimiento en el medio ambiente. No desea que estos procesos degraden el rendimiento. Debe configurar o deshabilitar cualquier proceso cuyos efectos en el rendimiento superen sus beneficios.

Facilitación de Azure

Contabilidad de las tareas operativas: Azure DevOps es un conjunto de herramientas y servicios de desarrollo que permiten a los equipos planear, desarrollar, probar y entregar software de forma eficaz. Incluye funciones como control de versiones, integración y entrega continuas, gestión de proyectos y más.

Azure proporciona integración de servicio a servicio que minimiza los efectos de muchas tareas operativas. Por ejemplo, los servicios que se integran con Azure Key Vault suelen admitir la rotación de certificados sin problemas o la rotación de secretos que minimiza los efectos en el rendimiento.

Optimización de implementaciones: App Service proporciona ranuras de implementación. Puede usar ranuras de implementación para implementar código en un entorno que no sea de producción. Puede intercambiar el contenido de la aplicación y los elementos de configuración entre dos ranuras de implementación. Por ejemplo, puede cambiar el contenido de la aplicación de una ranura que no sea de producción a la ranura de producción.

Azure Front Door y Azure Traffic Manager permiten implementar una estrategia de implementación azul-verde. Algunos servicios de proceso de Azure también admiten estrategias de implementación avanzadas, como las implementaciones azul-verde. Puede combinar esos servicios con su estrategia de desplazamiento de tráfico o calentamiento de instancias para mitigar los efectos en el rendimiento de la implementación.

Optimización de las operaciones de base de datos: Azure SQL Database realiza automáticamente copias de seguridad completas, copias de seguridad diferenciales y copias de seguridad del registro de transacciones. Azure Cosmos DB realiza automáticamente copias de seguridad de los datos a intervalos regulares. Las copias de seguridad automáticas se realizan sin afectar al rendimiento o la disponibilidad de las operaciones de la base de datos. Azure Cosmos DB almacena las copias de seguridad en un servicio de almacenamiento independiente.

Optimización de las copias de seguridad: algunos servicios de datos de Azure admiten un impacto de rendimiento de bajoto-no para la recuperación e indexación a un momento dado. Azure Backup es una solución de copia de seguridad basada en la nube confiable y escalable que le permite proteger sus datos y aplicaciones. Proporciona funciones como copias de seguridad incrementales, compresión y cifrado para minimizar los efectos en el rendimiento durante las operaciones de copia de seguridad. Azure Site Recovery le ayuda a proteger sus aplicaciones replicarlas en una ubicación secundaria. Proporciona replicación continua y capacidades de conmutación por error automatizada para minimizar el tiempo de inactividad y los impactos en el rendimiento durante las operaciones de copia de seguridad y recuperación ante desastres.

Administración de la continuidad empresarial y la recuperación ante desastres: también puede usar el Centro de continuidad empresarial de Azure para simplificar la administración de copias de seguridad y recuperación ante desastres con una interfaz web unificada para configurar copias de seguridad, establecer directivas de protección, supervisar operaciones y revisar configuraciones en diversos entornos.

Lista de comprobación de eficiencia en el rendimiento

Consulte el conjunto completo de recomendaciones.