Acerca de las mejores prácticas para operar despliegues en la nube de forma eficiente
Realizar operaciones como código
- Uso del marco OCI Landing Zones
Aprovecha los planes detallados de Oracle con orientación de diseño y plantillas IaC preconfiguradas de Terraform que son adecuadas para varias arquitecturas y casos de uso para la mayoría de los despliegues de OCI.
- Adopte la infraestructura como código (IaC)
Automatice el despliegue de cargas de trabajo y procedimientos operativos, limite la interacción humana y mejore la respuesta a los eventos mediante el uso de la infraestructura como código.
- Definición de la Infraestructura de Carga de Trabajo
Al definir la infraestructura como código, es posible aprovisionar cargas de trabajo de forma automática y repetida en una infraestructura coherente. La parametrización permite la reutilización de plantillas comunes, promoviendo la estandarización entre entornos y minimizando el reproceso entre equipos.
- Desarrollo y despliegue de aplicaciones
La automatización del despliegue de código en la infraestructura existente permite la consistencia de las aplicaciones en varios despliegues de infraestructura.
- Gestión de la configuración de la infraestructura
La coherencia es fundamental a la hora de configurar y actualizar la configuración de la infraestructura en varios recursos en la nube. Con la gestión de la configuración, es posible gestionar el despliegue de la configuración de la infraestructura durante el diseño, la implantación, las pruebas, la aplicación de parches y las nuevas versiones.
Realizar despliegues iterativos y frecuentes
Minimice el riesgo mediante el uso de la automatización y un proceso de desarrollo iterativo al probar e implementar código.
- Automatice el proceso de despliegue de aplicaciones
Automatice tantos procesos como sea posible. Si es posible, elimine las implementaciones manuales en producción, aunque esto podría ser aceptable en entornos más bajos para promover la velocidad y la flexibilidad.
- Aproveche la automatización para probar su código antes del despliegue
Las pruebas de bugs, vulnerabilidades de seguridad, funcionalidad, rendimiento e integraciones son fundamentales para minimizar los problemas que detectan los usuarios. Las pruebas fallidas deben evitar que el código se libere en producción.
- Implantar despliegues iterativos e incrementales
Reduzca los riesgos probando y validando despliegues con más frecuencia. Los cambios más pequeños y frecuentes pueden reducir la exposición a fallos y retrasos en la identificación de problemas.
Definir procedimientos operativos
Defina procedimientos para utilizar las herramientas disponibles y automatizar procedimientos.
- Automatización de la aplicación de parches y del mantenimiento
Aproveche las herramientas para actualizar y aplicar parches automáticamente a las instancias informáticas, las instancias de base de datos y los servidores que forman parte de la responsabilidad de mantenimiento del cliente.
- Aprovechar las utilidades de gestión de configuración
Utilice las herramientas de gestión de configuración para automatizar y reducir el riesgo al actualizar las configuraciones de recursos.
- Supervisar las métricas de rendimiento del sistema
Comprenda las métricas proporcionadas por los servicios de infraestructura. Configure la supervisión y las alertas para proporcionar visibilidad del estado de todas las cargas de trabajo e indicadores proactivos de fallo.
- Documente y pruebe su plan de recuperación ante desastres
Escriba un plan de recuperación ante desastres que refleje el impacto empresarial de los fallos de la aplicación. Comprenda las dependencias de las aplicaciones y su impacto en ellas. Automatice el proceso de recuperación tanto como sea posible y documente los pasos manuales. Pruebe regularmente su proceso de recuperación ante desastres para validar y mejorar el plan.
- Planificación de interacciones de soporte de Oracle Cloud Infrastructure
Antes de que surja la necesidad, establezca un proceso para ponerse en contacto con el soporte de Oracle Cloud Infrastructure.
- Incorporar prácticas de FinOps
Incorporar las prácticas de FinOps en los procedimientos operativos para garantizar que la gestión de costos se convierta en una parte integral de las operaciones diarias.
Esperar un fallo y aprender
Los fallos no previstos se producirán a lo largo del ciclo de vida de una aplicación. Aprenda de un fallo y mejore los procesos de respuesta y recuperación.
- Aprender de los fallos
Realice análisis de causas raíz y ajuste los procesos de operaciones para obtener respuestas mejores y más ágiles a los fallos en el futuro.
- Mejora continua de la respuesta a incidentes
Integre las lecciones aprendidas de fallos y problemas pasados con los procedimientos de respuesta a incidentes existentes para evitar problemas futuros y reducir el tiempo medio de reparación.
- Práctica para el fracaso
Pruebe y ensaye periódicamente los procesos de gestión y recuperación de incidentes para ajustar las respuestas futuras.
Identificación y supervisión de indicadores clave de rendimiento de carga de trabajo
Identifique el rendimiento base y los indicadores clave de rendimiento (KPI) para sus cargas de trabajo. Utilice los KPI y logs para supervisar el estado y el rendimiento de la carga de trabajo de la aplicación.
Considere utilizar lo siguiente para supervisar el rendimiento de la carga de trabajo:
- Implantar el rastreo alrededor de llamadas de servicio
Los datos de rendimiento base pueden ayudar a proporcionar datos de tendencias que puede utilizar para identificar de forma proactiva los problemas de rendimiento antes de que afecten a los usuarios.
- Implantar comprobaciones del sistema
Ejecute comprobaciones del sistema y sondeos con regularidad desde fuera de la aplicación para identificar la degradación del estado y el rendimiento de la aplicación. Las comprobaciones de estado y los sondeos deben ser más que pruebas de página estáticas, deben reflejar el estado de la aplicación holística.
- Compruebe flujos de trabajo de larga ejecución
La detección temprana de problemas puede minimizar la necesidad de realizar un rollback de todo el flujo de trabajo o ejecutar varias transacciones de compensación.
- Mantenimiento de logs de sistema, aplicación y auditoría
Utilice un servicio de registro centralizado para almacenar y analizar los logs.
- Definición de un sistema de aviso anticipado
Identifique los indicadores clave de rendimiento (KPI) del estado de una aplicación, como las excepciones transitorias y la latencia de llamadas remotas, y defina los valores de umbral adecuados para cada una de ellas. Envíe una alerta a las operaciones cuando se alcance el valor de umbral.
- Entrenar a varios operadores para supervisar la aplicación y realizar pasos de recuperación manual
Asegúrese de que siempre haya al menos un operador entrenado activo.
- Crear políticas de escala que realicen acciones basadas en KPI
Las políticas de escalado ayudan a proporcionar un rendimiento constante para sus usuarios finales durante los períodos de alta demanda y le ayudan a reducir sus costos durante los períodos de baja demanda.
Aproveche los servicios gestionados
Utilice servicios en la nube gestionados para garantizar que sus recursos en la nube se ejecuten de manera eficiente y rentable. Su organización de TI puede descargar el trabajo pesado táctico e indiferenciado asociado con la gestión de recursos en la nube para que puedan centrarse en sus competencias básicas.
Identifique sus responsabilidades
Los proveedores de servicios en la nube documentan de qué es responsable su plataforma y de qué es responsable el cliente. Identifique las responsabilidades de sus clientes y asegúrese de contar con procedimientos operativos para cada una de estas responsabilidades.