

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Migrar aplicações Java on-premises para a AWS usando o App2Container da AWS
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container"></a>

*Dhananjay Karanjkar, Amazon Web Services*

## Resumo
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-summary"></a>

O AWS App2Container (A2C) é uma ferramenta de linha de comando que ajuda a transformar aplicativos existentes executados em máquinas virtuais em contêineres, sem a necessidade de alterações no código. O A2C descobre aplicações em execução em um servidor, identifica dependências e gera artefatos relevantes para uma implantação sem contratempos no Amazon Elastic Container Service (Amazon ECS) e no Amazon Elastic Kubernetes Service (Amazon EKS).

Esse padrão fornece as etapas para migrar remotamente aplicativos Java on-premises implantados em um servidor de aplicativos para o AWS Fargate ou o Amazon EKS usando o App2Container por meio da máquina de trabalho. 

A máquina de trabalho pode ser usada nos seguintes casos de uso:
+ A instalação do Docker não é permitida ou não está disponível nos servidores de aplicativos em que os aplicativos Java estão sendo executados.
+ Você deve gerenciar a migração de vários aplicativos implantados em diferentes servidores físicos ou virtuais.

Esse padrão usa AWS CodeCommit AWS CodePipeline, AWS CodeBuild e.

## Pré-requisitos e limitações
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-prereqs"></a>

**Pré-requisitos **
+ Um servidor de aplicação com uma aplicação Java em execução em um servidor Linux
+ Uma máquina de trabalho com um sistema operacional Linux
+ Uma máquina de trabalho com pelo menos 20 GB de espaço em disco disponível

**Limitações**
+ Nem todos os aplicativos são compatíveis. Para obter mais informações, consulte [Aplicativos compatíveis para Linux](https://docs.aws.amazon.com/app2container/latest/UserGuide/supported-applications.html).

## Arquitetura
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-architecture"></a>

**Pilha de tecnologia de origem**
+ Aplicativos Java em execução no servidor Linux

**Pilha de tecnologias de destino**
+ AWS CodeBuild
+ AWS CodeCommit
+ AWS CodeDeploy
+ AWS CodePipeline
+ Amazon Elastic Container Registry
+ AWS Fargate

**Arquitetura de destino**

![Arquitetura para aplicações Java on-premises na AWS.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/61ed65a0-fab2-4fc8-8531-18bfd56a25b3/images/602cde7b-ab0c-46a5-8c37-afe304adf061.png)


 

## Ferramentas
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-tools"></a>

**Ferramentas**
+ [AWS App2Container:](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html) o AWS App2Container (A2C) é uma ferramenta da linha de comando que ajuda você a elevar e mudar aplicações executadas em seus datacenters on-premises ou em máquinas virtuais, para que eles sejam executados em contêineres gerenciados pelo Amazon ECS ou Amazon EKS.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) — CodeBuild A AWS é um serviço de construção totalmente gerenciado na nuvem. CodeBuild compila seu código-fonte, executa testes de unidade e produz artefatos prontos para serem implantados.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) — CodeCommit A AWS é um serviço de controle de versão hospedado pela Amazon Web Services que você pode usar para armazenar e gerenciar de forma privada ativos (como documentos, código-fonte e arquivos binários) na nuvem.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) — CodePipeline A AWS é um serviço de entrega contínua que você pode usar para modelar, visualizar e automatizar as etapas necessárias para lançar seu software.
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html): o Amazon Elastic Container Service (Amazon ECS) é um serviço de gerenciamento de contêineres altamente escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster.
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html): o Amazon Elastic Container Registry (Amazon ECR) é um serviço gerenciado de registro de imagem de contêiner, seguro, escalável e confiável.
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html): o Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço gerenciado que você pode usar para executar o Kubernetes na AWS, eliminando a necessidade de instalar, operar e manter seus próprios nós ou ambiente de gerenciamento do Kubernetes.
+ [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html) — O AWS Fargate é uma tecnologia que você pode usar com o Amazon ECS para executar contêineres sem precisar gerenciar servidores ou clusters de instâncias do Amazon Elastic Compute Cloud (Amazon). EC2 Com o Fargate, não é mais necessário provisionar, configurar nem escalar os clusters de máquinas virtuais para executar contêineres.

## Épicos
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-epics"></a>

### Configurar credenciais
<a name="set-up-credentials"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um segredo para acessar o servidor do aplicativo. | Para acessar o servidor do aplicativo remotamente a partir da máquina de trabalho, crie um segredo no AWS Secrets Manager. Como seu segredo, você pode usar a chave privada SSH ou o Certificado e a chave privada SSH. Para obter mais informações, consulte [Gerenciar segredos para o AWS ApP2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/manage-secrets.html). | DevOps, Desenvolvedor | 

