Um pacote de implantação somente com comandos implanta uma aplicação inteiramente por meio de scripts, sem exigir arquivos de source.
Como funciona
Ao implantar em um grupo do Auto Scaling (ESS), as atividades de dimensionamento são pausadas durante a implantação e retomadas automaticamente ao término do processo, independentemente do resultado.
Cada implantação segue uma sequência de parada e início: o script de parada executa primeiro, seguido pelo script de início.
-
Crie e publique uma implantação.
Especifique o local do arquivo de source da aplicação no OSS, juntamente com os scripts de início e parada.
Crie uma tarefa de release, selecione um release mode e publique a implantação no grupo de aplicações de destino.
-
O processo de implantação automatizada funciona da seguinte forma:
O service recupera as informações do pacote de implantação, incluindo os scripts de inicialização e encerramento.
O service executa o script de encerramento para parar a versão anterior da aplicação.
O service executa o script de inicialização para iniciar a nova versão da aplicação.
Observações de uso
As implantações têm suporte apenas em instâncias Linux.
Os scripts de início e parada devem ser shell scripts.
Procedimento
Exemplo de aplicação Java
-
Crie uma aplicação e importe suas instâncias do Elastic Compute Service (ECS).
-
Caso não tenha uma instância ECS, acesse a página ECS console - Custom Launch para criar uma instância ECS Linux.
Os scripts de exemplo a seguir destinam-se a estas imagens. Se você utilizar uma imagem diferente, modifique os scripts adequadamente.
Acesse a página ECS console - Application management e clique em Create from Existing Resources para criar uma aplicação e um grupo de aplicações, além de importar a instância ECS para o grupo.
-
-
Crie um pacote de implantação.
Acesse a página ECS console - Application management. Na aba My Applications, clique no nome da aplicação de destino.
Na página de detalhes da aplicação, selecione a aba Deployment e clique em Create Deployment.
-
Na página Create Deployment, defina Deployment Package Type como Run Command, configure os parameters e clique em OK.
Working directory: Especifique o diretório de trabalho para os scripts de inicialização e encerramento. Exemplo:
/root/deploy.-
Alibaba Cloud Linux
start_application() { set -e curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar yum install -y maven-3.5.4 java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_applicationUbuntu
start_application() { set -e curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar apt update apt install -y maven java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_application -
### 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
Retorne à lista de implantações, localize a implantação criada e clique em Deploy. Selecione o grupo de destino e clique em OK para iniciar a implantação.
-
Verifique o resultado.
Acesse a página de detalhes da instância de destino. Clique em Connect e selecione Workbench. Siga as instruções na tela para acessar o terminal.
Execute o comando
curl http://localhost:8080/hello. Uma resposta comAlibaba Spring Sample!indica que a implantação foi bem-sucedida.
Exemplo de aplicação docker
-
Prepare a aplicação, o grupo e as instâncias ECS.
Antes de implantar, crie uma aplicação e um grupo no ECS Application Management. Em seguida, adicione suas instâncias ECS ao grupo.
-
Caso não tenha uma instância ECS, acesse a página ECS console - Custom Launch para criar uma instância ECS Linux.
Os scripts de exemplo a seguir destinam-se a estas imagens. Se você utilizar uma imagem diferente, modifique os scripts adequadamente.
Acesse a página ECS console - Application management e clique em Create from Existing Resources para criar uma aplicação e um grupo de aplicações, além de importar a instância ECS para o grupo.
-
Instale o docker nas instâncias ECS do grupo. Na aba O&M do grupo de aplicações, selecione ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL para instalar o docker em lote.
Se sua instância ECS foi criada a partir de uma imagem personalizada, não é possível instalar extensões dessa maneira. Você deve remotely connect à instância e manually install Docker .
-
-
Crie um pacote de implantação.
-
Baixe a imagem de exemplo para sua máquina local e, em seguida, push the image to your ACR Personal Edition repository.
docker pull aliyun-computenest-opensource-registry.cn-hangzhou.cr.aliyuncs.com/default/aliyun-code-deploy:latest Acesse a página ECS console - Application management. Na aba My Applications, clique no nome da aplicação de destino.
Na página de detalhes da aplicação, selecione a aba Parameters e clique em Create Parameter. Crie dois parâmetros:
usernameepassword, correspondentes ao nome de usuário e senha do ACR Personal Edition. Para garantir a segurança, defina o parâmetropasswordcomo criptografado.Na página de detalhes da aplicação, selecione a aba Deployment e clique em Create Deployment.
-
Na página Create Deployment, defina Deployment Package Type como Run Command, configure os parameters e clique em OK.
Working directory: Especifique o diretório de execução para os scripts de inicialização e encerramento. Exemplo:
/root/deploy.-
Application startup script: Substitua os placeholders
<repo>e<image>pelos valores do seu repositório e imagem do ACR Personal Edition.repoé o endereço do seu repositório no ACR Personal Edition eimageé o nome completo da imagem. Substitua os parâmetros correspondentes no script de inicialização pelos valores desses dois campos.### 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_application -
### Stop the container (if any) stop_application() { # Find the container by name and remove 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
-
Retorne à lista de implantações, localize a implantação criada e clique em Deploy. Selecione o grupo de destino e clique em OK para iniciar a implantação.
-
Verifique o resultado.
Acesse a página de detalhes da instância de destino. Clique em Connect e selecione Workbench. Siga as instruções na tela para acessar o terminal.
Execute o comando
curl http://localhost:8080/hello. Uma resposta comAlibaba Spring Sample!indica que a implantação foi bem-sucedida.
Parâmetros principais
|
Parâmetro |
Descrição |
|
Diretório de trabalho |
Diretório de trabalho para os scripts de inicialização e encerramento.
|
|
Script de inicialização da aplicação |
Shell script responsável por iniciar a aplicação. |
|
Script de encerramento da aplicação |
Shell script para parar a aplicação. Por exemplo, o script abaixo para um contêiner chamado
|