Migre aplicativos Java locais para o uso do App2Container AWS AWS - Recomendações da AWS

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á.

Migre aplicativos Java locais para o uso do App2Container AWS AWS

Criado por Dhananjay Karanjkar () AWS

Ambiente: PoC ou piloto

Origem: Aplicativos

Alvo: aplicativo em contêineres implantado na Amazon ECS

Tipo R: redefinir a plataforma

Workload: código aberto

Tecnologias: migração; aplicativos web e móveis

AWSserviços: Amazon EC2 Container Registry; Amazon ECS

Resumo

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

Esse padrão fornece as etapas para migrar remotamente aplicativos Java locais implantados em um servidor de aplicativos para o AWS Fargate ou a EKS Amazon 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.

Pré-requisitos e limitações

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

Arquitetura

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 aplicativos Java locais em. AWS

Ferramentas

Ferramentas

  • AWSApp2Container — O AWS App2Container (A2C) é uma ferramenta de linha de comando para ajudá-lo a elevar e deslocar aplicativos que são executados em seus datacenters locais ou em máquinas virtuais, para que sejam executados em contêineres gerenciados pela Amazon ou pela Amazon. ECS EKS

  • AWS CodeBuild— AWS CodeBuild é 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— AWS CodeCommit é 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— AWS CodePipeline é 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 — O Amazon Elastic Container Service (AmazonECS) é um serviço de gerenciamento de contêineres altamente escalável e rápido para executar, parar e gerenciar contêineres em um cluster.

  • Amazon ECR — O Amazon Elastic Container Registry (AmazonECR) é um serviço AWS gerenciado de registro de imagens de contêineres que é seguro, escalável e confiável.

  • Amazon EKS — O Amazon Elastic Kubernetes Service (EKSAmazon) é um serviço gerenciado que você pode usar para executar o AWS Kubernetes sem precisar instalar, operar e manter seu próprio plano de controle ou nós do Kubernetes.

  • AWSFargate — AWS Fargate é uma tecnologia que você pode usar com a 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

TarefaDescriçãoHabilidades 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. Para seu segredo, você pode usar a chave SSH privada ou o certificado e a chave SSH privada. Para obter mais informações, consulte Gerenciar segredos do AWS App2Container.

DevOps, Desenvolvedor
TarefaDescriçãoHabilidades necessárias

Instalar o arquivo tar.

Executar sudo yum install -y tar.

DevOps, Desenvolvedor

Instale AWS CLI o.

Para instalar a Amazon Command Line Interface (AWSCLI), executecurl "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 AWS padrão, executesudo aws configure.

Para configurar o perfil AWS padrão nomeado, executesudo 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:

  • workspace: para armazenar artefatos de conteinerização de aplicativos. Recomendamos fornecer um caminho de diretório que tenha pelo menos 20 GB de espaço livre em disco.

  • awsProfile: AWS perfil configurado no servidor. Isso é necessário para carregar artefatos no Amazon S3, executar containerize o comando e AWS gerar artefatos para implantação na Amazon ou na AmazonECS. EKS

  • s3Bucket: Para extrair e armazenar AWS artefatos.

  • metricsReportPermission: para coletar e armazenar métricas relatadas.

  • dockerContentTrust: para assinar a imagem do Docker.

Executar sudo app2container init.

DevOps, Desenvolvedor
TarefaDescriçãoHabilidades 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:

  • Server FQDN: o nome de domínio totalmente qualificado do servidor da aplicação.

  • Server IP address: o endereço IP do servidor da aplicação. O endereço IP FQDN ou o endereço IP são suficientes.

  • SecretARN: O Amazon Resource Name (ARN) do segredo usado para se conectar ao servidor do aplicativo e armazenado no Secrets Manager.

  • AuthMethod: os métodos de autenticação key ou cert.

Executar sudo app2container remote configure.

DevOps, Desenvolvedor
TarefaDescriçãoHabilidades 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
TarefaDescriçãoHabilidades 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 AWS Fargate como alvo, createEcsArtifacts defina como. true Para definir a Amazon EKS como meta, createEksArtifacts defina como true.

Desenvolvedor, DevOps
TarefaDescriçãoHabilidades necessárias

Gere artefatos de AWS implantação na máquina de trabalho.

Para gerar artefatos de implantação, execute o comando a seguir.

sudo app2container generate app-deployment --application-id <application id>

Isso gera o ecs-master.yml AWS CloudFormation modelo na área de trabalho.

DevOps

Provisionar os artefatos.

Para provisionar ainda mais os artefatos gerados, implante o AWS CloudFormation modelo 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