Autor: JD Retail Liu Huiqing
I. Introducción
La alta disponibilidad de software es un tema común. "High Availability" (Alta disponibilidad) generalmente describe un sistema que ha sido especialmente diseñado para reducir el tiempo de inactividad mientras mantiene una alta disponibilidad de sus servicios. La fórmula de cálculo es: tasa de disponibilidad = ( tiempo total - tiempo no disponible ) / tiempo total.
Este artículo se centra en la perspectiva de la práctica de implementación como punto de entrada y lleva a todos a mostrar los pasos de implementación y los detalles de implementación de alta disponibilidad desde los aspectos de eficiencia de colaboración, implementación de tecnología y especificaciones de operación. Para facilitar la comprensión, primero unifiquemos el lenguaje y el vocabulario, y veamos las distintas etapas del proceso de entrega de software, como se muestra en la siguiente figura:

¿Por qué dice que la alta disponibilidad del software enfrenta muchos desafíos?
En resumen, los problemas específicos a los que nos enfrentamos son los siguientes:
2. Garantía de Eficiencia de la Colaboración
Malentendido cognitivo
De todo el enlace de entrega de demanda, podemos encontrar que a medida que el enlace aumenta paso a paso, habrá más ramas del enlace de transmisión de información y más profundo será el nivel de transmisión. Esto provoca dos problemas:
El resultado final de estos dos problemas es la reducción de la eficiencia de la colaboración.

Un estudiante sin experiencia práctica a menudo pensará que aumentar el número de personas mejorará la eficiencia de la entrega de la demanda. De hecho, esta idea no es del todo correcta.Para la relación específica, consulte la siguiente figura:

