El primer paso para crear una infraestructura fiable para tus cargas de trabajo en la nube es identificar los requisitos de fiabilidad de las cargas de trabajo. En esta parte de la Google Cloud guía de fiabilidad de la infraestructura se ofrecen directrices para ayudarte a definir los requisitos de fiabilidad de las cargas de trabajo que implementes en Google Cloud.
Determinar los requisitos específicos de la carga de trabajo
Los requisitos de fiabilidad de una aplicación dependen de la naturaleza del servicio que proporciona o del proceso que lleva a cabo. Por ejemplo, una aplicación que proporcione servicios de cajero automático para un banco podría necesitar una disponibilidad de 5 nueves. Un sitio web que admita una plataforma de trading online puede necesitar una disponibilidad de cinco nueves y un tiempo de respuesta rápido. Un proceso por lotes que escribe transacciones bancarias en un libro de contabilidad al final de cada día puede tener un objetivo de actualización de datos de ocho horas.
En una aplicación, los componentes u operaciones individuales pueden tener requisitos de fiabilidad diferentes. Por ejemplo, una aplicación de procesamiento de pedidos puede necesitar una mayor fiabilidad para las operaciones que escriben datos en la base de datos de pedidos en comparación con las solicitudes de lectura.
Evaluar los requisitos de fiabilidad de tus cargas de trabajo de forma granular te ayuda a centrar tu inversión y esfuerzo en las cargas de trabajo que son críticas para tu empresa.
Identificar periodos críticos
Puede haber periodos en los que una aplicación sea más importante para la empresa que en otros momentos. Estos periodos suelen ser los momentos en los que la aplicación tiene la carga máxima. Identifica estos periodos, planifica una capacidad adecuada y prueba la aplicación en condiciones de carga máxima. Para evitar el riesgo de interrupciones de las aplicaciones durante los periodos de carga máxima, puedes usar prácticas operativas adecuadas, como congelar el código de producción.
A continuación, se muestran ejemplos de aplicaciones que experimentan picos de carga estacionales:
- El módulo de inventario de una aplicación de contabilidad financiera se suele usar más los días en los que se programan las auditorías de inventario mensuales, trimestrales o anuales.
- Un sitio web de comercio electrónico experimentaría picos significativos de carga durante las temporadas de compras o los eventos promocionales.
- Una base de datos que admita el módulo de admisión de alumnos de una universidad tendría un gran volumen de operaciones de escritura durante ciertos meses de cada año.
- Un servicio online de presentación de impuestos tendría una carga alta durante la temporada de presentación de impuestos.
- Una plataforma de trading online puede necesitar una disponibilidad del 99,999 % y un tiempo de respuesta rápido, pero solo durante las horas de trading (por ejemplo, de 8:00 a 17:00 de lunes a viernes).
Tener en cuenta otros requisitos no funcionales
Además de los requisitos de fiabilidad, las aplicaciones empresariales pueden tener otros requisitos no funcionales importantes en cuanto a seguridad, rendimiento, coste y eficiencia operativa. Cuando evalúes los requisitos de fiabilidad de una aplicación, ten en cuenta las dependencias y las compensaciones con estos otros requisitos.
A continuación se indican algunos ejemplos de requisitos que no están relacionados con la fiabilidad, pero que pueden implicar concesiones con los requisitos de fiabilidad.
- Optimización de costes: para optimizar los costes de TI, tu organización puede imponer cuotas para determinados recursos de la nube. Por ejemplo, para reducir el coste de las licencias de software de terceros, tu organización puede definir cuotas para el número de núcleos de computación que se pueden aprovisionar. Se pueden aplicar cuotas similares a la cantidad de datos que se pueden almacenar y al volumen de tráfico de red entre regiones. Ten en cuenta los efectos de estas restricciones de costes en las opciones disponibles para diseñar una infraestructura fiable.
- Residencia de los datos: para cumplir los requisitos normativos, es posible que tu aplicación tenga que almacenar y tratar datos en países concretos, aunque la empresa preste servicios a usuarios de todo el mundo. Ten en cuenta estas restricciones de residencia de datos al decidir las regiones y las zonas en las que se pueden desplegar tus aplicaciones.
Algunas decisiones de diseño que tomes para cumplir otros requisitos pueden ayudarte a mejorar la fiabilidad de tus aplicaciones. A continuación, se muestran algunos ejemplos:
- Automatización del despliegue: para operar tus despliegues en la nube de forma eficiente, puedes automatizar el flujo de aprovisionamiento mediante la infraestructura como código (IaC). Del mismo modo, puedes automatizar el proceso de compilación y despliegue de la aplicación mediante un flujo de procesamiento de integración continua y despliegue continuo (CI/CD). El uso de IaC y flujos de procesamiento de CI/CD puede ayudar a mejorar no solo la eficiencia operativa, sino también la fiabilidad de tus cargas de trabajo.
- Controles de seguridad: los controles de seguridad que implementes también pueden ayudar a mejorar la disponibilidad de la aplicación. Por ejemplo, las políticas de seguridad de Google Cloud Armor pueden ayudar a que la aplicación siga estando disponible durante los ataques de denegación de servicio (DoS).
- Almacenamiento en caché de contenido: para mejorar el rendimiento de una aplicación que sirve contenido, puedes habilitar el almacenamiento en caché como parte de la configuración del balanceador de carga. Con este diseño, los usuarios no solo disfrutan de un acceso más rápido al contenido, sino también de una mayor disponibilidad. Pueden acceder al contenido almacenado en caché incluso cuando los servidores de origen no funcionan.
Reevaluar los requisitos periódicamente
A medida que tu empresa evoluciona y crece, los requisitos de tus aplicaciones pueden cambiar. Reevalúa periódicamente tus requisitos de fiabilidad y asegúrate de que se ajustan a los objetivos y prioridades de tu organización.
Imagina una aplicación que ofrece un nivel de disponibilidad estándar a todos los usuarios. Puede que hayas desplegado la aplicación en dos zonas de una región, con un balanceador de carga regional como frontend. Si tu organización tiene previsto lanzar una opción de servicio premium que proporcione una mayor disponibilidad, los requisitos de fiabilidad de la aplicación habrán cambiado. Para cumplir los nuevos requisitos de disponibilidad, es posible que tengas que desplegar la aplicación en varias regiones y usar un balanceador de carga mundial con Cloud CDN habilitado.
Otra oportunidad para volver a evaluar los requisitos de disponibilidad de tus aplicaciones es después de que se produzca una interrupción. Las interrupciones pueden poner de manifiesto las expectativas dispares de los diferentes equipos de tu empresa. Por ejemplo, un equipo podría considerar aceptable una interrupción de 45 minutos una vez al año (es decir, una disponibilidad anual del 99,99 %). Sin embargo, otro equipo podría esperar un tiempo de inactividad máximo de 4,3 minutos al mes (es decir, una disponibilidad mensual del 99,99 %). En función de cómo decidas modificar o aclarar los requisitos de disponibilidad, deberás ajustar tu arquitectura para cumplir los nuevos requisitos.