### Configure a máquina do operador
<a name="set-up-the-worker-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instalar o arquivo tar. | Executar `sudo yum install -y tar`. | DevOps, Desenvolvedor | 
| Instale a AWS CLI. | Instalar a interface da linha de comando Amazon (AWS CLI), execute `curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"`. Descompacte `awscliv2.zip`.Executar `sudo ./aws/install`. | DevOps, Desenvolvedor | 
| Instale o App2Container. | Execute os seguintes comandos :`curl -o AWSApp2Container-installer-linux.tar.gz https://app2container-release-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/AWSApp2Container-installer-linux.tar.gz``sudo tar xvf AWSApp2Container-installer-linux.tar.gz``sudo ./install.sh` | DevOps, Desenvolvedor | 
| Configure os perfis. | Para configurar o perfil padrão da AWS, execute `sudo aws configure`.Para configurar o perfil da AWS, execute `sudo aws configure --profile <profile name>`. | DevOps, Desenvolvedor | 
| Instalar o Docker. | Execute os seguintes comandos.`sudo yum install -y docker``sudo systemctl enable docker & sudo systemctl restart docker` |  | 
| Inicialize o App2Container. | Para inicializar o App2Container, você precisa das seguintes informações:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)Executar `sudo app2container init`. | DevOps, Desenvolvedor | 

### Configurar a máquina de trabalho
<a name="configure-the-worker-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a máquina de trabalho para se conectar e executar remotamente os comandos do App2Container no servidor do aplicativo. | Para configurar a máquina de trabalho, as seguintes informações são necessárias:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)Executar `sudo app2container remote configure`. | DevOps, Desenvolvedor | 

### Descubra, analise e extraia aplicativos na máquina de trabalho
<a name="discover-analyze-and-extract-applications-on-the-worker-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Descubra os aplicativos Java locais on-premises. | Para descobrir remotamente todos os aplicativos em execução no servidor de aplicativos, execute o comando a seguir.`sudo app2container remote inventory --target <FQDN/IP of App server>`Esse comando gera uma lista de aplicativos implantados em `inventory.json`. | Desenvolvedor, DevOps | 
| Analise os aplicativos descobertos. | Para analisar remotamente cada aplicativo usando o que foi obtido no estágio de inventário, execute o comando a seguir.`sudo app2container remote analyze --application-id <java-app-id> --target <FQDN/IP of App Server>`Isso gera um arquivo `analysis.json` no local do espaço de trabalho. Depois que esse arquivo for gerado, você poderá alterar os parâmetros de conteinerização com base nas suas necessidades. | Desenvolvedor, DevOps | 
| Extraia os aplicativos analisados. | Para gerar um arquivo do aplicativo analisado, execute remotamente o comando a seguir, que deverá gerar o pacote tar no local do espaço de trabalho.`sudo app2container remote extract --application-id <application id> --target <FQDN/IP of App Server>`Os artefatos extraídos podem ser gerados na máquina de trabalho local. | Desenvolvedor, DevOps | 

### Coloque em contêineres os artefatos extraídos na máquina de trabalho
<a name="containerize-the-extracted-artifacts-on-the-worker-machine"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Coloque os artefatos extraídos em contêineres. | Coloque em contêineres os artefatos extraídos na etapa anterior executando o comando a seguir.`sudo app2container containerize --input-archive <tar bundle location on worker machine>` | Desenvolvedor, DevOps | 
| Finalize o destino. | Para finalizar o destino, abra `deployment.json`, que será criado quando o comando `containerize` for executado. Para especificar o AWS Fargate como destino, defina `createEcsArtifacts` como `true`. Para definir o Amazon EKS como destino, defina `createEksArtifacts` como verdadeiro. | Desenvolvedor, DevOps | 

### Gere e provisione artefatos da AWS
<a name="generate-and-provision-aws-artifacts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Gere artefatos de implantação da AWS na máquina do operador. | Para gerar artefatos de implantação, execute o comando a seguir.`sudo app2container generate app-deployment --application-id <application id>`Isso gera o CloudFormation modelo `ecs-master.yml` da AWS no espaço de trabalho. | DevOps | 
| Provisionar os artefatos. | Para provisionar ainda mais os artefatos gerados, implante o CloudFormation modelo da AWS executando o comando a seguir.`aws cloudformation deploy --template-file <path to ecs-master.yml> --capabilities CAPABILITY_NAMED_IAM --stack-name <application id>–ECS` | DevOps | 
| Gere o pipeline. | Modifique `pipeline.json`, que foi criada na história anterior, com base nas suas necessidades. Em seguida, execute o `generate pipeline` comando para gerar os artefatos de implantação do pipeline. | DevOps | 

## Recursos relacionados
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-resources"></a>
+ [O que é o App2Container?](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html)
+ [Publicação no blog do AWS App2Container](https://aws.amazon.com/blogs/aws/aws-app2container-a-new-containerizing-tool-for-java-and-asp-net-applications/)
+ [Princípios básicos da configuração da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [Noções básicas do Docker para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html)
+ [Comandos do Docker](https://docs.docker.com/engine/reference/commandline/cli/)