Computación en la nube: de los principios de infraestructura a las mejores prácticas: tolerancia a fallas y alta disponibilidad de la computación en la nube

Autor: Zen y el arte de la programación informática

1. Introducción

Descripción general

La palabra "nube" se ha convertido en un tema candente en la industria de Internet. Aunque actualmente la "nube" no es equivalente a la tecnología de computación en la nube en el verdadero sentido, sí brinda servicios más convenientes, rápidos y convenientes a las personas. La computación en la nube utiliza una gran cantidad de recursos informáticos distribuidos para lograr una rápida implementación y automatización de varios negocios, lo que mejora en gran medida la eficiencia del trabajo de varias organizaciones. Sin embargo, la propia plataforma en la nube también tiene muchos peligros y limitaciones ocultos. A nivel de hardware, un único punto de falla puede hacer que toda la plataforma no esté disponible; a nivel de software, las aplicaciones que se ejecutan en el entorno de la nube a menudo experimentan varios errores o anomalías, lo que dificulta la resolución de problemas y la recuperación cuando ocurren fallas en el servicio. Cómo reducir la tasa de fallas y la disponibilidad de las plataformas de computación en la nube se ha convertido en un área de investigación candente en la actualidad.

Con base en esto, compilé un artículo de blog técnico titulado "Computación en la nube: de los principios de infraestructura a las mejores prácticas: tolerancia a fallas y alta disponibilidad de la computación en la nube" para mostrar a los lectores los últimos resultados de las investigaciones sobre la tolerancia a fallas y la alta disponibilidad de la computación en la nube. El artículo profundizará en los principios básicos de la arquitectura de la computación en la nube, las definiciones de tolerancia a fallas y alta disponibilidad, los principios de tolerancia a fallas de sistemas distribuidos y soluciones específicas, y combinará casos prácticos para mostrar los escenarios de aplicación reales de tolerancia a fallas y alta disponibilidad. Espero que pueda inspirar a los lectores y ayudarlos a comprender de manera más integral el contenido y los principios de la tolerancia a fallas y la alta disponibilidad de la computación en la nube.

Sobre el Autor

Texto/Yang Tao

Ph.D., jefe del centro de computación en la nube, uno de los líderes, presidente de Microsoft China. Alguna vez trabajó para AsiaInfo Technology, China Mobile Internet Company, y actualmente es el director ejecutivo de Microsoft China. Las principales áreas de investigación incluyen computación en la nube, big data, aprendizaje automático, seguridad de datos y tecnología blockchain. Tiene una investigación profunda y experiencia práctica en tolerancia a fallas de sistemas distribuidos y alta disponibilidad, y es competente en diseño y teoría de sistemas distribuidos. Ha participado en el diseño del sistema de almacenamiento de alta disponibilidad de Microsoft China (MSRA) y la falla. -mecanismo de tolerancia de la plataforma en la nube Microsoft Azure. También es autor correspondiente de Publisher, una editorial de libros de TI de renombre internacional.

1. Descripción general de la computación en la nube

La computación en la nube utiliza el intercambio de recursos de red, servidores y software para proporcionar servicios de computación, almacenamiento y bases de datos confiables, flexibles y escalables en un modelo de pago por uso. Los usuarios pueden disfrutar de la comodidad que brinda la red sin comprar ni mantener costosos servidores físicos. Solo necesitan utilizar los recursos proporcionados de acuerdo con sus necesidades, sin tener que considerar los aspectos engorrosos de la configuración, instalación, implementación, operación y mantenimiento del hardware subyacente.

Las ventajas de la computación en la nube se reflejan principalmente en los siguientes aspectos:

  • Pago por uso : los usuarios sólo necesitan pagar por los recursos que realmente utilizan para obtener los servicios que necesitan. Este enfoque reduce significativamente el gasto total en servicios de computación en la nube.
  • Escalado elástico : los servicios de computación en la nube son muy elásticos y los usuarios pueden ajustar fácilmente la escala de las cargas de trabajo aumentando o disminuyendo la cantidad de recursos.
  • Facturación de pago por uso : los usuarios solo pagan por el tiempo que utilizan los recursos de computación en la nube, evitando costosas inversiones iniciales y gastos operativos a largo plazo.

