Recomendaciones para optimizar las tareas operativas
Se aplica a esta recomendación de lista de comprobación de eficiencia del rendimiento de Azure Well-Architected Framework:
PE:10 | Optimice las tareas operativas. Supervise y minimice los efectos del ciclo de vida de desarrollo de software y otras operaciones rutinarias en el rendimiento de la carga de trabajo. Estas operaciones incluyen exámenes de virus, rotaciones de secretos, copias de seguridad, volver a indexar bases de datos e implementaciones. |
---|
En esta guía se describen las recomendaciones para optimizar las tareas operativas. Optimizar 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 usan los mismos recursos de proceso que la propia carga de trabajo. Si no se tienen en cuenta los efectos de las tareas de operaciones, la carga de trabajo puede perder sus objetivos de rendimiento. También puede afectar negativamente al rendimiento de la carga de trabajo para los clientes.
Definiciones
Término | Definición |
---|---|
Implementación azul-verde | Una estrategia de implementación que usa dos entornos idénticos y controla la dirección del tráfico a las nuevas implementaciones (implementaciones verdes). |
Regeneración del índice de base de datos | Actividad de mantenimiento que quita y vuelve a crear un índice. |
Reorganización de índices de base de datos | Actividad de mantenimiento que optimiza el índice de base de datos actual. |
Esquema de la base de datos | 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 en directo con sus propios nombres de host. |
Actualizaciones locales | Proceso de actualización de un componente o una aplicación sin reemplazarlo ni migrarlo a un nuevo entorno. |
Infraestructura como código (IaC) | Un modelo descriptivo para definir e implementar la infraestructura, incluidas las redes, las máquinas virtuales, los equilibradores de carga y las topologías de conexión. |
Estrategias de diseño principales
Debe tomar medidas para reducir los efectos del ciclo de vida de desarrollo de software y otras operaciones rutinarias en el rendimiento de la carga de trabajo. El objetivo es garantizar que las operaciones rutinarias, como exámenes de virus, rotaciones de secretos, copias de seguridad, optimización de índices (reorganización o regeneración) e implementaciones, no degradan significativamente el rendimiento de la carga de trabajo.
Cuenta de las tareas operativas
Es importante tener en cuenta las tareas operativas al establecer destinos de rendimiento. Al incorporar tareas rutinarias, normales y ad hoc en destinos de rendimiento, puede asegurarse de que la carga de trabajo funciona de forma eficaz. Para tener en cuenta las tareas operativas en los objetivos de rendimiento, estos son algunos puntos clave que se deben tener en cuenta:
Identificar las tareas operativas. Identifique e incluya tareas operativas relevantes en los objetivos de rendimiento. Algunos ejemplos de tareas rutinarias pueden incluir análisis de virus, reorganización de índices de base de datos, regeneración de índices de base de datos, copias de seguridad de disco o de base de datos, rotación de certificados, aplicación de revisiones de un sistema operativo, rotación de contraseñas, rotación de claves de API, pruebas de penetración y revisiones de auditoría en producción.
Evaluar los objetivos de rendimiento. Evalúe los destinos de rendimiento actuales y ajústelos para tener en cuenta las tareas operativas específicas de la carga de trabajo. Esto 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 implementaciones hace referencia a la refinación del proceso de liberación de recursos y código para garantizar un rendimiento sin problemas y interrupciones mínimas. Implica la planeación, la distribución eficaz de recursos y las pruebas exhaustivas de la infraestructura como código (IaC) y el código de aplicación antes de que se introduzcan en un entorno activo. Las deficiencias de implementación pueden dar lugar a una velocidad y eficiencia reducidas de una carga de trabajo, posibles restricciones de recursos y una experiencia de usuario comprometida en la configuración operativa. 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 eficacia. 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 implementaciones azul-verde o implementaciones controladas, donde 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 garantizar una experiencia de usuario sin problemas.
Implemente en el recuento de instancias actual. También debe evitar implementaciones que provoquen operaciones de escalado inmediatas. No debe implementar recursos en un sistema activo con un recuento de instancias tan bajo que obliga al sistema a realizar inmediatamente una operación de escalado. Por ejemplo, la plantilla de infraestructura como código (IaC) podría no coincidir con el número de instancias que necesita en el momento de la implementación. Es posible que tenga un recuento de instancias de dos, aunque el entorno implementado actual ejecute ocho instancias. La implementación quitaría seis instancias y afectaría negativamente al rendimiento.
Use una estrategia de implementación azul-verde. Las implementaciones pueden provocar 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 sin problemas entre entornos y reducen el riesgo de interrupciones del servicio. Al usar el enfoque de implementación azul-verde, tiene 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 la carga de trabajo. Para realizar la implementación 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 preescalar las instancias antes de la transición. El precalentamiento implica preparar el nuevo entorno mediante la simulación del tráfico y la carga de trabajo similares a la producción para asegurarse de que el entorno está listo para controlar la carga esperada. Ayuda a minimizar los efectos en los tiempos de latencia y respuesta. Pruebe y valide exhaustivamente el nuevo entorno para asegurarse de que funciona correctamente y cumple las expectativas de rendimiento. Las pruebas ayudan a preparar las memorias caché, establecer conexione de base de datos y asegurarse de que el entorno está listo para controlar la carga esperada.
Cambia gradualmente el tráfico. Después de que el nuevo entorno esté preincronado y validado, cambie gradualmente el tráfico de producción del entorno antiguo (azul) al nuevo entorno (verde). Inicialmente, dirige un pequeño porcentaje de tráfico al entorno verde y aumenta gradualmente después de comprobar su estabilidad y el estado esperado de la aplicación. Puede usar un equilibrador de carga global o un mecanismo de administración del tráfico. El cambio de tráfico controlado le permite identificar los problemas de rendimiento al principio y tomar medidas correctivas antes de realizar la transición completa de la carga de trabajo al nuevo entorno.
Supervisar y optimizar. 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 deseado y la experiencia del usuario.
Quite el entorno anterior. Después de realizar correctamente la transición de todo el tráfico al entorno verde, quite el entorno azul de las conexiones existentes. Este paso ayuda a optimizar el costo de mantener el entorno antiguo y garantiza que los nuevos entornos estén libres de desfase de configuración.
Repita el proceso. Para futuras implementaciones, invierte los roles de los entornos azul y verde. Implemente cambios en el nuevo entorno azul, validelos, organice la transición del tráfico y retire el entorno verde antiguo.
Use varias compilaciones. Los diferentes tipos de compilaciones pueden ayudarle a optimizar los tiempos de compilación y a 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 haber compilaciones nocturnas que ejecuten pruebas automatizadas periódicamente y publicar compilaciones que se usan para la implementación 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 solucionar problemas o errores al principio del proceso de desarrollo.
Considere las marcas de características. Las marcas de características se usan en el desarrollo de software para controlar la visibilidad y el comportamiento de determinadas características de 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 la lógica condicional en el código que determina si se debe habilitar o deshabilitar una característica. Esta lógica se puede basar en varios factores, como roles de usuario, preferencias de usuario o 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 en un subconjunto de usuarios o habilitar características para grupos específicos para pruebas (pruebas controladas).
Optimización de las actualizaciones
Una actualización local es una actualización a un recurso o aplicación existente. Las actualizaciones en contexto pueden ralentizar o interrumpir temporalmente una carga de trabajo. Es importante asegurarse de que las actualizaciones son compatibles con la carga de trabajo. Antes de aplicar una actualización, se recomienda probarla en un entorno independiente para identificar los posibles problemas. Proporcione un plan de reversión en caso de que surjan problemas durante el proceso de actualización. Es fundamental realizar una copia de seguridad completa de los datos y configuraciones críticos antes de aplicar la actualización. Supervise el sistema actualizado estrechamente después de la actualización para asegurarse de que todo funciona según lo previsto. La copia de seguridad le permite restaurar a un buen estado si es necesario. Debe priorizar la programación de la actualización durante las horas de poca actividad para minimizar el efecto en los usuarios y el rendimiento de la carga de trabajo. Notifique a los usuarios con antelación la actualización planeada, incluido el tiempo de inactividad esperado y las acciones necesarias que deben realizar.
Compensación: esperar a realizar actividades de operaciones durante las horas de poca actividad puede afectar a la eficacia operativa. Es posible que sea menos conveniente que el personal con el conjunto de aptitudes adecuado trabaje durante las horas de poca actividad.
Optimización de herramientas
Las herramientas esenciales para la supervisión de la integridad de los archivos, el examen de virus, la detección de intrusiones y otras tareas operativas pueden afectar al rendimiento de la carga de trabajo. Consumen recursos de proceso y pueden agregar una sobrecarga de rendimiento y latencia. Debe probar y comprender los efectos que tienen las herramientas en el rendimiento de la carga de trabajo. En función de los resultados de las pruebas, debe ajustar las configuraciones de herramientas, ajustar la frecuencia de examen y reasignar los recursos de proceso. Para el examen de virus, podría crear una lista de exclusión pertinente para minimizar la duración de los exámenes.
Optimización de las operaciones de base de datos
La optimización de las operaciones de base de datos hace referencia al proceso de refinamiento y ajuste de las tareas de base de datos para garantizar la máxima eficiencia y el uso mínimo de los recursos. Estas operaciones incluyen tareas como copias de seguridad, cambios de esquema, optimización del rendimiento y supervisión. Las operaciones de base de datos eficaces provocan respuestas de consulta más rápidas, una sobrecarga del sistema reducida y una experiencia de usuario más fluida.
Los cambios de esquema implican modificar la estructura de una base de datos, como agregar o modificar tablas, columnas o índices. Estos cambios pueden requerir un procesamiento adicional y un 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 en consultas activas, índices o transacciones 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 usar varias técnicas de implementación para implementar actualizaciones de esquema. También debe usar las herramientas de cambio de esquema disponibles para optimizar el proceso. El archivado de datos y las particiones puede ayudar a reducir los efectos de los cambios de esquema.
Optimización de copias de seguridad
Las copias de seguridad consumen recursos de carga de trabajo, como la potencia de procesamiento, el ancho de banda de 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 poca actividad cuando pueda. La estrategia debe incluir copias de seguridad incrementales en lugar de copias de seguridad completas cada vez. Las instantáneas pueden ser menos intensivas en recursos que las copias de seguridad. Debe considerar las características 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 la carga de trabajo.
Optimización de la supervisión y depuración
El registro, la telemetría, la instrumentación y la recopilación de registros excesivos o deficientes implementados pueden afectar al rendimiento. Del mismo modo, las características útiles como la depuración remota también pueden afectar al rendimiento. Debe medir y conocer sus efectos de rendimiento en el entorno. No quiere que estos procesos degraden el rendimiento. Debe configurar o deshabilitar cualquier proceso cuyos efectos de rendimiento superen sus ventajas.
Facilitación de Azure
Contabilidad de tareas operativas: Azure DevOps es un conjunto de herramientas y servicios de desarrollo que permiten a los equipos planear, desarrollar, probar y ofrecer software de forma eficaz. Incluye características como el control de versiones, la integración continua y la entrega, la administración de proyectos, etc.
Azure proporciona integración entre servicios 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 contenido de la aplicación y 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 le 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 la estrategia de cambio de tráfico o calentamiento de instancias para mitigar los efectos de 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 ni a la disponibilidad de las operaciones de base de datos. Azure Cosmos DB almacena las copias de seguridad en un servicio de almacenamiento independiente.
Optimización de copias de seguridad: algunos servicios de datos de Azure admiten un impacto de bajo a ningún rendimiento para la recuperación y la indexación a un momento dado. Azure Backup es una solución de copia de seguridad confiable y escalable basada en la nube que permite proteger los datos y las aplicaciones. Proporciona características 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 las aplicaciones mediante su replicación en una ubicación secundaria. Proporciona funcionalidades de replicación continua y conmutación por error automatizadas para minimizar el tiempo de inactividad y los impactos en el rendimiento durante las operaciones de copia de seguridad y recuperación ante desastres.
Vínculos relacionados
- Ranuras de implementación
- Estrategia de implementación azul-verde
- Azure SQL Database
- Azure Cosmos DB
Lista de comprobación de eficiencia del rendimiento
Consulte el conjunto completo de recomendaciones.