Implante e atualize aplicações em instâncias ECS em um grupo de dimensionamento. Os lifecycle hooks automatizam a publicação durante o scale-out e o desligamento graceful durante o scale-in.
Visão geral
A publicação de aplicações empacota arquivos-fonte e scripts de início/parada em um artefato de implantação e o distribui para as instâncias do grupo de dimensionamento por meio de um processo de release padronizado.
Tipos de artefato de implantação compatíveis
Escolha o tipo de artefato de implantação com base no local de armazenamento dos arquivos-fonte da aplicação:
|
Tipo |
Descrição |
Cenários |
|
Arquivo OSS |
Arquivos da aplicação (JAR, ZIP, etc.) armazenados no OSS. Durante o release, o sistema baixa os arquivos e executa os scripts. |
Implantações de aplicações tradicionais, como Java. |
|
Imagem ECS |
Aplicação pré-instalada em uma imagem ECS. Durante o release, o sistema substitui o disco do sistema da instância. |
Aplicações que exigem inicialização rápida ou possuem ambientes complexos. |
|
Imagem docker |
Imagem da aplicação armazenada no Container Registry (ACR). Durante o release, o sistema faz o pull da imagem e inicia o contêiner. |
Implantações de aplicações containerizadas. |
|
Apenas execução de comando |
Nenhum arquivo-fonte especificado. O sistema executa somente um script shell. |
Implantações flexíveis baseadas em scripts ou que utilizam fontes de terceiros. |
Capacidades de release
Modo de release: Full release (todas as instâncias) ou canary release (subconjunto selecionado para validação).
Controle de lotes: Libere em lotes com pausas configuráveis para reduzir riscos de implantação.
-
Integração com Auto Scaling:
Publicação automática no scale-out: Novas instâncias recebem automaticamente a versão mais recente, o que garante consistência.
Desligamento graceful no scale-in: Antes de remover uma instância, o sistema executa o script de parada para assegurar a conclusão dos processos de negócio antes do encerramento.
Limitações
Sistema operacional da instância: Compatível apenas com instâncias ECS baseadas em Linux.
Linguagem de script: Os scripts de início e parada devem ser scripts shell.
Fluxo de implantação: Segue o princípio stop-before-start. O sistema executa o script de parada antes do script de início.
Risco de dados: Ao usar o tipo de implantação ECS image, o sistema substitui o disco do sistema da instância. Faça backup dos dados antes de prosseguir.
Crie um artefato de implantação
Faça login no Auto Scaling console.
No painel de navegação à esquerda, clique em Scaling Groups.
Na barra de navegação superior, selecione a região onde o Auto Scaling está ativado.
Clique em um Scaling Group ID para acessar a página de detalhes do grupo de dimensionamento. Selecione .
-
Selecione e configure um tipo de artefato de implantação conforme o caso de uso.
Arquivo OSS
Para pacotes de aplicação (JAR, WAR, ZIP) armazenados no OSS. Durante o release, o sistema baixa os arquivos para o diretório de trabalho, executa o script de parada e, em seguida, o script de início.
-
Itens de configuração:
Informações do OSS: Selecione a OSS Region e o OSS Bucket. No campo OSS file, insira o caminho do arquivo no bucket, como
apps/sample-spring-1.0-SNAPSHOT.jar.Baixe via rede interna: Ative quando a instância ECS e o bucket OSS estiverem na mesma região para acelerar os downloads.
-
Exemplos de scripts de início/parada:
Script de início da aplicação:
start_application() { set -e yum install -y maven-3.5.4 java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_applicationScript de parada da aplicação:
ImportanteSe não houver operações de parada necessárias, deixe o script de parada vazio. O sistema o ignora durante a implantação.
### Stop the application (if any) stop_application() { PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}') if [ -n "$PID" ]; then kill -9 $PID fi } stop_application
Imagem ECS
Para aplicações com ambientes complexos ou requisitos rigorosos de tempo de inicialização. Durante o release, o sistema substitui os discos do sistema das instâncias pela imagem especificada.
Ao selecionar o tipo de artefato de implantação ECS image, clique em Add e escolha uma imagem da mesma região do grupo de dimensionamento.
-
Itens de configuração:
Região: Selecione a mesma região do grupo de dimensionamento.
Image ID: Escolha uma imagem personalizada que contenha a aplicação implantada e esteja na mesma região do grupo de dimensionamento.
ImportanteO tipo de artefato de implantação ECS image não aceita scripts de início/parada da aplicação. Para iniciar a aplicação automaticamente, configure-a para iniciar na inicialização do sistema ou configure manualmente um lifecycle hook.
Imagem docker
Para aplicações containerizadas. Durante o release, o sistema faz o pull da imagem do ACR, executa o script de parada para remover o contêiner anterior (se houver) e executa o script de início para lançar o novo contêiner.
ImportanteEste recurso aceita apenas imagens docker de instâncias Enterprise Edition do Container Registry (ACR). Para implantar imagens de instâncias Personal Edition do ACR ou de repositórios de imagens de terceiros, use o tipo de implantação apenas execução de comando.
-
Itens de configuração:
Informações da Imagem docker: Defina parâmetros como Container Registry Region, Container Registry Instance ID, Namespace, Repository Name, e Image Tag.
Pull via rede interna: Garanta que o repositório de imagens e a instância ECS estejam na mesma VPC. Configurar controle de acesso para uma VPC.
-
Scripts de início/parada:
Script de início da aplicação:
ImportanteO docker deve estar instalado nas instâncias de destino.
O sistema faz o pull automático da imagem docker antes da execução do script. Não inclua comandos de pull de imagem no script.
### During a release, the Docker image is automatically pulled to the ECS instance. You can directly start the container. ### Start the current version of the container. ### Replace <image_name> with the actual image address. start_application() { image_name="<image_name>" container_name="my-container" docker run -d -p 8080:8080 --name ${container_name} ${image_name} } start_applicationScript de parada da aplicação:
ImportanteSe não houver operações de parada necessárias, deixe o script de parada vazio. O sistema o ignora durante a implantação.
stop_application() { # Find the container by its name and delete it if it exists. container_name="my-container" container_id=$(docker ps -aq -f name=${container_name}) if [ -n "$container_id" ]; then docker rm -f $container_id fi } stop_application
Apenas comando
Não requer arquivo-fonte. Executa somente um script shell, por exemplo, para fazer pull de código de uma fonte de terceiros. O sistema executa o script de parada e, em seguida, o script de início.
Itens de configuração: Nenhuma fonte de implantação necessária. Especifique apenas o Working Directory.
-
Exemplo de script de início/parada (pull de uma imagem pública):
Script de início da aplicação:
### Start the current version of the application. start_application() { repo="<repo>" image="<image>" container_name="my-container" docker login --username=${username} --password=${password} $repo docker pull $image docker run -d -p 8080:8080 --name $container_name $image } start_applicationScript de parada da aplicação:
ImportanteSe não houver operações de parada necessárias, deixe o script de parada vazio. O sistema o ignora durante a implantação.
### Stop the container (if any). stop_application() { # Find the container by its name and delete it if it exists. container_name="my-container" container_id=$(docker ps -aq -f name=${container_name}) if [ -n "$container_id" ]; then docker rm -f $container_id fi } stop_application
-
-
Após concluir a configuração, clique em Create and Publish ou Create Only.
Clicar em Create and Publish redireciona você para a página de configuração de Deployment Release.
Publicar um artefato de implantação
Na aba App Release, selecione .
Selecione o Deployment Artifact ID do artefato de implantação desejado.
-
Configure a política de release:
-
Release Mode:
Full release: Implanta em todas as instâncias do grupo.
Canary Release: Implanta em instâncias selecionadas manualmente para validação.
Batch Policy: Defina o número de Execution Batch (por exemplo, 2) e selecione um Batch Mode (No Pause, Pause After First Batch ou Pause After Each Batch).
-
Scaling Scenarios: Mantenha as opções automatic publishing on scale-out e graceful shutdown on scale-in ativadas.
Automatic publishing on scale-out: Implanta a aplicação em novas instâncias adicionadas durante o scale-out. Um lifecycle hook de scale-out é configurado automaticamente.
Graceful shutdown on scale-in: Executa o script de parada antes da remoção da instância. Um lifecycle hook de scale-in é configurado automaticamente.
-
Clique em OK para iniciar o release. Clique em Details na lista para visualizar o status da execução e os logs.
-
Reduzir riscos de release:
Use um Canary Release para validar a nova versão em poucas instâncias inicialmente.
Em um full release, ative batch releases e selecione Suspend First Batch. Valide o primeiro lote antes de prosseguir com os subsequentes.
Garantir continuidade do negócio: Ative o graceful shutdown on scale-in com um script de parada que aguarde a conclusão das requisições em andamento e feche as conexões antes do encerramento.
Assegurar consistência de versão: Ative a automatic publishing on scale-out para que novas instâncias sempre executem a versão mais recente.
-
Suporte a Windows
Não. Apenas instâncias ECS baseadas em Linux são compatíveis.
-
Dimensionamento durante um release
Sim. A publicação de aplicações não bloqueia atividades de dimensionamento.
-
Logs e resultados de release
Acesse a lista Deployment Release e clique em um Execution ID para ver o status da execução e os logs de saída do script de cada instância.
-
Impacto de uma falha na implantação
Se um script falhar, a instância exibirá o status Failed. Com o batch release e a opção Suspend Each Batch ou Suspend First Batch, os lotes subsequentes não serão processados, o que limita o escopo do impacto. Use um Canary Release em poucas instâncias para validação prévia.
-
Diretório de execução de scripts
Os scripts são executados no Working Directory especificado durante a criação do artefato de implantação.
Melhores práticas para produção
Recomendações para garantir estabilidade em produção: