Partilhar via


Tutorial - Preparar um aplicativo para o Serviço Kubernetes do Azure (AKS)

Neste tutorial, você prepara um aplicativo de vários contêineres para usar no Kubernetes. Você usa ferramentas de desenvolvimento existentes, como o Docker Compose, para criar e testar localmente o aplicativo. Você aprende a:

  • Clone o código-fonte de uma aplicação de exemplo do GitHub.
  • Crie uma imagem de contêiner a partir da fonte do aplicativo de exemplo.
  • Teste o aplicativo de vários contêineres em um ambiente Docker local.

Uma vez concluído, o seguinte aplicativo é executado em seu ambiente de desenvolvimento local:

Captura de ecrã a mostrar a Aplicação Frontal da Loja Azure em execução aberta localmente num browser local.

Em tutoriais posteriores, carregue a imagem do contêiner em um Registro de Contêiner do Azure (ACR) e implante-a em um cluster AKS.

Antes de começar

Este tutorial pressupõe uma compreensão básica dos principais conceitos do Docker, como contêineres, imagens de contêiner e comandos docker. Para obter uma cartilha sobre noções básicas de contêiner, consulte Introdução ao Docker.

Para concluir este tutorial, você precisa de um ambiente de desenvolvimento Docker local executando contêineres Linux. O Docker fornece pacotes que configuram o Docker em um sistema Mac, Windows ou Linux .

Note

O Azure Cloud Shell não inclui os componentes do Docker necessários para concluir cada etapa nestes tutoriais. Portanto, recomendamos o uso de um ambiente de desenvolvimento completo do Docker.


Obter código de aplicação

O aplicativo de exemplo usado neste tutorial é um aplicativo básico de fachada de loja, incluindo as seguintes implantações e serviços do Kubernetes:

Captura de ecrã da arquitetura de exemplo da Loja Azure.

  • Vitrine: aplicativo Web para que os clientes visualizem produtos e façam pedidos.
  • Serviço do produto: Mostra as informações do produto.
  • Serviço de pedidos: Faz pedidos.
  • Rabbit MQ: Fila de mensagens para processamento de pedidos.
  • Git
  • CLI do Azure para Desenvolvedores
  1. Use o git para clonar o aplicativo de exemplo para seu ambiente de desenvolvimento.

    git clone https://github.com/Azure-Samples/aks-store-demo.git
    
  2. Mude para o diretório clonado.

    cd aks-store-demo
    

Revise o arquivo Docker Compose

A aplicação de exemplo que criarás neste guia usa o ficheiro YAML docker-compose-quickstart do repositório que clonaste.

services:
  rabbitmq:
    image: rabbitmq:3.13.2-management-alpine
    container_name: 'rabbitmq'
    restart: always
    environment:
      - "RABBITMQ_DEFAULT_USER=username"
      - "RABBITMQ_DEFAULT_PASS=password"
    ports:
      - 15672:15672
      - 5672:5672
    healthcheck:
      test: ["CMD", "rabbitmqctl", "status"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - ./rabbitmq_enabled_plugins:/etc/rabbitmq/enabled_plugins
    networks:
      - backend_services
  order-service:
    build: src/order-service
    container_name: 'order-service'
    restart: always
    ports:
      - 3000:3000
    healthcheck:
      test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://order-service:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 5
    environment:
      - ORDER_QUEUE_HOSTNAME=rabbitmq
      - ORDER_QUEUE_PORT=5672
      - ORDER_QUEUE_USERNAME=username
      - ORDER_QUEUE_PASSWORD=password
      - ORDER_QUEUE_NAME=orders
      - ORDER_QUEUE_RECONNECT_LIMIT=3
    networks:
      - backend_services
    depends_on:
      rabbitmq:
        condition: service_healthy
  product-service:
    build: src/product-service
    container_name: 'product-service'
    restart: always
    ports:
      - 3002:3002
    healthcheck:
      test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://product-service:3002/health"]
      interval: 30s
      timeout: 10s
      retries: 5
    environment:
      - AI_SERVICE_URL=http://ai-service:5001/
    networks:
      - backend_services
  store-front:
    build: src/store-front
    container_name: 'store-front'
    restart: always
    ports:
      - 8080:8080
    healthcheck:
      test: ["CMD", "wget", "-O", "/dev/null", "-q", "http://store-front:80/health"]
      interval: 30s
      timeout: 10s
      retries: 5
    environment:
      - VUE_APP_PRODUCT_SERVICE_URL=http://product-service:3002/
      - VUE_APP_ORDER_SERVICE_URL=http://order-service:3000/
    networks:
      - backend_services
    depends_on:
      - product-service
      - order-service
networks:
  backend_services:
    driver: bridge

Criar imagens de contêiner e executar aplicativos

  • Docker
  • CLI do Azure para Desenvolvedores

Você pode usar Docker Compose para automatizar a criação de imagens de contêiner e a implantação de aplicativos de vários contêineres.

Docker

  1. Crie a imagem do contêiner, baixe a imagem do RabbitMQ e inicie o aplicativo usando o docker compose comando:

    docker compose -f docker-compose-quickstart.yml up -d
    
  2. Visualize as imagens criadas usando o docker images comando.

    docker images
    

    A saída de exemplo condensada a seguir mostra as imagens criadas:

    REPOSITORY                        TAG                          IMAGE ID
    aks-store-demo-product-service    latest                       72f5cd7e6b84
    aks-store-demo-order-service      latest                       54ad5de546f9
    aks-store-demo-store-front        latest                       1125f85632ae
    ...
    
  3. Exiba os contêineres em execução usando o docker ps comando.

    docker ps
    

    A saída de exemplo condensada a seguir mostra quatro contêineres em execução:

    CONTAINER ID        IMAGE
    f27fe74cfd0a        aks-store-demo-product-service
    df1eaa137885        aks-store-demo-order-service
    b3ce9e496e96        aks-store-demo-store-front
    31df28627ffa        rabbitmq:3.13.2-management-alpine
    

Teste o aplicativo localmente

Para ver seu aplicativo em execução, navegue até http://localhost:8080 em um navegador da Web local. O aplicativo de exemplo é carregado, conforme mostrado no exemplo a seguir:

Captura de ecrã a mostrar a Aplicação Frontal da Loja Azure aberta num browser local.

Nesta página, pode ver produtos, adicioná-los ao carrinho e, em seguida, fazer uma encomenda.

Limpeza de recursos

Como você validou a funcionalidade do aplicativo, você pode parar e remover os contêineres em execução. Não exclua as imagens de contêiner - você as usa no próximo tutorial.

  • Pare e remova as instâncias e os recursos do contêiner usando o docker-compose down comando.

    docker compose down
    

Próximos passos

  • Azure CLI
  • CLI do Azure para Desenvolvedores

Neste tutorial, você criou um aplicativo de exemplo, criou imagens de contêiner para o aplicativo e, em seguida, testou o aplicativo. Você aprendeu a:

  • Clone uma fonte de aplicativo de exemplo do GitHub.
  • Crie uma imagem de contêiner a partir da fonte do aplicativo de exemplo.
  • Teste o aplicativo de vários contêineres em um ambiente Docker local.

No próximo tutorial, você aprenderá a armazenar imagens de contêiner em um ACR.