El primer paso para compilar una infraestructura confiable en tus cargas de trabajo en la nube es identificar los requisitos de confiabilidad de estas. En esta parte de la guía de confiabilidad de infraestructura de Google Cloud, se proporcionan lineamientos para ayudarte a definir los requisitos de confiabilidad de las cargas de trabajo que implementas en Google Cloud.
Determina los requisitos específicos de la carga de trabajo
Los requisitos de confiabilidad de una aplicación dependen de la naturaleza del servicio que proporciona o del proceso que realiza. Por ejemplo, una aplicación que proporciona servicios de cajero automático para un banco puede necesitar disponibilidad de 5 nueves. Un sitio web compatible con una plataforma de comercio en línea puede necesitar disponibilidad de cinco nueves y un tiempo de respuesta rápido. Un procesamiento por lotes que escribe transacciones bancarias en un registro contable al final de cada día puede tener un objetivo de actualidad de datos de ocho horas.
Dentro de una aplicación, las operaciones o los componentes individuales pueden tener diferentes requisitos de confiabilidad. Por ejemplo, puede que una aplicación de procesamiento de pedidos necesite mayor confiabilidad 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 confiabilidad de tus cargas de trabajo de forma detallada te ayudará a enfocar tus gastos y esfuerzo en las cargas de trabajo fundamentales para tu empresa.
Identifica los períodos críticos
Es posible que haya períodos en los que una aplicación sea más importante que en otros momentos. Estos períodos suelen ser los momentos en que la aplicación tiene una carga máxima. Identifica estos períodos, planifica la capacidad adecuada y prueba la aplicación en función de las condiciones de carga máxima. Para evitar el riesgo de interrupciones de la aplicación durante los períodos de carga máxima, puedes usar prácticas operativas adecuadas, como inmovilizar el código de producción.
Los siguientes son ejemplos de aplicaciones que experimentan aumentos de temporada en la carga:
- El módulo de inventario de una aplicación de contabilidad financiera suele usarse con más frecuencia los días en que se programan las auditorías de inventario mensuales, trimestrales o anuales.
- Un sitio web de comercio electrónico tendría aumentos repentinos de carga durante las temporadas de compra máxima o los eventos promocionales.
- Una base de datos que admita el módulo de admisión de estudiantes de una universidad tendría un gran volumen de operaciones de escritura durante ciertos meses de cada año.
- Un servicio de archivado de impuestos en línea tendría una carga alta durante la temporada de presentación de impuestos.
- Una plataforma de operaciones en línea puede necesitar una disponibilidad de 5 nueves y un tiempo de respuesta rápido, pero solo durante el horario de atención (por ejemplo, de 8 a.m. a 5 p.m., de lunes a viernes).
Considera otros requisitos no funcionales
Además de los requisitos de confiabilidad, las aplicaciones empresariales pueden tener otros requisitos no funcionales importantes para la seguridad, el rendimiento, el costo y la eficiencia operativa. Cuando evalúes los requisitos de confiabilidad de una aplicación, considera las dependencias y las compensaciones con estos otros requisitos.
Los siguientes son ejemplos de requisitos que no son confiables, pero que pueden generar compensaciones con los requisitos de confiabilidad.
- Optimización de costos: Para optimizar los costos de TI, tu organización podría imponer cuotas a ciertos recursos de la nube. Por ejemplo, para reducir el costo de las licencias de software de terceros, tu organización podría establecer cuotas para la cantidad de núcleos de procesamiento que se pueden aprovisionar. Existen cuotas similares para la cantidad de datos que pueden almacenarse y el volumen de tráfico de red entre regiones. Considera los efectos de estas restricciones de costos en las opciones disponibles para diseñar una infraestructura confiable.
- Residencia de datos: Para cumplir con los requisitos reglamentarios, es posible que la aplicación necesite almacenar y procesar datos en países específicos, incluso si la empresa presta servicios a usuarios a nivel global. Ten en cuenta estas restricciones de residencia de datos cuando decidas las regiones y zonas en las que se pueden implementar tus aplicaciones.
Algunas decisiones de diseño que tomes para cumplir con otros requisitos pueden ayudar a mejorar la confiabilidad de tus aplicaciones. Estos son algunos ejemplos:
- Automatización de la implementación: Para operar las implementaciones en la nube de manera eficiente, puedes decidir automatizar el flujo de aprovisionamiento mediante la infraestructura como código (IaC). Del mismo modo, puedes automatizar el proceso de compilación y de implementación de la aplicación mediante una canalización de integración continua y de implementación continua (CI/CD). El uso de canalizaciones de IaC y de CI/CD puede ayudar a mejorar no solo la eficiencia operativa, sino también la confiabilidad 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 garantizar que la aplicación permanezca disponible durante los ataques de denegación del servicio (DoS).
- Almacenamiento en caché del contenido: Para mejorar el rendimiento de una aplicación de entrega de contenido, puedes habilitar el almacenamiento en caché como parte de la configuración del balanceador de cargas. Con este diseño, los usuarios experimentan un acceso más rápido al contenido y una mayor disponibilidad. Pueden acceder al contenido almacenado en caché incluso cuando los servidores de origen están inactivos.
Vuelve a evaluar los requisitos de forma periódica
A medida que tu empresa evolucione y crezca, los requisitos de tus aplicaciones podrían cambiar. Vuelve a evaluar los requisitos de confiabilidad de forma periódica y asegúrate de que se alineen con los objetivos y las prioridades empresariales actuales de la organización.
Considera una aplicación que proporcione un nivel de disponibilidad estándar para todos los usuarios. Es posible que hayas implementado la aplicación en dos zonas dentro de una región, con un balanceador de cargas regional como frontend. Si tu organización planea iniciar una opción de servicio premium que proporcione una mayor disponibilidad, los requisitos de confiabilidad de la aplicación cambiaron. Para cumplir con los requisitos de disponibilidad nuevos, es posible que debas implementar la aplicación en varias regiones y usar un balanceador de cargas global con Cloud CDN habilitado.
Otra oportunidad para volver a evaluar los requisitos de disponibilidad de tus aplicaciones es después de una interrupción. Las interrupciones pueden exponer las expectativas no coincidentes en diferentes equipos dentro de tu empresa. Por ejemplo, un equipo puede considerar una interrupción de 45 minutos una vez al año (es decir, un 99.99% de disponibilidad anual) cuando sea aceptable. Sin embargo, otro equipo puede esperar un tiempo de inactividad máximo de 4.3 minutos por mes (es decir, una disponibilidad del 99.99% mensual). Según cómo decidas modificar o aclarar los requisitos de disponibilidad, debes ajustar la arquitectura para que cumpla con los requisitos nuevos.