Con la aplicación generalizada de la computación en la nube, cada vez más empresas están migrando sus aplicaciones a la nube y entregando recursos de hardware y software a proveedores externos. Los proveedores de servicios en la nube serán responsables del mantenimiento de las plataformas, servidores y equipos de red. trabajos de gestión y operación y mantenimiento que permitan a los clientes obtener un mayor valor. Por tanto, la computación en la nube se ha convertido gradualmente en un modelo de servicio necesario para las empresas.

2. Infraestructura de computación en la nube

(1) Arquitectura de infraestructura de computación en la nube

La arquitectura de infraestructura de la computación en la nube se divide en tres capas:

  • La primera capa: capa de red. Proporciona principalmente funciones como acceso a Internet, equilibrio de carga y resolución de DNS.
  • La segunda capa: capa informática. Proporciona principalmente recursos informáticos de hardware para nodos de computación en la nube, como CPU, memoria, disco, etc.
  • La tercera capa: capa de almacenamiento. Proporcionar servicios de almacenamiento para nodos de computación en la nube, como el sistema de archivos de red NFS y el almacenamiento de archivos compartido SAN.

(2) Arquitectura de red de computación en la nube

La arquitectura de la red de computación en la nube se divide en dos niveles:

  • Red en la nube dentro del centro de datos. Los usuarios acceden a los servicios de computación en la nube a través de Internet, utilizando generalmente conexiones de redes públicas.
  • Red en la nube entre centros de datos en todas las regiones. Se utiliza principalmente para múltiples actividades en ubicaciones remotas para mejorar la continuidad del negocio.

(3) Arquitectura del software de computación en la nube

La arquitectura del software de computación en la nube se divide en cinco capas:

  • La primera capa: capa de software básica. Incluye principalmente componentes centrales como el sistema operativo, el software de virtualización y la pila de protocolos de red.
  • La segunda capa: capa de servicio en la nube. Proporciona principalmente servicios básicos en la nube, como contenedores, máquinas virtuales y servicios de bases de datos.
  • La tercera capa: capa de marco de aplicación. Proporciona principalmente marcos de desarrollo de aplicaciones, como proyectos de código abierto como Apache Hadoop, Apache Spark y Kubernetes.
  • La cuarta capa: capa de herramientas. Proporciona principalmente herramientas de desarrollo, depuración y monitoreo, como proyectos de código abierto como Visual Studio Code, Postman y Nagios.
  • La quinta capa: capa empresarial. Proporciona principalmente sistemas empresariales, incluidas aplicaciones web, aplicaciones móviles y aplicaciones de IoT.

3. Tolerancia a fallos y alta disponibilidad de la computación en la nube

(1) Definición de tolerancia a fallas

La tolerancia a fallas (tolerancia a fallas) se refiere a la capacidad de un sistema para mantener un funcionamiento normal incluso cuando se encuentra con ciertos factores de fuerza mayor o eventos inesperados que causan fallas. En términos generales, la tolerancia a fallos se puede dividir en dos tipos:

  • Tolerancia a desastres: es decir, el sistema puede continuar funcionando y no colapsará incluso si ocurre una emergencia a gran escala, e incluso se puede garantizar la integridad de los datos.
  • Tolerancia a fallas comerciales: es decir, el sistema puede funcionar normalmente cuando se trata de negocios y continuar brindando servicios a los clientes, incluso si un componente falla o la red está congestionada, la calidad del servicio no se verá afectada.

La tolerancia a fallos en un entorno de computación en la nube se puede dividir en los siguientes niveles:

  • Tolerancia a fallas de hardware: es decir, los nodos del sistema pueden cambiar automáticamente después de una falla para garantizar el funcionamiento continuo del sistema.
  • Tolerancia a fallas de software: es decir, los módulos de software del sistema pueden recuperarse automáticamente después de una falla para evitar la parálisis del sistema causada por ella, como errores en el software de la plataforma de computación en la nube.
  • Tolerancia a fallas de datos: la copia de seguridad redundante de los datos almacenados del sistema puede evitar la pérdida de datos y garantizar la seguridad de los datos comerciales.

(2) Principio de tolerancia a fallos

1. Tolerancia a fallas del nodo

La tolerancia a fallos de los nodos se basa principalmente en copias de seguridad redundantes de recursos de hardware, implementación de múltiples hosts y conmutación automática de servicios. Como se muestra abajo:

Los métodos básicos de tolerancia a fallos de nodos son:

  • Proporcionar nodos redundantes: los nodos redundantes pueden proporcionar múltiples nodos con la misma configuración de hardware y pueden cambiar automáticamente cuando ocurren problemas.
  • Cambio automático de servicio: el cambio automático de servicio puede cambiar activamente a otro nodo cuando ocurre un problema en un solo nodo.
  • Pruebe la tolerancia a fallas: la prueba de tolerancia a fallas puede simular la falla del nodo a nivel de software y verificar la confiabilidad del sistema.
2. Tolerancia a fallos del software

La tolerancia a fallas del software se logra mediante copias de seguridad redundantes y reinicio dinámico de los servicios. Como se muestra abajo:

Los métodos básicos de tolerancia a fallos de software son:

  • Copia de seguridad redundante: implemente el mismo software en diferentes máquinas físicas e implemente las instancias de servicio correspondientes respectivamente. Puede cambiar a otro host cuando ocurre un problema en un solo host.
  • Reinicio dinámico de servicios: el reinicio dinámico de servicios puede mejorar la disponibilidad de los servicios y los servicios pueden continuar brindándose incluso si algunas instancias de servicio fallan.
3. Tolerancia a fallos de datos

La tolerancia a fallas de datos se logra principalmente mediante tecnologías de replicación y duplicación de datos. Como se muestra abajo:

Los métodos básicos de tolerancia a fallas de datos son:

  • Replicación de datos: almacene datos a través de múltiples copias, que pueden cambiar automáticamente y continuar brindando servicios incluso si hay un problema con una de las copias.
  • Duplicación de datos: la generación de copias de datos en tiempo real a través de la duplicación permite a los usuarios restaurar datos rápidamente cuando se pierden.

(3) Proceso de implementación de tolerancia a fallas

El proceso de implementación de la tolerancia a fallas se puede dividir en tres etapas: preparación de tolerancia a fallas, simulacro de tolerancia a fallas y ejecución de tolerancia a fallas. La fase de preparación de tolerancia a fallos generalmente completa las siguientes tareas:

  • Recopile información de tolerancia a fallas: recopile toda la información relevante del sistema, como registros de fallas, configuración del hardware del nodo, configuración de componentes, etc.
  • Analice los requisitos de tolerancia a fallas: analice qué condiciones deben cumplirse para la tolerancia a fallas, como requisitos de tiempo, requisitos de disponibilidad, requisitos de reparabilidad, etc.
  • Desarrollar una estrategia de tolerancia a fallas: desarrollar una estrategia de tolerancia a fallas y determinar objetivos de tolerancia a fallas, procesos y medidas de tolerancia a fallas según las necesidades.
  • Configure medidas de tolerancia a fallas: de acuerdo con la estrategia de tolerancia a fallas, configure herramientas de automatización, como herramientas de monitoreo, herramientas de alarma, scripts de tolerancia a fallas, etc.