Es como construir un edificio, si una persona lo construye paso a paso, tardará 100 días en completarse. Si se invita a 100 personas a ayudar, ¿se puede construir la casa en 1 día? la respuesta es negativa.
Hay costos de colaboración, tales como: comprensión del equipo (diseñadores, albañiles, albañiles, plomeros), emparejamiento de trabajos, control de riesgos;
Hay dependencias de proceso, por ejemplo: la construcción depende del diseño, y la decoración suave siempre viene después de la decoración dura;
Hay presupuestos de costos, tales como: gradiente de talento y escala de toda la organización (contratistas, agentes, contratistas);
Todo lo anterior no se resuelve simplemente colocando mano de obra.
Especificación del proceso
La lógica subyacente de mejorar la eficiencia de la colaboración es reducir el nivel del enlace de entrega y acortar el enlace de transmisión de información, asegurando así la precisión y la eficiencia de transmisión de la información. (Aquí no se ampliará el contenido del nivel de construcción organizacional)
Esto requiere la capacidad de hacer el trabajo de hoy y completar el trabajo de hoy. A nivel organizacional esto se denomina especificación de procesos, ya nivel personal se denomina métodos de trabajo y sentido de responsabilidad.
Trate de evitar retrasar el asunto actual al siguiente enlace, de lo contrario, afectará la programación y la eficiencia de entrega de los enlaces posteriores, e incluso puede ocurrir una repetición del trabajo en casos extremos. En resumen, piensa con claridad y no entierres el agujero. Los requisitos del producto son para I + D, el diseño de I + D es para pruebas y los casos de prueba son para cada nodo de entrega, como productos. Los entregables deben ser confiables.
Garantía de aterrizaje de tres tecnologías
En el ciclo de respuesta a la demanda, la implementación de alta calidad del diseño de arquitectura, implementación de codificación, lanzamiento seguro, implementación y operación y otras etapas de producción es la premisa y la base para la implementación de software de alta disponibilidad.
diseño arquitectónico
El diseño de la arquitectura a menudo afecta el costo de implementación inicial (ROI) del sistema y la dificultad de la operación y el mantenimiento posteriores. Pertenece al diseño de nivel superior del software, que incluye tanto el esquema de diseño macro como las restricciones de paradigma en los detalles de implementación. .
Invitar a los arquitectos a participar: invitar a los arquitectos a participar en los nodos de transacciones centrales y los principales cambios en la demanda, que es la forma más directa y efectiva de cerrar el tajo;
Énfasis en los documentos de diseño: una descripción clara del esquema y la aprobación de las partes interesadas relevantes son los requisitos previos para caminar por el camino correcto.
Diseño de recuperación ante desastres: es necesario reservar una salida, pensar claramente de antemano y hacer un buen trabajo en el diseño de recuperación ante desastres. Es posible revertir, fusionar, reintentar y degradar.
Diseño robusto: diseño sin estado, diseño antipesado, diseño idempotente, diseño de consistencia de datos
Implementación de codificación
Si el diseño arquitectónico es el esqueleto, la implementación del código son los nervios, los vasos sanguíneos y los músculos. El primero determina qué tan estable y cuánto tiempo puede caminar, mientras que el segundo determina qué tan rápido y qué tan lejos puede llegar. Implementado a nivel de codificación, es el grado de envejecimiento y corrupción del código.
Mecanismo de revisión de código: la revisión de código no es tan simple como encontrar problemas en el sistema. Es un comportamiento de largo plazo y una forma y vehículo para la implementación y herencia de la cultura organizacional. Durante el proceso de revisión, se aclararon los límites de las responsabilidades comerciales, el consenso de diseño y codificación, y el excelente consenso de investigación y desarrollo orientado a estándares. Equivale a dar orientaciones específicas a través de casos concretos, que son los pilares para asegurar la eficacia combativa del equipo.
Muchos problemas en el proceso de I+D se pueden descubrir y resolver a través del mecanismo de revisión de código, como:
seguro en línea
El 70% de las fallas en línea se desencadenan por algún tipo de cambio, y una proporción considerable de ellas son causadas por una conexión irregular. Por lo tanto, conectarse en línea de manera segura es muy importante.
operación de despliegue
Un medio muy importante para lograr una alta disponibilidad es la redundancia de capacidad. La dirección y las ideas se dan a continuación, así como los detalles y estrategias de implementación específicos, que pueden ampliarse de acuerdo con situaciones específicas.
Garantía estándar de cuatro operaciones
Especificaciones de funcionamiento
Plan de emergencia
La alta disponibilidad significa poca tolerancia para el tiempo de inactividad, significa que no hay tiempo para solucionar problemas y reparar, y no hay tiempo para abrir el código para solucionar problemas de vulnerabilidad. Esto requiere que tengamos un conjunto completo de planes de emergencia, que pueden resolver la mayoría de los problemas de fallas previsibles.
Para obtener el manual detallado de manejo de emergencias de accidentes, consulte la siguiente figura:

Cumplimiento estándar
Por muy buenos que sean el proceso y las normas, debe haber un mecanismo correspondiente para implementarlas, de lo contrario, será una flor en el espejo, una luna en el agua, que se ve hermosa pero en realidad no sirve para nada. Ejecutable y medible son los requisitos previos para mejorar de acuerdo con los objetivos. Así que aquí hay una herramienta llamada "Tabla de autoinspección periódica de alta disponibilidad y cumplimiento" para ayudar en la implementación de la especificación.
cinco resumen
Este artículo aborda la pregunta "¿Por qué existe un gran desafío en la alta disponibilidad?", enfatiza la importancia de la eficiencia de la colaboración en el proceso de entrega de la demanda y señala por qué es necesario seguir el principio de trabajo de "El trabajo de hoy, el trabajo de hoy". ". Desde los aspectos de diseño de arquitectura, implementación de codificación, lanzamiento seguro, implementación y operación, etc., presenta en detalle las pautas y los detalles de implementación relacionados con la garantía de implementación de tecnología. Finalmente, desde la perspectiva de la operación posterior al lanzamiento, brinda herramientas prácticas de garantía de operación, como un plan de emergencia, una tabla de autocontrol regular, etc. Espero que pueda ayudar a los lectores.