Mi máquina virtual extra pequeña actual alcanza los límites, así que decidí crear una segunda instancia extra pequeña y agregar las dos a un conjunto de disponibilidad para que mi servicio esté disponible en todo momento y, a través del equilibrador de carga, también se equilibre la carga. Mi pregunta es ¿sabes qué pasará con los datos? ¿Será igual en ambos? ¡Porque necesito los mismos datos disponibles en ambos! Por ejemplo:
Solicitud1 -> vm1 -> agrega datos Solicitud2 -> vm2 -> desea leer los datos que se colocaron primero en vm1
O incluso mucho más simple: si ejecuto un blog de WordPress y agrego un blog, ¡debe estar disponible en ambos!
Michi
Respuesta1
Cada máquina virtual está respaldada por su propio VHD, que reside en un Page Blob en Azure Storage. Este no es un buen lugar para almacenar ningún tipo de contenido que deba compartirse entre varias instancias (y el estado de la sesión en proceso también se limitará a la instancia en ejecución de esa máquina virtual). Debe almacenar el estado de su sesión y cualquier otro dato persistente en un lugar común accesible para ambas máquinas virtuales, pero nonoalmacene el contenido directamente en el disco principal del VHD o en el disco temporal.
Para el estado de la sesión, puede configurar fácilmente la base de datos SQL de Windows Azure (básicamente sql-as-a-service) y utilizarla como su proveedor de estado de la sesión. O podrías ejecutar Memcached, usar Table Storage o elegir algo completamente diferente. Dejaré otras ideas a tu imaginación.
Lo mismo ocurre con la ejecución de WordPress: el contenido debería estar en un almacén de datos común. Dado que WordPress usa MySQL, puede configurar MySQL en una instancia de máquina virtual independiente o suscribirse a una base de datos MySQL a través de Azure Store.
Otra opción es almacenar contenido en Blob Storage, que es completamente independiente de cualquier máquina virtual que cree y de muy fácil acceso. El almacenamiento de blobs, junto con el almacenamiento de tablas, tiene una excelente compatibilidad con SDK de lenguaje creado sobre la API REST (actualmente SDK de .net, php, java, python, node y ruby). Puede obtener el SDK de su elección desde Azuredescargarpágina. También puede leer el código fuente, en elrepositorio de github.