Executando sua aplicação Java na Oracle Cloud Infrastructure
Neste post vamos aprender um pouco sobre Oracle Cloud Infrastructure para montarmos uma simples ambiente para executar nossas aplicações Java .
Aqui iremos apenas fazer uso do recurso livre de custos que foi anunciado no Oracle Open World 2019 — São Francisco , a Camada Sempre Livre.
O que vamos montar na Infraestrutura é :
- Instalar Git, Maven e OpenJDK
- Fazer clone de um exemplo usando Helidon e Executa-lo
Introdução ao Oracle Cloud Infrastructure
O Oracle Cloud Infrastructure é um conjunto de serviços em nuvem complementares que permitem criar e executar uma ampla variedade de aplicativos e serviços em um ambiente hospedado altamente disponível.
O Oracle Cloud Infrastructure oferece recursos de computação de alto desempenho (como instâncias físicas de hardware) e capacidade de armazenamento em uma rede virtual de sobreposição flexível que pode ser acessada com segurança a partir da rede local.
Nessa Categoria a Oracle oferece os seguintes produtos :
Para nosso post estaremos utilizando o COMPUTE e iremos criar uma Maquina Virtual .
Recentemente a Oracle introduziu a Camada SEMPRE FREE e sem LIMITES de TEMPO .
Todas as contas do Oracle Cloud Infrastructure (gratuitas ou pagas) possuem um conjunto de recursos gratuitos durante toda a vida útil da conta. Esses recursos exibem o rótulo Always Free no console.
Usando os recursos Always Free, você pode provisionar uma instância de máquina virtual (VM), um Oracle Autonomous Database e os recursos de rede, balanceamento de carga e armazenamento necessários para suportar os aplicativos que você deseja criar.
Com esses recursos, você pode executar tarefas como aplicativos de pequena escala ou realizar testes de prova de conceito.
A lista a seguir resume os recursos elegíveis para o Oracle Cloud Always Free que você pode provisionar em sua locação:
Para saber mais detalhes sobre os recurso veja o link.
Obtendo uma Conta Free e Always Free
Antes de iniciarmos nossa aventura, você vai precisar criar uma conta na Oracle Cloud para poder utilizar os serviços.
Para isso basta acessar o site : https://www.oracle.com/cloud/free/e criar uma conta trial que te dar $300(900 BRL) para testar a plataforma por 30 dias.
Clique em START for FREE e preencha o formulario para cria a sua conta :
e aguarde um e-mail com seu acesso .
Agora se já tem uma conta Oracle Cloud faça o login :
clique em Sing in to Cloud e será levado para a seguinte tela :
Entre com o nome da sua conta cloud e vai para a seguinte tela :
entre com seu E-MAIL e SENHA uma vez feito o login, será apresentada a seguinte tela :
Criando uma instância
Agora vamos criar uma instância de VM com uma imagem Linux e iremos conectar na mesma via SSH. Porém para isso precisamos criar as chaves para obtermos acesso a instancia.
Primeiramente abra o seu terminal e execute os seguinte comando para criar as chaves :
ssh-keygen -t rsa -N "" -b 2048 -C "<key_name>" -f <path/root_name>
Feito isso ira gerar dois arquivos uma chave privada e uma publica com final pub.
Em seguida vamos criar um Compartimento para ajudar a organizar os recursos.
O compartimento é uma coleção de recursos relacionados (como redes em nuvem, instâncias de computação ou volumes de bloco) que podem ser acessados apenas por grupos aos quais a administrador da sua organização recebeu permissão.
Para isso vamos no menu ao lado do nome Oracle Cloud e vá na opção identity -> Compartments :
e a seguinte tela é apresentada :
bastando a gente clicar em CREATE COMPARTMENT para preencher o seguinte formulario e criar o seu compartimento:
Em seguida vamos criar uma Virtual Cloud Network com as suas SubNets. No seguinte link tem uma explicação detalhada de cada componente.
Então vamos ao menu e selecionamos Networking -> Virtual Cloud Networks :
Será levado para a seguinte tela :
Aqui irei criar minha rede no Compartimento daniel_blog, certifique-se de esta apontando para o seu compartimento criado no passo anterior .
Preencha o formulario e deixando marcado a opção Create Virtual Cloud Network Plus Related Resources e depois clique em cria a sua rede:
Agora sim podemos criar a nossa instância, para isso vamos ao menu Compute ->Instances:
Certifique-se mais uma vez que esta em seu compartimento e vá em CREATE INSTANCE .
Aqui entramos com o nome da instância e também e qual sistema operacional iremos utilizar, aqui eu deixei Oracle Linux, mas pode trocar por Ubuntu ou Windows.
na seguinte sessão deixamos como está :
Agora no Instance Shape, devemos troca o default, então clique em “Change Shape” e escolha a micro que é a opção sempre FREE :
na proxima sessão deixe marcado a opção Assign public IP address :
em Boot volume deixe em branco mesmo :
em Add SSH key adicione sua CHAVE PUBLICA aquela com final pub:
isso aqui é o suficiente para cria sua maquina na cloud, porém vamos instalar alguns recursos quando a maquina estiver sendo criada, para isso clique em Show Advanced Options, ira aparece outras opções , então vá em User data e selecione a opção Paste cloud-init script e cole nele o seguinte script :
depois disso clique em CREATE para ser criado a sua maquina :
Assim que ficar no status RUNNING poderemos acessar .
Acessando a sua instância
Uma vez criando a sua maquina, o proximo passo é acessa-lo via SSH , para isso abra o seu terminal e digite o seguinte comando :
onde opc é o nome do usúario do Oracle Linux e o ip publico que é mostrado quando concluiu a criação da maquina .
Uma vez dentro da da maquina, execute o comando ls para ver o conteúdo da pasta /home/opc e veja que ele executou o Script :
Agora entre na pasta DanielDiasjava-Blog com o comando : cd DanielDiasjava-Blog/Projeto-Cloud/helidon-se/, e por algum motivo devemos da permissão a essa pasta na hora do build do Maven, pois o mesmo ira falhar.
Então antes de executar o maven , rode o comando seguinte para dar permissão , aqui vou esta usando o 777 mesmo , então faça :
sudo chmod 777 helidon-se/
após isso execute o maven :
mvn clean package -DskipTests
e uma vez feito o build entre na pasta cd DanielDiasjava-Blog/Projeto-Cloud/helidon-se/target e execute java -jar helidon-sample.jar
a aplicação vai esta executando na porta 8080, porém precisamos liberar essa porta na lista de segurança , para isso faça o seguinte :
Vá em Virtual Cloud Networks e entre na rede que voce criou e em seguinda em Subnets :
selecione qualquer uma delas :
em Security Lists entre no que aparecer e vá em Ingress Rules e clique em Add Ingress Rules e preencha o formulario :
em seu postman utilize esse endpoint para ver a aplicação devolver um array vazio : http://SeuIPPublico:8080/event ou utilize o mesmo endpoint para post com a seguinte entrada :
e veja no seu console SSH a executação do app .
após isso, volte ao local da sua instância de um STOP nela e em seguinda um TERMINATE e também exclua todos os recursos que criamos como Network e Compartiment.
Bem isso é tudo que eu tinha que apresentar sobre o Oracle Cloud Infrastructure. Então use e abuse da camada sempre free da Oracle Cloud para começar a aprender mais e testa suas aplicações e soluções .
Referencias
- https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/waystosecure.htm
- https://docs.cloud.oracle.com/iaas/Content/home.htm
- https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm
- https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/overview.htm
- https://docs.cloud.oracle.com/iaas/Content/GSG/Tasks/choosingcompartments.htm
- http://helidon.io