Minha VM extra pequena atual atinge os limites, então decidi criar uma segunda instância extra pequena e adicionar as duas em um conjunto de disponibilidade para que meu serviço esteja sempre disponível e através do balanceador de carga a carga também seja balanceada. Minha pergunta é saber o que acontecerá com os dados? Será nos dois iguais? Porque preciso dos mesmos dados disponíveis em ambos! Por exemplo:
Request1 -> vm1 -> adiciona dados Request2 -> vm2 -> deseja ler os dados que foram colocados primeiramente em vm1
Ou ainda mais simples: se eu tiver um blog wordpress e adicionar um blog, ele deve estar disponível em ambos!
Michi
Responder1
Cada máquina virtual é apoiada pelo seu próprio vhd, que reside num Page Blob no Azure Storage. Este não é um bom local para armazenar qualquer tipo de conteúdo que precise ser compartilhado entre várias instâncias (e o estado da sessão em processo também será limitado à instância em execução dessa máquina virtual). Você precisa armazenar o estado da sua sessão e quaisquer outros dados persistentes em um local comum acessível a ambas as máquinas virtuais, mas faça issonãoarmazene o conteúdo diretamente no disco principal do vhd ou no disco temporário.
Para o estado da sessão, você pode configurar facilmente o Banco de Dados SQL do Windows Azure (basicamente sql-as-a-service) e usá-lo como seu provedor de estado da sessão. Ou você pode executar o memcached, usar o Table Storage ou escolher algo totalmente diferente - deixarei outras ideias para sua imaginação.
O mesmo vale para a execução do WordPress – o conteúdo precisaria estar em um armazenamento de dados comum. Como o WordPress usa MySQL, você pode configurar o MySQL em uma instância de máquina virtual independente ou assinar um banco de dados MySQL por meio da Azure Store.
Uma outra opção é armazenar conteúdo no armazenamento Blob, que é totalmente independente de qualquer máquina virtual que você criar e muito fácil de acessar. O armazenamento de blobs, junto com o armazenamento de tabelas, tem excelente suporte a SDK de linguagem criado sobre a API REST (atualmente SDKs .net, php, java, python, node e ruby). Você pode obter o SDK de sua escolha no Azuredownloadpágina. Você também pode ler o código-fonte, norepositório do github.