Implantação de um WAR JavaEE7 no Wildfly através do Marketplace
Pré-requisitos:
Uma conta no Azure, o ambiente de computação em nuvem da Microsoft.
Uma versão recente do Java instalada. Para que o projeto possa ser construído com sucesso você precisa de um JDK (Java Development Kit), e não somente de um JRE (Java RuntimeEnvironment). Você pode realizar o download em http://www.oracle.com/technetwork/java/javase/downloads/index.html
A ferramenta de controle de versão Git O Git é uma ferramenta de controle de versão distribuída bastante popular, e está disponível em uma grande quantidade de plataformas. Você pode realizar o download em http://git-scm.com/
Uma ferramenta de conexão SSH. O comando ssh já instalado nativamente em distribuições Linux e na plataforma MacOSX. No ambiente Windows você possuirá um comando ssh disponível no seu terminal GitBash após ter concluído a instalação do Git.
A ferramenta de build automatizado Maven. O projeto de exemplo é construído através do Maven, e você pode realizar o download em http://maven.apache.org/
Etapas
Criação da instância do Wildfly através do Azure Marketplace
O primeiro passo é a criação de uma instância através do Azure Marketplace. Clique no link "NEW" no canto inferior do Azure Portal.
O Azure Marketplace possui uma grande variedade diferente de opções para instanciação. Para procurar por uma demanda específica, clique no link "Everything".
Digite "wildfly" para poder filtrar as opções disponíveis de servidores Wildfly no Azure Marketplace. No nosso exemplo temos 2 opções diferentes disponibilizadas, ambas pela Bitnami: o Wildfly1.0 e o Wildfly 8.0.0. Optamos pela última versão disponível, o 8.1.0.
Após selecionar a opção desejada você é apresentado a um descritivo da instância, bem como aos termos legais para utilização da mesma. Uma informação importante a ser anotada, conforme descrito no texto da instância, é que o usuário e senha para acesso ao painel de administração do Wildfly são respectivamente manager e bitnami. Clique no link "Create".
Agora você deve informar algumas configurações. No campo "Host Name" informe o nome da instância que você está criando. No nosso caso será "javaeeonazure". O Azure verifica automaticamente a disponibilidade do nome de host para você. Escolha um nome disponível. Em seguida você deverá preencher o seu nome de usuário para conexão SSH no campo "UserName". No nosso exemplo escolhemos o usuário "yanaga". No Campo "SSH Public Key" você deverá colar a sua chave pública de SSH. Finalize clicando no link "Create".
O processo de criação da instância pode levar alguns minutos. Quando a mesma já estiver disponível para uso aparecerá na tela inicial do Azure Portal. Na imagem do nosso exemplo, a instância do javaeeonazure aparece no canto superior direito. Clique na instância.
Você verá um painel de controle da instância com várias opções. Clique na opção "SETTINGS".
Nesta tela expandida de opções, selecione a opção "Properties".
Várias informações são disponibilizadas, e por enquanto devemos anotar o VIRTUAL IP ADDRESS, que será utilizado para realizar a conexão de SSH. No nosso exemplo é o IP 23.102.28.148.
Configurar segurança da instância do Azure para acesso externo
Por padrão as instâncias do Azure vem com uma configuração de acesso bastante restrita por motivos de segurança. Devemos explicitamente abrir quais portas de acesso queremos disponibilizadas na Internet. Ao selecionar a opção "Endpoints", podemos verificar que somente a porta 22 (SSH) está disponível. Clique no link "Add" para adicionar mais uma porta.
Para liberar a porta 80 (HTTP) do nosso servidor Wildfly devemos digitar as seguintes informações: no campo "Endpoint", digite "HTTP"; no campo "Protocol", escolha "TCP"; no campo "Publicport", digite "80"; e no campo "Private Port", digite "80". Finalize escolhendo a opção OK.
Configuração do tunnel de SSH para acesso ao painel administrativo do Wildfly
A configuração padrão do servidor Wildfly, por motivos de segurança, não permite a conexão ao painel administrativo através de uma conexão de rede local. O acesso deve ser feito de modo local. Entretanto o servidor do Azure seguramente é uma máquina remota a qual não temos acesso. Para podermos então configurar o Wildfly de modo remoto sem comprometer a segurança devemos criar um tunnel (uma espécie de VPN) SSH através do seguinte comando: ssh –N –L 9992:127.0.0.1:9990 yanaga@<ip-da-instância>. Lembrando que "yanaga" é o nome do usuário informado no momento da criação da instância. Basicamente estamos redirecionando a nossa porta 9992 local para a porta 9990 do servidor remoto através de SSH. O comando não finaliza. O tunnel existe enquanto o comando estiver sendo executado.
Para verificar se a sua conexão ao painel de controle do Wildfly está funcionando, acesse http://localhost:9992. Você deverá visualizar uma tela parecida com a imagem seguinte.
Clone o repositório Git do projeto de exemplo no seu computador através do comando: "git clone <URL do repositório>"
Com o repositório no seu computador, entre no diretório do projeto e execute o comando: "mvn clean package" para executar o build através do Maven. O importante é visualizar a mensagem de "BUILD SUCCESS" ao final do build do projeto.
O Maven gerará um arquivo WAR (no nosso exemplo, azure-javaee7.war) dentro do diretório target. Anote esta localização pois utilizaremos este arquivo gerado para implantar no Wildfly que está executando no Azure.
Implantar o arquivo WAR através do painel administrativo do Wildfly
Acesse o painel administrativo do Wildfly e clique no link "Create Deployment".
Nesta tela você verá os arquivos e projetos que estão implantados no Wildfly. Para adicionar um novo projeto, clique no botão "Add".
Selecione o arquivo "azure-javaee7.war" que foi gerado através do Maven. Nesta etapa faremos o upload do arquivo para a instância do Wildfly rodando no Azure. Este processo pode levar um tempo considerável, dependendo da sua conexão à Internet. Clique no botão "Next".
Nesta etapa podemos verificar os dados do arquivo que foi enviado para implantação. Pressione o botão "Save" para finalizar este processo.
Por padrão o Wildfly não implanta automaticamente os arquivos de projeto que são adicionados. É necessário inicia-lo manualmente. Selecione o arquivo azure-javaee7.war e clique no botão "En/Disable" para inicia-lo.
Confirme a implantação do projeto.
Note que após iniciado o símbolo do lado esquerdo do arquivo azure-javaee7.war mostra que o mesmo já se encontra habilitado.
Acesse novamente as propriedades da instância no Azure Portal conforme demonstrado no passo 9. Selecione o "DOMAIN NAME" da instância para acessá-la através no navegador. No nosso exemplo é javaeeonazure.cloudapp.net.
Verifique a bem-sucedida implantação do projeto acessando em seu navegador a URL http://<DOMAIN-NAME>/azure-javaee7. No nosso exemplo a URL é http://javaeeonazure.cloudapp.net/azure-javaee7.