Tutorial do .NET - Implantar um microsserviço no Azure
Intro
Finalidade
Saiba como implantar microsserviços criados com o .NET e o Docker no Microsoft Azure.
Pré-requisitos
Obrigatório: Este tutorial usa o aplicativo criado no tutorial Seu Primeiro Microsserviço.
Obrigatório: Conta Docker Hub.
Tempo até a conclusão:
15-20 minutos
Situação
Use um microsserviço criado anteriormente e implante-o no Azure usando o DockerHub e Serviço de Kubernetes do Azure (AKS).
Enviar por push para Docker Hub
O Docker Hub é o local para carregar imagens do Docker. Muitos produtos, incluindo o Microsoft Azure, podem criar contêineres baseados em imagens no Docker Hub.
Entrar no Docker Hub
Em seu prompt de comando, execute o seguinte comando:
Em seu terminal, execute o seguinte comando:
docker login
Use o nome de usuário e a senha criados quando você baixou o Docker no tutorial anterior. Você pode visitar o Docker Hub website para redefinir sua senha, se necessário.
Carregar imagem para Docker Hub
Remarcar (renomeie) sua imagem do Docker em seu nome de usuário e envie-a por push para o Docker Hub usando os seguintes comandos:
docker tag mymicroservice [YOUR DOCKER USERNAME]/mymicroservice
docker push [YOUR DOCKER USERNAME]/mymicroservice
O comando push carregará sua imagem para Docker Hub, o que pode levar algum tempo.
Configurar as ferramentas do Azure
Criar uma conta do Azure
Se você for novo no Azure, poderá criar uma conta gratuita. Se você tiver uma conta existente, poderá ignorar esta etapa.
Criar uma conta gratuita do AzureInstale a CLI do Azure
O CLI do Azure fornece ferramentas para gerenciar sua conta do Azure.
Entrar no Azure
Depois de instalar, abra um novo prompt de comando e entre em sua conta do Azure executando o seguinte comando:
Depois de instalar, abra um novo terminal e entre em sua conta do Azure executando o seguinte comando:
az login
Instale a CLI do AKS
Kubernetes é uma plataforma de orquestração de contêineres. Um orquestrador é responsável pela execução, distribuição, dimensionamento e recuperação de aplicativos compostos por uma coleção de contêineres. O Serviço de Kubernetes do Azure (AKS) oferece Kubernetes como um serviço gerenciado.
Execute o seguinte comando para instalar as ferramentas de linha de comando do AKS:
az aks install-cli
Você pode ser alertado com recomendações para definir variáveis de caminho do sistema. Eles não são necessários para este tutorial.
Criar Recursos do Azure
Criar um grupo de recursos
Um grupo de recursos é usado para organizar um conjunto de recursos relacionados a um único aplicativo.
Execute o seguinte comando para criar um grupo de recursos na região Oeste dos EUA:
az group create --name MyMicroserviceResources --location westus
Se desejar usar uma localização diferente no comando anterior, execute o seguinte comando para ver quais regiões estão disponíveis em sua conta e escolha uma mais próxima a você:
az account list-locations -o table
Para usar uma assinatura diferente para a sessão, você pode obter uma lista de todas as assinaturas executando o seguinte comando:
az account list --all
Então você pode executar o seguinte comando para definir uma assinatura específica para a sessão:
az account set -s NAME_OR_ID
Criar um cluster do AKS
Execute o seguinte comando para criar um cluster de AKS no grupo de recursos:
É normal que esse comando leve vários minutos para ser concluído.
az aks create --resource-group MyMicroserviceResources --name MyMicroserviceCluster --node-count 1 --enable-addons http_application_routing --generate-ssh-keys
Execute o seguinte comando para baixar as credenciais a serem implantadas em seu cluster do AKS:
az aks get-credentials --resource-group MyMicroserviceResources --name MyMicroserviceCluster
Implantar no Azure
Retornar ao diretório de aplicativos
Já que abriu um novo prompt de comando na etapa anterior, você precisará retornar ao diretório no qual criou o serviço.
Como você abriu um novo terminal na etapa anterior, precisará retornar ao diretório no qual criou o serviço.
cd MyMicroservice
Crie um plano de implantação
As ferramentas do AKS usam um arquivo .yaml
para definir como implantar seu contêiner.
Crie um arquivo chamado de deploy.yaml
com este comando:
touch deploy.yaml
fsutil file createnew deploy.yaml 0
Em seguida, você pode abri-lo em seu editor de texto favorito.
Você pode então abri-lo em seu editor de texto favorito manualmente ou com este comando:
open deploy.yaml
start deploy.yaml
Substitua o conteúdo do deploy.yaml
pelo seguinte no editor de texto, certificando-se de substituir [SUA ID do DOCKER] pela sua ID do Docker real.
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mymicroservice
spec:
replicas: 1
template:
metadata:
labels:
app: mymicroservice
spec:
containers:
- name: mymicroservice
image: [YOUR DOCKER ID]/mymicroservice:latest
ports:
- containerPort: 80
env:
- name: ASPNETCORE_URLS
value: http://*:80
selector:
matchLabels:
app: mymicroservice
---
apiVersion: v1
kind: Service
metadata:
name: mymicroservice
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: mymicroservice
Executar implantação
Execute o seguinte comando para implantar seu microsserviço com base nas configurações em deploy.yaml
:
kubectl apply -f deploy.yaml
Testar o serviço implantado
Execute o seguinte comando para ver os detalhes do seu serviço implantado:
kubectl get service mymicroservice --watch
Entre outras coisas, o comando anterior mostrará o endereço IP externo em que seu serviço está disponível (EXTERNAL-IP).
Ao usar o endereço de IP externo, abra uma nova janela do navegador e navegue até http://[SEU ENDEREÇO DE IP EXTERNO]/weatherforecast
Se o IP EXTERNO estiver marcado como <pending>
, uma nova linha aparecerá automaticamente quando o IP externo for alocado.
Pressione CTRL+C no prompt de comando para encerrar o comando kubectl get service
.
Pressione CTRL+C no terminal para encerrar o comando kubectl get service
.
Parabéns! Você implantou um microsserviço no Azure.
Dimensionar seu serviço
Uma vantagem de usar o Kubernetes é que você pode facilmente escalar verticalmente uma implantação para várias instâncias para lidar com carga adicional. Atualmente, há apenas uma única instância, portanto, vamos dimensionar para duas instâncias.
Execute o seguinte comando para escalar seu serviço para até duas instâncias:
kubectl scale --replicas=2 deployment/mymicroservice
Limpar os recursos
Quando terminar de testar o microsserviço, você poderá excluir todos os recursos que você criou com o seguinte comando:
az group delete -n MyMicroserviceResources
Próximas etapas
Os recursos a seguir ajudarão você a explorar os microserviços com o .NET.
Microsserviços para iniciantes
Nish levará você através dos conceitos de microsserviços e aprenda a criar seu primeiro ponto de extremidade de microsserviços no .NET:
Você também pode estar interessado em...