¿Cómo manejan las arquitecturas distribuidas la interoperabilidad entre diferentes versiones del software en diferentes nodos?

Depende.

Para las máquinas de estado replicadas, se incluyen comandos de cambio de versión (actualización y retroceso a las versiones siguiente y anterior) y se ramifica el código lógico en el árbol de origen cada vez que se libera / implementa en un entorno de producción para que los nuevos archivos binarios retengan el código de máquina de estado _exact_ con compatibilidad de error por error.

Actualiza el software en todos los nodos disponibles y descarga un comando de actualización en la máquina de estado. Cuando eso tenga éxito, puede continuar ejecutando operaciones locales más largas necesarias para aprovechar al máximo la nueva funcionalidad en un subconjunto rodante de sus nodos que conserva su rendimiento + confiabilidad + garantías de disponibilidad.

Lo hice cuando cambié el subsistema de metadatos persistente y la cantidad de almacenamiento utilizable para un dispositivo de almacenamiento de bloques distribuido.

En otras situaciones, usted mantiene el software compatible con versiones anteriores para al menos una versión, el software hace lo correcto en función de lo que admiten sus pares, y despliega la actualización de una manera que no comprometa su SLA. Elegir qué actualizar en función del tiempo (tal vez lógico como en el recuento de operaciones) o un enfoque estadístico (10% de posibilidades de actualización de un nodo el primer día, 20% el siguiente, etc.) son formas fáciles de tener una probabilidad suficientemente alta de aceptación Impacto en el rendimiento.

Lo hice al agregar optimizaciones WAN a un producto de respaldo en la nube de nivel empresarial.

Dependiendo del software.
Me gusta el escenario de actualizaciones sucesivas, cuando la actualización pasa a todos los nodos, si están en alta disponibilidad maestro-esclavo, solo actualice los esclavos primero. En los verdaderos sistemas distribuidos maestro-maestro, es bueno tener las actualizaciones de software controladas por el propio software, poniendo la instancia que se actualizará al estado pasivo. También mantener interoperabilidad entre versiones menores es una buena práctica. Siempre tenga el plan B para revertir los cambios.

More Interesting

¿Cómo ha cambiado Cloud Computing la forma en que se implementa la infraestructura de TI?

Cómo lograr DR en la nube de AWS de una manera rentable

¿Qué proveedor de la nube proporcionará los mejores costos y beneficios de rendimiento para mi organización?

¿Cómo obtienen las empresas de alojamiento web diferentes IP de clase C y soluciones de alojamiento?

¿Qué tan difícil es transferir el código del motor de la aplicación Google a Amazon EC2?

¿Qué software de administración en la nube están usando las personas hoy en día? ¿Cuáles son sus usos comunes?

¿Cuál es la mejor manera de aprender los sistemas en la nube y la seguridad en la nube?

Como desarrollador de Java, ¿qué oferta de PaaS debo considerar?

¿Cómo será beneficiosa la computación en la nube para integrar Salesforce?

¿Cuáles son algunos buenos usos para Amazon WorkSpaces?

¿Cuál fue el factor decisivo para usar Azure Web Apps frente a una VM que ejecuta IIS? ¿Qué método de almacenamiento persistente utilizó si eligió el primero?

Como desarrollador de Python, ¿qué es lo mejor para elegir como una opción de carrera de desarrollo web y plataformas de computación en la nube?

¿Cuál es la mejor manera de aprender computación en la nube? Soy un profesional del software con 10 años de experiencia.

¿Qué es la certificación AWS? Actualmente soy un recurso de Java, ¿AWS me ayudará a impulsar mi carrera?

¿Cuántas conexiones puede manejar Amazon EC2 Free Tier? ¿Puedo comenzar con EC2 Free Tier antes de buscar financiación?