El pilar de fiabilidad del Google Cloud framework de arquitectura proporciona principios y recomendaciones para ayudarte a diseñar, desplegar y gestionar cargas de trabajo fiables en Google Cloud.
Este documento está dirigido a arquitectos de la nube, desarrolladores, ingenieros de plataformas, administradores e ingenieros de fiabilidad de sitios.
La fiabilidad es la capacidad de un sistema para realizar de forma constante las funciones previstas en las condiciones definidas y mantener un servicio ininterrumpido. Las prácticas recomendadas para la fiabilidad incluyen la redundancia, el diseño tolerante a fallos, la monitorización y los procesos de recuperación automatizados.
Como parte de la fiabilidad, la resistencia es la capacidad del sistema para resistir y recuperarse de fallos o interrupciones inesperadas, manteniendo el rendimiento. Las funciones deGoogle Cloud , como las implementaciones multirregionales, las copias de seguridad automáticas y las soluciones de recuperación ante desastres, pueden ayudarte a mejorar la resistencia de tu sistema.
La fiabilidad es un aspecto importante de tu estrategia en la nube por muchos motivos, entre los que se incluyen los siguientes:
- Tiempo de inactividad mínimo: el tiempo de inactividad puede provocar pérdidas de ingresos, una disminución de la productividad y daños en la reputación. Las arquitecturas resilientes pueden ayudar a asegurar que los sistemas sigan funcionando durante los fallos o que se recuperen de ellos de forma eficiente.
- Experiencia de usuario mejorada: los usuarios esperan interacciones fluidas con la tecnología. Los sistemas resilientes pueden ayudar a mantener un rendimiento y una disponibilidad constantes, y proporcionan un servicio fiable incluso en momentos de gran demanda o ante problemas inesperados.
- Integridad de los datos: los fallos pueden provocar la pérdida o el daño de los datos. Los sistemas resilientes implementan mecanismos como copias de seguridad, redundancia y replicación para proteger los datos y asegurarse de que sigan siendo precisos y accesibles.
- Continuidad empresarial: tu empresa depende de la tecnología para llevar a cabo operaciones críticas. Las arquitecturas resilientes pueden ayudar a asegurar la continuidad tras un fallo catastrófico, lo que permite que las funciones empresariales continúen sin interrupciones significativas y favorece una recuperación rápida.
- Cumplimiento: muchos sectores tienen requisitos normativos sobre la disponibilidad del sistema y la protección de datos. Las arquitecturas resilientes pueden ayudarte a cumplir estos estándares, ya que garantizan que los sistemas sigan operativos y seguros.
- Reducción de los costes a largo plazo: las arquitecturas resilientes requieren una inversión inicial, pero la resiliencia puede ayudar a reducir los costes con el tiempo, ya que evita los periodos de inactividad costosos, las correcciones reactivas y permite un uso más eficiente de los recursos.
Mentalidad de organización
Para que tus sistemas sean fiables, necesitas un plan y una estrategia establecida. Esta estrategia debe incluir formación y la autoridad para priorizar la fiabilidad junto con otras iniciativas.
Deja claro que toda la organización es responsable de la fiabilidad, incluidos los departamentos de desarrollo, gestión de productos, operaciones, ingeniería de plataformas y Site Reliability Engineering (SRE). Incluso los grupos centrados en la empresa, como los de marketing y ventas, pueden influir en la fiabilidad.
Todos los equipos deben conocer los objetivos de fiabilidad y los riesgos de sus aplicaciones. Los equipos deben cumplir estos requisitos. Los conflictos entre la fiabilidad y el desarrollo de funciones de productos habituales deben priorizarse y derivarse según corresponda.
Planifica y gestiona la fiabilidad de forma integral en todas tus funciones y equipos. Te recomendamos que crees un Centro de Excelencia de Cloud (CCoE) que incluya un pilar de fiabilidad. Para obtener más información, consulta el artículo Optimizar el proceso de adopción de la nube de tu organización con un Centro de Excelencia de Cloud.
Áreas de mejora de la fiabilidad
Las actividades que llevas a cabo para diseñar, implementar y gestionar un sistema fiable se pueden clasificar en las siguientes áreas de enfoque. Cada uno de los principios y las recomendaciones de fiabilidad de este pilar se relaciona con una de estas áreas.
- Definición del ámbito: para comprender tu sistema, realiza un análisis detallado de su arquitectura. Debes conocer los componentes, cómo funcionan e interactúan, cómo fluyen los datos y las acciones por el sistema, y qué podría fallar. Identifica posibles fallos, cuellos de botella y riesgos, lo que te ayuda a tomar medidas para mitigar esos problemas.
- Observación: Para evitar fallos en el sistema, implementa una observación y una monitorización completas y continuas. Gracias a esta observación, puedes identificar tendencias y posibles problemas de forma proactiva.
- Respuesta: para reducir el impacto de los fallos, responde de forma adecuada y recupérate de forma eficiente. Las respuestas automatizadas también pueden ayudar a reducir el impacto de los fallos. Aunque se planifiquen y se apliquen controles, pueden producirse fallos.
- Aprendizaje: para evitar que se repitan los fallos, aprende de cada experiencia y toma las medidas oportunas.
Principios básicos
Las recomendaciones del pilar de fiabilidad del framework Well-Architected se corresponden con los siguientes principios básicos:
- Definir la fiabilidad en función de los objetivos de experiencia de usuario
- Fija objetivos de fiabilidad realistas
- Crear sistemas de alta disponibilidad mediante la redundancia de recursos
- Aprovechar la escalabilidad horizontal
- Detectar posibles fallos mediante la observabilidad
- Diseñar para que la degradación sea gradual
- Realizar pruebas de recuperación tras fallos
- Hacer pruebas para recuperarse de la pérdida de datos
- Realiza análisis post mortem exhaustivos
Colaboradores
Autores:
- Laura Hyatt | Ingeniera de clientes, FSI
- Jose Andrade | Ingeniero de clientes, especialista en SRE
- Gino Pelliccia | Arquitecto principal
Otros colaboradores:
- Andrés-Leonardo Martínez-Ortiz | Gestor de programas técnicos
- Brian Kudzia | Ingeniero de clientes de infraestructura empresarial
- Daniel Lees | Arquitecto de seguridad en la nube
- Filipe Gracio, doctor | Ingeniero de clientes y especialista en IA y aprendizaje automático
- Gary Harmson | Arquitecto principal
- Kumar Dhanagopal | Desarrollador de soluciones entre productos
- Marwan Al Shawi | Ingeniero de clientes de partners
- Nicolas Pintaux | Ingeniero de clientes, especialista en modernización de aplicaciones
- Radhika Kanakam | Responsable del programa Google Cloud Well-Architected Framework
- Ryan Cox | Arquitecto principal
- Samantha He | Redactora técnica
- Wade Holmes | Director de Soluciones Globales
- Zach Seils | Especialista en redes