Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever e obter uma conta grátis, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Implantar aplicativos Java no Ampere A1 no Oracle Cloud Infrastructure
Saiba como criar e implantar aplicativos Java como contêineres na plataforma de computação Ampere A1 no Oracle Cloud Infrastructure(OCI). Você implantará um aplicativo de tarefas com um banco de dados, como contêineres executados na plataforma de computação Ampere A1. Além disso, você usará o novo conjunto de ferramentas de contêiner, como Podman, disponíveis no Oracle Linux 8.0.
Introdução
Objetivos
Neste tutorial, você vai:
- Crie uma instância de computação Ampere A1.
- Crie um aplicativo Java EE que gerencie as observações da tarefa.
- Implante o aplicativo no Tomcat 9.
- Conecte o aplicativo a um banco de dados e gerencie a implantação como um Pod.
- Execute e teste o aplicativo.
- Limpar as implantações.
Pré-requisitos
- Uma Conta no Cloud do Oracle Free Tier (Trial), Paga ou LiveLabs.
- Familiaridade com a console do OCI
- Visão Geral do Networking
- Familiaridade com Compartimentos
- Conhecimento conceitual básico de contêineres e Podman
- Mantenha as chaves SSH úteis. Se você não tiver chaves, gere chaves SSH.
Configurar seu Ambiente
Comece iniciando o ambiente de nuvem Oracle que será usado para criar e implantar seu aplicativo Java EE. Esse ambiente estará contido em um Compartimento da nuvem, e a comunicação dentro do Compartimento será por meio de uma VCN (Rede Virtual na Nuvem). O Compartimento e a VCN isolarão e protegerão o ambiente geral. Você implantará uma instância de computação Ampere A1 para hospedar um aplicativo Java EE usando os contêineres de servidores Tomcat 9.0 e MySQL.
Configuração da Infraestrutura Básica
-
Abra o menu de navegação. Em Governança e Administração, vá para Identidade e clique em Compartimentos. Nesta tela, você verá uma lista de compartimentos. Clique em Criar Compartimento.
-
Informe o seguinte:
- Nome: Informe "AppDev".
- Descrição: Informe uma descrição (necessária), por exemplo: "AppDev compartimento para o tutorial introdutório". Evite digitar informações confidenciais.
- Compartimento Pai: Selecione o compartimento no qual você deseja que este compartimento reside. O padrão é o compartimento (ou tenancy) raiz.
- Clique em Criar Compartimento.
- Seu compartimento é exibido na lista.
Criar Instância de Computação A1 Ampere
-
Para criar uma instância de computação Ampere A1, use o menu de navegação no canto superior esquerdo da Console e vá para Computação > Instâncias.
-
Abra o fluxo de criação da instância.
- Verifique se você está no Compartimento AppDev.
- Clique em Criar Instância.
-
Na página de criação de instância, você criará a nova instância com os novos recursos de rede, como VCN (Virtual Cloud Network), Gateway de Internet (IG) e muito mais.
- Nomeie a instância como JavaApp
- Atualize a seleção da Imagem para usar o Oracle Linux 8 ou mais recente
- Clique no botão Alterar Forma para ver as formas de computação disponíveis.
-
Configure a imagem para sua instância.
- Clique no botão Alterar Imagem para ver as imagens do SO disponíveis.
- Escolha Oracle Linux 8 ou mais recente.
-
Configure os recursos para sua instância.
- Escolha o processador baseado no Ampere Arm na opção da série de formas.
- Escolha a forma
VM.Standard.A1.Flexna lista de formas com processadores baseados no Ampere Arm. As formas Ampere A1 são flexíveis e você pode modificar o número de núcleos e a quantidade de memória. Escolha 1 núcleo e 6 GB de memória para a VM.
-
Selecione as opções de rede. Crie uma nova VCN e sub-rede para sua próxima implantação na nuvem. Certifique-se de selecionar a designação de um endereço IP público para sua instância.
-
Gere e faça download do par de chaves SSH. Essa etapa é opcional, mas altamente recomendada para manutenção e atualizações posteriores. Você também poderá trazer sua chave pública se já tiver um par de chaves que gostaria de usar. Se você quiser saber como gerar chaves SSH, siga as instruções no tutorial Gerar chaves SSH.
-
Clique em Criar para criar os recursos de rede e iniciar a instância de computação.
Descrição da ilustração iniciar instância
Expor Portas do Aplicativo a Usuários
Para que os aplicativos fiquem acessíveis pela Internet, você precisa abrir as portas que nosso aplicativo usará. Nesta seção, você configurará listas de segurança em sua rede na nuvem e regras de firewall na sua instância de computação para permitir que seus aplicativos enviem e recebam tráfego.
Configurar a Rede Virtual na Nuvem (VCN)
Uma lista de segurança atua como um firewall virtual para uma instância, com regras de entrada e saída que especificam os tipos de tráfego de entrada e saída permitidos. Listas de segurança, conforme configuradas no nível da sub-rede, que aplica as regras de segurança a todos os elementos de rede dessa sub-rede. Sua rede vem com uma lista de segurança padrão, que tem um conjunto inicial de regras. A lista de segurança padrão permite que você estabeleça conexão com sua instância usando SSH e, para sua instância, faça chamadas de rede de saída para qualquer destino.
-
Navegue na página de detalhes da instância criada. Compute > Instâncias > Clique na instância que você criou
-
Navegue até a sub-rede à qual sua instância está anexada, clicando na sub-rede
Descrição da ilustração select sub-net -
Na página da sub-rede, clique na lista de segurança padrão para exibir detalhes e configurá-los.
-
Clique em "Adicionar Regra de Entrada" para adicionar uma nova regra para permitir o tráfego de entrada que corresponda às regras.
-
Adicione uma regra de entrada para permitir tráfego de entrada na porta 8080
- Defina o CIDR de Origem como
0.0.0.0/0. Isso permite o tráfego de entrada de todas as origens. - Defina o Intervalo de Portas de Destino como
8080. Isso define o destino apenas como porta8080. Agora a regra permite que o tráfego de todas as origens use a porta8080. É isso que precisamos, para que nosso aplicativo possa ser acessado de qualquer lugar. - Forneça uma descrição.
Descrição das regras de entrada de configuração da ilustração - Defina o CIDR de Origem como
Configurar o Firewall na Instância
As regras do firewall controlam o tráfego de entrada/saída de uma instância. Você configura regras de firewall diretamente na instância e fornece um nível adicional de segurança.
- Navegue até a página de detalhes da instância criada. Compute > Instâncias > Clique na instância que você criou.
- Copie o endereço IP público da sua instância.
- Faça log-in na instância usando SSH. Use a chave gerada por você ou fornecida durante a etapa de criação da instância. O nome de usuário padrão para instâncias que usam o sistema operacional Oracle Linux é
opc. -
Execute os comandos de configuração do firewall. Isso modifica o firewall na própria instância para expor a porta
8080e aceitar tráfego de entrada.sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp sudo firewall-cmd --reload
Execute aplicativos Java EE na Plataforma de Computação A1 Ampere
Para executar esse aplicativo, prepare primeiro uma instância de computação Ampere A1 com alguns pacotes necessários, como ferramentas de contêiner e git. Em seguida, clone o repositório e crie o aplicativo usando o Maven pom.xml incluído. Por fim, inicie os contêineres docker do MySQL e Tomcat usando as ferramentas de contêiner.
Instale as Ferramentas de Contêiner
O Oracle Linux 8 usa o Podman para executar e gerenciar contêineres. Podman é um mecanismo de contêiner sem daemon para desenvolver, gerenciar e executar contêineres Open Container Initiative e imagens de contêineres em seu sistema Linux. O podman fornece um aplicativo de linha de comando compatível com Docker que pode ser usado como substituto do docker. A instalação do pacote podman-docker fornece o comando docker que chama transparentemente podman.
-
Faça log-in na instância usando SSH. Use a chave gerada por você ou fornecida durante a etapa de criação da instância. O nome de usuário padrão para instâncias que usam o sistema operacional Oracle Linux é
opc. -
Instale o módulo
container-toolsque utiliza todas as ferramentas necessárias para trabalhar com contêineres.sudo dnf module install container-tools:ol8sudo dnf install podman-docker git
Clonar o Código-fonte
Para começar, use o SSH para fazer log-in na instância de computação e clonar o repositório.
git clone https://github.com/oracle-quickstart/oci-arch-tomcat-mds.git
cd oci-arch-tomcat-mds/java
Crie o Aplicativo Web
Os aplicativos Web Java são empacotados como arquivos de aplicativos Web ou arquivos WAR. Os arquivos WAR são arquivos zip com metadados que descrevem o aplicativo para um contêiner de servlet como Tomcat. Este exemplo usa o Apache Maven para criar o arquivo WAR para o aplicativo. Para construir o aplicativo, execute o comando a seguir. Certifique-se de executar o comando no local no qual os arquivos de origem foram clonados.
podman run -it --rm --name todo-build \
-v "$(pwd)":/usr/src:z \
-w /usr/src \
maven:3 mvn clean install
Esse comando cria um diretório target e o arquivo WAR dentro dele. Observe que não estamos instalando o Maven, mas executando o conjunto de ferramentas de criação dentro do contêiner.
Execute o Aplicativo na Plataforma de Computação A1 Ampere
O aplicativo usa o contêiner de servlet Tomcat e o banco de dados MySQL. Tanto o Tomcat quanto o banco de dados MySQL suportam a arquitetura ARM64v8 que a plataforma de computação Ampere A1 usa.
-
Crie um pod usando o Podman.
podman pod create --name todo-app -p 8080:8080 --infra-image k8s.gcr.io/pause:3.1 -
Inicie o contêiner de banco de dados no pod.
podman run --pod todo-app -d \ -e MYSQL_ROOT_PASSWORD=pass \ -e MYSQL_DATABASE=demo \ -e MYSQL_USER=todo-user \ -e MYSQL_PASSWORD=todo-pass \ --name todo-mysql \ -v "${PWD}"/src/main/sql:/docker-entrypoint-initdb.d:z \ mysql/mysql-server:8.0Para o banco de dados MySQL, os scripts de inicialização do banco de dados são fornecidos para o contêiner, que cria os usuários e tabelas de banco de dados necessários na inicialização. Isso é feito pela montagem do diretório
/src/main/sqldo host como/docker-entrypoint-initdb.ddentro do contêiner. A imagem oficial do MySQL que você está usando aqui está configurada para executar arquivos.sqlneste diretório durante a inicialização. Para obter mais opções, incluindo como exportar e fazer backup de dados, consulte a documentação. -
Implante o aplicativo que você criou como um arquivo WAR com um servidor Tomcat.
podman run --pod todo-app -d\ --name todo-tomcat \ -v "${PWD}"/target/todo.war:/usr/local/tomcat/webapps/todo.war:z \ tomcat:9 podman logs -f todo-tomcatAs informações de conexão do banco de dados e o aplicativo são fornecidos para o contêiner do Apache Tomcat por meio do
src/main/resources/todo.properties. O URL JDBC usalocalhostcomo o host do servidor MySQL. Isso ocorre porque os contêineres dentro do mesmo pod podem se comunicar uns com os outros usandolocalhost. O arquivo WAR do aplicativo é fornecido como uma montagem no contêiner.O Tomcat implanta o aplicativo na inicialização e o mapeamento de portas para o host disponibiliza o aplicativo pelo endereço IP público da instância de computação.
-
Informe o endereço IP público da instância de computação em um browser com a porta
8080. Você poderá ver o aplicativo.http://<ip_address>:8080/todo/
Solução de Problemas
Os contêineres Podman podem ser inspecionados da mesma forma que os contêineres Docker (você pode até mesmo alias podman como docker). Aqui estão alguns comandos comuns para inspecionar os contêineres:
podman ps -pa- mostra contêineres em execução e encerrados e os pods aos quais eles pertencem.podman logs -f todo-mysql- mostra a saída do contêiner especificado (todo-mysqlneste exemplo). PressioneCtrl+cpara sair.
Links Relacionados
Plataforma de computação Ampere A1
Agradecimentos
- Autor - Jeevan Joseph
- Colaborador - Orlando Gentil
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Deploy Java applications on Ampere A1 on Oracle Cloud Infrastructure
F51392-01
December 2021
Copyright © 2021, Oracle and/or its affiliates.



