Tutorial: Efetuar push de uma imagem de contêiner atualizada para um registro de contêiner com replicação geográfica para implantações de aplicativos Web regionais

Esta é a parte três de uma série de tutoriais de três partes. No tutorial anterior, a replicação geográfica foi configurada para duas implantações de aplicativo Web regionais diferentes. Neste tutorial, você primeiro modifica o aplicativo, em seguida, cria uma nova imagem de contêiner e envia por push para o Registro com replicação geográfica. Por fim, você exibe a alteração, implantada automaticamente pelos webhooks de Registro de Contêiner do Azure, em ambas as instâncias do aplicativo Web.

Neste tutorial, a parte final da série:

  • Modifique o aplicativo Web HTML
  • Crie e marque a imagem do Docker
  • Envie a alteração por push ao Registro de Contêiner do Azure
  • Exiba o aplicativo atualizado em duas regiões diferentes

Se você ainda não tiver configurado as duas implantações regionais do Aplicativo Web para Contêineres, retorne para o tutorial anterior da série Deploy web app from Azure Container Registry (Implantar o aplicativo Web do Registro de Contêiner do Azure).

Modificar o aplicativo web

Nesta etapa, faça uma alteração no aplicativo Web que será altamente visível depois que você enviar por push a imagem de contêiner atualizada para o Registro de Contêiner do Azure.

Localize o arquivo AcrHelloworld/Views/Home/Index.cshtml na fonte do aplicativo clonado do GitHub em um tutorial anterior e abra-o em seu editor de texto favorito. Adicione a seguinte linha abaixo da existente linha <h1>:

<h1>MODIFIED</h1>

O Index.cshtml modificado deve ser semelhante a:

@{
    ViewData["Title"] = "Azure Container Registry :: Geo-replication";
}
<style>
    body {
        background-image: url('images/azure-regions.png');
        background-size: cover;
    }
    .footer {
        position: fixed;
        bottom: 0px;
        width: 100%;
    }
</style>

<h1 style="text-align:center;color:blue">Hello World from:  @ViewData["REGION"]</h1>
<h1>MODIFIED</h1>
<div class="footer">
    <ul>
        <li>Registry URL: @ViewData["REGISTRYURL"]</li>
        <li>Registry IP: @ViewData["REGISTRYIP"]</li>
        <li>Registry Region: @ViewData["REGION"]</li>
    </ul>
</div>

Recompilar a imagem

Agora que você atualizou o aplicativo Web, recompile a imagem de contêiner. Como antes, use o nome da imagem totalmente qualificado, incluindo o nome do domínio totalmente qualificado (FQDN) do servidor de logon, para a marca:

docker build . -f ./AcrHelloworld/Dockerfile -t <acrName>.azurecr.io/acr-helloworld:v1

Enviar imagem por push ao Registro de Contêiner do Azure

Em seguida, envie por push a imagem de contêiner acr-helloworld para seu Registro com replicação geográfica. Aqui, você está executando um único comando docker push para implantar a imagem atualizada para as réplicas de Registro nas regiões Oeste dos EUA e Leste dos EUA.

docker push <acrName>.azurecr.io/acr-helloworld:v1

A saída docker push deve ser semelhante a esta:

$ docker push uniqueregistryname.azurecr.io/acr-helloworld:v1
The push refers to a repository [uniqueregistryname.azurecr.io/acr-helloworld]
5b9454e91555: Pushed
d6803756744a: Layer already exists
b7b1f3a15779: Layer already exists
a89567dff12d: Layer already exists
59c7b561ff56: Layer already exists
9a2f9413d9e4: Layer already exists
a75caa09eb1f: Layer already exists
v1: digest: sha256:4c3f2211569346fbe2d1006c18cbea2a4a9dcc1eb3a078608cef70d3a186ec7a size: 1792

Exibir os logs do webhook

Enquanto a imagem está sendo replicada, você pode ver o webhooks do Registro de Contêiner do Azure sendo disparados.

Para ver o webhooks regionais que foram criados quando você implantou o contêiner para Aplicativos Web para Contêineres em um tutorial anterior, navegue até o Registro de contêiner no Portal do Azure e selecione Webhooks em SERVIÇOS.

Container registry Webhooks in the Azure portal

Selecione cada Webhook para ver o histórico de suas chamadas e respostas. Você deve ver uma linha para a ação push nos logs de ambos os Webhooks. Aqui, o log para o Webhook localizado na região Oeste dos EUA mostra a ação push disparada pela docker push na etapa anterior:

Container registry Webhook log in the Azure portal (West US)

Exibir o aplicativo Web atualizado

Os Webhooks notificam os aplicativos Web que uma nova imagem foi enviada por push no Registro, que implanta automaticamente o contêiner atualizado para os dois aplicativos Web regionais.

Verifique se que o aplicativo foi atualizado nas duas implantações navegando até as implantações de aplicativo Web regionais no navegador da Web. Como um lembrete, você pode encontrar a URL para o aplicativo Web implantado no canto superior direito de cada guia de visão geral do Serviço de Aplicativo.

App Service overview in the Azure portal

Para ver o aplicativo atualizado, selecione o link na visão geral do Serviço de Aplicativo. Aqui está uma exibição de exemplo da execução do aplicativo no Oeste dos EUA:

Browser view of modified web app running in West US region

Verifique se a imagem de contêiner atualizada também foi implantada na implantação do Leste dos EUA exibindo-a no navegador.

Browser view of modified web app running in East US region

Com um único docker push, você atualizou automaticamente o aplicativo web em execução em ambas as implantações de aplicativo Web regionais. Além disso, o Registro de Contêiner do Azure atendeu as imagens de contêiner de repositórios localizados mais próximos a cada implantação.

Próximas etapas

Neste tutorial, você atualizou e enviou por push uma nova versão do contêiner de aplicativo Web para seu Registro com replicação geográfica. Os webhooks no Registro de Contêiner do Azure notificavam o Aplicativos Web para Contêineres sobre a atualização, que disparou um pull local da réplica do registro mais próximo.

ACR Build: Compilação automatizada de imagem e dos patches

Além de replicação geográfica, o ACR Build é outro recurso de Registro de Contêiner do Azure que pode ajudar a otimizar seu pipeline de implantação do contêiner. Iniciar com a visão geral de ACR Build para ter uma ideia de seus recursos:

Automatizar o sistema operacional e a aplicação de patch de estrutura com o Build do ACR