Pular para o conteúdo

Customizar fila de execução no Azure DevOps com KEDA, Terraform e AKS

  • por

Ola Pessoal,

Neste post, vou mostrar uma como criar fila de execução customizada, usando AKS para rodar os agentes, KEDA para fazer escalonamento automático dos agentes e fazer o deploy de tudo isso Terraform.


Tive a ideia de fazer esse post, depois de ler a documentação do KEDA referente a azure pipeline: https://keda.sh/docs/latest/scalers/azure-pipelines/ .
Com isso, nos podemos customizar nosso agente e ao mesmo diminuir os custos ao rodar agentes no azure pipeline, que ao invés de rodar os agentes disponibilizados pela Microsoft, nos vamos gerenciar os nossos agentes e com isso remover um camada de software que a Microsoft instalada por padrão nos seus agentes e ao mesmo tempo diminuir custos, pois rodar self-host agentes ‘e mais barato do que usar Microsoft-Hosted agentes.

Quais software e versões foram utilizados:
– Terraform: 1.8.0
– Az cli:  2.58
– KEDA: 2.13
– AKS: 1.28.5
– nerdctl:  1.7.1
– containerd: 1.7.10

Utilize o repositório abaixo, para rodar executar os comandos necessários e seus pré-requisitos,
Porem, antes de rodar os comandos que existentes no repositório, você tem que criar um agent pool e criar um PAT para acessar isso.


# AzureDevOps-Agent

![alt text](https://github.com/leandroscardua/AzureDevOps-Agent/blob/main/keda_aks_azurepippeline.png?raw=true)

# Repositorio para testar a criar de Agent Pool usando AKS e KEDA para scale automatizado

# Requerimentos

- Terraform: > 1.8.0
- Az CLI: > 2.58
- KEDA: = 2.13
- Azure Kubernetes (AKS): 1.28.5
- nerdctl: > 1.7.1
- containerd: > 1.7.10
- Azure DevOps Organization
- Azure DevOps Agent Pool - Tipo: Self-host

# Como usar?

Ante de rodar os comandos abaixo, voce precisa criar um agent pool e gerar uma PAT com permissao de leitura e gerenciamento.

git clone https://github.com/leandroscardua/AzureDevOps-Agent.git

cd ./1-aks/

terraform init

terraform plan -var="ado_token=" -var="org_name=" -var="pool_name="

terraform apply -auto-approve -var="org_name=" -var="org_name=" -var="pool_name="



Espero que tenha ajudado 😀

Faixa que me acompanhou durante a criação deste pos

– https://youtu.be/V8VF69lMF8w ( Maglore – Lápis de Carvão )

Fontes:
– https://keda.sh/docs/2.13/scalers/azure-pipelines/
– https://learn.microsoft.com/pt-br/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=Windows#create-a-pat
– https://learn.microsoft.com/pt-br/azure/devops/pipelines/agents/pools-queues?view=azure-devops&tabs=yaml%2Cbrowser#create-agent-pools

Deixe uma resposta