La etapa de simulacro de tolerancia a fallas es posterior a la etapa de preparación de tolerancia a fallas, donde los procesos y medidas de tolerancia a fallas se exploran de acuerdo con las condiciones reales. incluir:

  • Practique los preparativos de tolerancia a fallas: practique los preparativos de tolerancia a fallas en un entorno real y evalúe la efectividad del trabajo de tolerancia a fallas.
  • Ejercicios de simulacros y tolerancia a fallas: los laboratorios de simulacros y ejercicios simulan varios escenarios de fallas y verifican la efectividad de las estrategias de tolerancia a fallas.
  • Profundice el plan de tolerancia a fallas: profundice la estrategia de tolerancia a fallas, observe el efecto de la tolerancia a fallas y modifique la estrategia de acuerdo con la situación real.

La fase de ejecución tolerante a fallas tiene como objetivo promover la estrategia tolerante a fallas en el entorno de producción, que incluye:

  • Ejecute el plan de tolerancia a fallas: configure la estrategia de tolerancia a fallas en el módulo del sistema correspondiente, mantenga registros y reserve tiempo de tolerancia a fallas con anticipación.
  • Pruebe la tolerancia a fallas: presente probadores para ayudarlos en las pruebas del sistema y verificar si hay fallas.
  • Manejo de problemas: después de descubrir el problema, analice la causa del problema y adopte las soluciones correspondientes.
  • Mejorar las medidas de tolerancia a fallos: mejorar y optimizar los problemas, y mejorar los procesos y medidas de tolerancia a fallos.

(4) Escenarios de aplicaciones tolerantes a fallas

1. Fallo del nodo

Las fallas de los nodos incluyen fallas de hardware y fallas de software. Como se muestra abajo:

2. Fallo del servicio

Las fallas del servicio incluyen parada del servicio, retraso del servicio, falta de disponibilidad del servicio, etc. Como se muestra abajo:

3. Fallo de la red

Las fallas de la red incluyen errores de enrutamiento, errores de la capa de transporte, etc. Como se muestra abajo:

4. Fallo de datos

Las fallas de datos incluyen datos almacenados faltantes, problemas de integridad de datos, corrupción de datos, etc. Como se muestra abajo:

(5) Alta disponibilidad de la computación en la nube

La alta disponibilidad de la computación en la nube se refiere principalmente a la capacidad del sistema para operar normalmente y restaurar rápidamente los servicios cuando sea necesario para evitar interrupciones o tiempos de inactividad. Aquí tomamos como ejemplo la falla de un nodo informático para describir la alta disponibilidad de la computación en la nube.

Para lograr una alta disponibilidad de la computación en la nube, la plataforma de computación en la nube debe implementar las siguientes funciones:

  • Nodos redundantes: la plataforma de computación en la nube puede proporcionar múltiples conjuntos de nodos informáticos con la misma configuración de hardware, de modo que se pueda lograr la conmutación automática.
  • Software de alta disponibilidad: el software proporcionado en la plataforma de computación en la nube, como bases de datos, colas de mensajes, cachés, etc., debe tener alta disponibilidad.
  • Red confiable: la red de la plataforma de computación en la nube debe construirse sobre una estructura de red redundante para evitar puntos únicos de falla.
  • Datos de alta disponibilidad: los datos en las plataformas de computación en la nube deben construirse sobre estructuras de almacenamiento redundantes para evitar puntos únicos de falla.
  • Autorreparación del servicio: las plataformas de computación en la nube deben poder detectar y reparar automáticamente los nodos fallidos y restaurar rápidamente los servicios.

El diseño de alta disponibilidad de la computación en la nube se puede dividir en los tres niveles siguientes:

  • Capa del centro de datos: centrada principalmente en la alta disponibilidad dentro del centro de datos, como la falla del nodo y la autorreparación.
  • Sincronización entre centros de datos: se centra principalmente en el mecanismo de sincronización entre centros de datos, como la conmutación de nodos activos y en espera.
  • Capa de aplicación: Centrada principalmente en la disponibilidad de la plataforma de computación en la nube, como la invocación y respuesta de servicios.

Supongo que te gusta

Origin blog.csdn.net/universsky2015/article/details/133446727
Recomendado
Clasificación