Como faço para que um aplicativo da Web baseado em nuvem seja acessível internamente no caso de uma interrupção na Internet?

5

Eu tenho um aplicativo da Web Java suportado por um banco de dados. Ambos estão hospedados no Amazon EC2. Se a Internet estiver inativa, preciso permitir que os usuários internos possam continuar a trabalhar e, de alguma forma, atualizar o serviço hospedado quando a Internet estiver disponível novamente. Isso é possível? Como eu projetaria essa solução?

    
por bobby 15.03.2013 / 18:42
fonte

1 resposta

4

Ao lidar com uma aplicação web, há dois componentes de interesse primário - o servidor e a rede.

Um aplicativo da Web java é executado em um servidor de aplicativos (esse é um aplicativo como jBoss, Weblogic ou jetty independente) em um servidor (linux, windows, etc ...).

Se o servidor de aplicativos não estiver em execução, os aplicativos dentro dele não estarão em execução e você não poderá se conectar a eles. Isso é verdade, não importa se os aplicativos dentro deles estão fornecendo serviços da Web ou páginas da Web mais tradicionais.

Se o próprio servidor estiver inativo, os aplicativos em execução no servidor (o servidor de aplicativos, o banco de dados e similares) não estão em execução.

Se a rede entre você e o servidor estiver inoperante, bem, a rede está inativa e você não pode se conectar aos aplicativos (não importa se eles estão sendo executados ou não).

A abordagem padrão para lidar com o servidor é a redundância - colocar o aplicativo em vários servidores para que, se alguém não conseguir se conectar, tente se conectar a outro. Isso não garante que funcionará sempre (uma indisponibilidade de rede em uma área ampla o suficiente ou um problema em cascata na computação em nuvem pode levar vários sistemas offline).

Os detalhes de quanto e quais redundâncias são necessárias dependem dos requisitos de uma determinada aplicação. Algumas pessoas precisam de 99,999% de tempo de atividade, algumas precisam de 99% de tempo de atividade (e aguardar que a rede ou o sistema se corrija, em vez de investir em redundância adicional).

Lembre-se de que, ao planejar a redundância, é provável que vários componentes precisem ser redundantes. Se houver vários aplicativos da Web redundantes usando o mesmo banco de dados e o banco de dados ficar inativo, você ainda terá um ponto único de falha com o banco de dados.

Ok, vamos dizer que a rede caiu depois que você carregou a página. Agora você está off-line.

O HTML 5 oferece a possibilidade de ter alguma quantidade de processamento local. Note que isso significa que você só pode trabalhar com o código e os dados que você tem na máquina . Se a lógica de negócios do aplicativo estiver hospedada na nuvem, isso significa que, quando a nuvem não estiver disponível, essa parte da lógica não estará disponível.

Alguns recursos para aplicativos off-line do html 5:

Uma pesquisa no google por "aplicativos da Web off-line html5" (e consultas relacionadas) fornecerá mais recursos.

    
por 15.03.2013 / 19:15
fonte